1

Salut tt le monde voila je cherche la commande pour empecher la fermeture d'une aplication ou bien cacher le X =/
voila merci
a+

2

-oups, dsl-

« The biggest civil liberty of all is not to be killed by a terrorist. » (Geoff Hoon, ministre des transports anglais)

3

un trigger qui intercepte la fermeture de ... ah non, rien grin
avatar
納 豆パワー!
I becamed a natto!!!1!one!

4

Pourquoi "ah non, rien" ? Ça m'a l'air de correspondre à ce qu'il veut, non ?

La première solution c'est de virer la croix, mais on peut toujours faire Alt-F4 donc c'est pas très efficace. Je ne sais pas sous quoi du développes mais normalement l'option pour ne pas faire apparaitre les boutons d'une fenetre n'est pas très difficile à trouver.

La deuxième solution, c'est comme a dit liquid d'intercepter l'évenement qui est déclanché quand tu fermes, et de l'annuler. J'ai jamais fait ça en C/C++/C#, cet exemple est fait en Delphi. Mais tu peux toujours le Ctrl-Alt-Suppr de toute façon :/

Tu peux aussi cumuler les deux, masquer la croix et interdire la fermeture. Tu peux aussi, au lieu d'annuler l'action "fermer", la remplacer par une action "cacher la fenetre" par exemple, ce qui donnera l'illusion qu'elle a été fermée alors que ton programme tourne encore. Enfin y'a un tas d'autre possibilités smile

(P.S : Oui je sais, on va me reprocher d'avoir proposé des .exe en d/l direct, mais ils sont safe; si vous craignez quand même les virus ou je ne sais quoi, bah telechargez pas, tant pis ^^)
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

5

ouais mais le trigger ne cachait pas la croix, et en plus il me semblait qu'il s'executait apres la fermeture de la fenetre, ce qui est pas top (si je me trompe pas)
avatar
納 豆パワー!
I becamed a natto!!!1!one!

6

Ben, sous Windows, y'a plusieurs moyens...

1) Intercepter la commande WM_SYSCOMMAND: SC_CLOSE
2) Intercepter le messae WM_CLOSE (c'est la DefWindowProc qui ferme la fenêtre quand elle reçoit ce message)
3) Cacher complètement la fenêtre avec un petit ShowWindow(hWnd, SW_HIDE)

Par contre, un ctrl-alt-suppr sur la fenêtre donnera toujours la possibilité de killer le programme, au bout de 5 ou 20 secondes...
Et sous un windows NT, tu auras toujours la possibilité de killer le processus avec ctrl-alt-suppr (sauf si tu en fais un service appartenant au système)...


Sous unix, aucune idée... Surtout qu'il me semble qu'il y a 36 librairies graphiques différentes...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

7

Sous windows, on désactive le bouton fermer, la fenêtre ne peut plus se fermer, c'est aussi simple que ça...
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

8

Mais danc ce cas, elle ne peut pas non plus être réduite ni maximisée...
C'est tout le menu système qui est supprimé.
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

9

Euh... trifus Qui te parle de supprimer le menu système ?
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

10

Ben, tu m'expliqueras comment on supprime le bouton fermer sans virer le menu système...
je n'ai pas vu ça dans les window styles...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.

11

J'ai jamais parlé de le supprimer non plus, simplement de le désactiver tongue (même si le résultat apparent est quasiment le même sorry)
Et c'est vraiment quelque chose de trivial, ce qui est plus chiant c'est d'intercepter le SC_CLOSE qui est toujours généré par Alt+F4 (Je sais pas trop pourquoi d'ailleurs mais bon ça fait longtemps je sais plus si y'avait moyen d'empêcher ça simplement)
avatar
Le scénario de notre univers a été rédigée par un bataillon de singes savants. Tout s'explique enfin.
T'as un problème ? Tu veux un bonbon ?
[CrystalMPQ] C# MPQ Library/Tools - [CrystalBoy] C# GB Emulator - [Monoxide] C# OSX library - M68k Opcodes

12

Il ne s'agit pas d'intercepter le WM_CLOSE, mais simplement de ne pas le gérer. La fermeture des fenêtres n'est pas gérée par windows, mais par l'application.
Et windows ne devrait pas proposer de tuer le programme au bout de 20 secondes si celui-ci n'est pas planté (un programme planté pour windows est un programme qui ne lit plus sa file de messages).

13

Windows propose de tuer le programme au bout de 20 secondes si on ferme la fenêtre avec ctrl-alt-suppr (Sous XP, onglet le plus à gauche "aplications" du gestionnaire des tâches).

Tu peux d'ailleurs voir ça avec un simple programme comme Notepad: Tu tapes n'imp sans enregistrer, tu fais "fin de tâche", et sur la boite de dialogue "Enregistrer ? oui/non/annuler", tu choisis annuler...


PS: oui, quand je parlais de l'intercepter, disons qu'il faut rajouter le case et ne rien faire dedans... Enfin il ne faut pas le passer à DefWindowProc()...
avatar
Maintenant j'ai la flemme de garder une signature à jour sur ce site. Je n'ai même plus ma chaîne Exec sous la main.