Travar janela da aplicação

4 respostas
phpinheiro

Olá…

estou com um problema sobre como deixar a janela de minha aplicação com o controle do SO.

Bom, é o seguinte…eu tenho um jframe que ocupa toda a resolução de tela do usuário e nao possui controles de janela (setUndecorated()). O que eu preciso é que esta aplicação fique sempre por cima de todas as outras aplicações do computador.

O usuário não poderá utilizar nenhum outro programa do computador, somente a minha aplicação. Se ele pressionar a tecla do Windows no teclado, é exibido o menu do win, e ele pode também mudar por Alt+Tab, e ainda a droga do ctrl+alt+del, hehe. Eu não posso deixar isso ocorrer.

Até pensei em dasabilitar as teclas do win e Alt, mas acho que assim fica meio POG…

Alguém tem alguma saída?

Obrigado

4 Respostas

marciofermino

vou tentar fazer aqui

phpinheiro

blz cara…não acha legal a gente dar uma discutida sobre o que pode resolver? Até porque estou tentando aqui também…

Até pensei em uma classe pra interpretar toda a entrada do teclado, e só depois entregar para a aplicação…

maior_abandonado

eu mesmo (que aliais so iniciante) ia fica mto grato se quando conseguirem vcs postassem como fizeram isso…

a primeira e aliais unica forma que eu pensei de de fazer isso era bloqueando uma das teclas necessarias para cada uma dessas sequencias, como alt e a tecla windows mesmo, ou então mudar algum arquivo do proprio SO que é responsavel por capturar esse evento chamando as janelas como o taskManager do windows…

a proposito, se for o caso de eu ajuda tb… vamo usa esse tópico e trabalhar junto mesmo…

ctrl + shift + esc tb devem ser bloqueados… igualmente a ctrl alt e del

phpinheiro

na verdade eu nao quero bloquear as teclas. Eu quero somente tratar.

Estou vendo algo de inputmap…até agora consegui captar os eventos do teclado, o trampo vai ser tratar isso…até porque acho que mesmo tratando na aplicação vou ter que fazer algo a mais no SO.

Estou conseguindo captar as teclas assim:

getRootPane().getActionMap().put("ok", okAction);  
        getRootPane().getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "ok");  
  
        getRootPane().getActionMap().put("cancel", cancelAction);  
        getRootPane().getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), "cancel");  
  
        getRootPane().getActionMap().put("help", helpAction);  
        getRootPane().getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_F1, 0), "help");
Criado 14 de dezembro de 2008
Ultima resposta 15 de dez. de 2008
Respostas 4
Participantes 3