Empecher la fermeture d'une appli par Alt+F4

Empecher la fermeture d'une appli par Alt+F4 - Java - Programmation

Marsh Posté le 09-02-2007 à 15:05:00    

Bonjour,
 
J'aimerai empecher l'utilisateur de fermer mon appli (swing, jframe) avec un ALT+F4.
Je ne demande pas un code tout fait bien sur, mais des mot clés de recherche ou des pistes..
 
Et derniere question subsidiaire.. peut-on empecher la fermeture du programme lorsque l'utilisateur fais un ctrl+alt+suppr et supprime le processus (à la manière d'un virus ou spyware, il "renaîtrai" de lui meme...) ?
 
Merci.  :hello:

Reply

Marsh Posté le 09-02-2007 à 15:05:00   

Reply

Marsh Posté le 09-02-2007 à 15:12:30    

http://www.google.com/search?q=java+alt+F4
 
de rien


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 09-02-2007 à 15:15:48    

Finalement ma 1ere question se résoud avec un simple
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
Qui empeche le ALT+F4 , "fermer" du menu contextuel et la croix.
 
Et pour le processus ?

Reply

Marsh Posté le 09-02-2007 à 15:18:46    

patche windows


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 09-02-2007 à 15:20:32    

Peut tu etre plus explicite stp.. ?

Reply

Marsh Posté le 09-02-2007 à 15:26:06    

je ne pense pas que tu puisses capter un system kill.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 09-02-2007 à 15:30:26    

Je sais que ca va etre compliquer mais si les virus et les spywares y parviennent c'est que ça doit etre possible !..

Reply

Marsh Posté le 09-02-2007 à 15:37:21    

des virus en java ?!!?

 

en plus, c'est surtout qu'ils se lancent avec des droits différents, c'est ça qui fait que tu ne peux pas les tuer.
edit: preuve : si tu as norton sur ton PC, essaie de tuer le processus résidant => tu peux pas. Il faut aller dans les services et stopper le services correspondant.

 

patche windows :o

Message cité 1 fois
Message édité par brisssou le 09-02-2007 à 15:38:26

---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 09-02-2007 à 21:37:10    

brisssou a écrit :

c'est surtout qu'ils se lancent avec des droits différents


 
Hum.. étant donné que c'est la JVM qui lance le programme, on ne peut pas changer les droits de notre appli c'est bien ca ?
Donc c'est réellement impossible d'empecher le kill par un code java ?
Meme en gérant l'interruption comme le fait do_nothing_on_close pour Alt+F4 ?!
MErci

Reply

Marsh Posté le 09-02-2007 à 22:56:02    

Si tu peux killer une JVM, ça serait logique que tout ce qui tourne dessus soit killé :)

Reply

Marsh Posté le 09-02-2007 à 22:56:02   

Reply

Marsh Posté le 10-02-2007 à 00:07:34    

Dans une JVM, on peut créer un hook process pour intercepter ton appel système. C'est un thread inactif qui est lancé lors de la séquence de shutdown. On peut s'en servir pour empêcher de killer un process ou plus classiquement pour libérer des ressources lors d'un shutdown.
Pour bien comprendre, il faut savoir qu'il y a deux types de thread en Java : normal et daemon. Si un thread "normal" est vivant, alors la JVM ne peut se terminer que si on appele System.exit() (ou Runtime.halt()). Les threads "daemons" ne tournent que s'il y a au moins un thread "normal" qui tourne en même temps. Si un thread "daemon" est le seul à rester vivant, alors la JVM va se termine.
http://java.sun.com/j2se/1.4.2/doc [...] utdownHook

Reply

Marsh Posté le 10-02-2007 à 01:16:15    

lonely a écrit :

Dans une JVM, on peut créer un hook process pour intercepter ton appel système. C'est un thread inactif qui est lancé lors de la séquence de shutdown. On peut s'en servir pour empêcher de killer un process ou plus classiquement pour libérer des ressources lors d'un shutdown.
Pour bien comprendre, il faut savoir qu'il y a deux types de thread en Java : normal et daemon. Si un thread "normal" est vivant, alors la JVM ne peut se terminer que si on appele System.exit() (ou Runtime.halt()). Les threads "daemons" ne tournent que s'il y a au moins un thread "normal" qui tourne en même temps. Si un thread "daemon" est le seul à rester vivant, alors la JVM va se termine.
http://java.sun.com/j2se/1.4.2/doc [...] utdownHook


 
Mouais je doute fort qu'on puisse faire en sorte que la JVM resiste au TerminateProcess ou a un SIGKILL ... mais c'est vrai qu'on peut imaginer une JVM qui a un shutdown hook qui relance une autre jvm avec le même shutdown hook et ainsi de suite, faudrait tester mais bon pas envie de coder là ...

Reply

Marsh Posté le 12-03-2007 à 19:14:54    

Merci.
 
Ca fait plusieurs jours que je cherche, en vain, comment empecher que mon fullscreen s'en aille quand on fait un alt-tab ou la touche windows..
toFront() etc n'y font rien, je n'ai plus d'idée où chercher :(
 
Un conseil ?

Reply

Marsh Posté le 14-03-2007 à 10:45:50    

==> *


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 14-03-2007 à 20:08:35    

???


Message édité par tabb le 14-03-2007 à 20:08:57
Reply

Marsh Posté le 15-03-2007 à 11:27:01    

patches windows


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 23-03-2007 à 00:10:42    

tabb a écrit :

Finalement ma 1ere question se résoud avec un simple
this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
Qui empeche le ALT+F4 , "fermer" du menu contextuel et la croix.
 
Et pour le processus ?


 
Bonjour a tous!
Je souhaite moi aussi empecher la fermeture d'une application sur un poste par des utilisateurs mais je ne sais pas comment utiliser ceci : this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE)
ou dois je le rajouter ? dans le registre peut etre mais en utilsant quelle type de valeur ??etc...
désolé je suis debutant ;-)
merci pour vos reponses

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed