empecher fermeture d'une fenetre dos - C++ - Programmation
Marsh Posté le 28-10-2004 à 16:31:23
c'est un forum d'entraide ici, mais on ne fait pas le boulot à la place, faut lire le règlement
Marsh Posté le 28-10-2004 à 16:31:26
en faite j'ai une fenetre dos lors de l'execution de mon prog et j'aimerais que l'on ne puisse pas la fermer
Marsh Posté le 28-10-2004 à 16:32:24
cricri toi qui dit que c'est un forum entraide et ben aide moi mais moi sur la piste
Marsh Posté le 28-10-2004 à 16:34:34
Il n'y a rien qui puisse empécher la fermeture d'une fenetre console (et encore heureux, d'ailleurs, c'est qui l'admin ici )
Marsh Posté le 28-10-2004 à 16:36:50
Smaragdus a écrit : Il n'y a rien qui puisse empécher la fermeture d'une fenetre console (et encore heureux, d'ailleurs, c'est qui l'admin ici ) |
ben sauf si tu la crée ou tu fais ce que tu veux avec son message WM_CLOSE
mais le probleme c'est que je vois pas du tout de quoi pidjot parle
Marsh Posté le 28-10-2004 à 16:40:45
cris56 a écrit : ben sauf si tu la crée ou tu fais ce que tu veux avec son message WM_CLOSE |
Même, je ne vois pas ce qui empecherait de terminer le processus avec le gestionnaire de processus.
Marsh Posté le 28-10-2004 à 17:19:14
c'est pas juste un topic du mec qui utilise devcpp et qui voit pas son programme s'exécuter ?
Marsh Posté le 28-10-2004 à 18:06:04
cris56 a écrit : ben sauf si tu la crée ou tu fais ce que tu veux avec son message WM_CLOSE |
Sauf que y'a pas de boucle de messages et donc de WM_CLOSE. Il faut installer un handler sur CTRL_CLOSE_EVENT via SetConsoleCtrlHandler. T'as beau ignorer le signal, mes tests avaient montré que quelques secondes après Windows te proposait de tuer le process...
Mais je crois qu'on peut arriver à griser le bouton + le menu. Mais comme l'a dit Smaragdus ça empêche pas de killer l'application.
Marsh Posté le 28-10-2004 à 18:10:50
tu la crée avec sa WndProc
et tu peux toujours killer taskmgr à son ouverture ou autre, pareil pour taskill, je sais pas comment on fais mais j'ai deja eu des programmes malicieux qui fasaient ca
Marsh Posté le 28-10-2004 à 19:13:38
Bonsoir,
Citation : Taz c'est pas juste un topic du mec qui utilise devcpp et qui voit pas son programme s'exécuter ? |
je viens m'inserer dans ce topic car je debute en C et j'utilise devcpp et je ne vois pas mon programme s'executer, la console se ferme a chaque fois. Quel est le probleme?
Merci d'avance
Marsh Posté le 28-10-2004 à 19:19:57
je lance quoi dans la console et comment?
Desolé je debute.
Merci
Marsh Posté le 28-10-2004 à 19:21:22
tu lance cmd.exe (nt) ou msdos.exe (9x/me) et tu tapes le nom du prog (avec son chemin)
Marsh Posté le 28-10-2004 à 20:22:32
moi je propose que tu mettes un getche();
juste avant l'accolade fermante du main
ou bien un simple system("CLS" );
ca empeche la fermeture de ta fenetre DOS........ jusqu'a ce que tu tapes qqch
Marsh Posté le 28-10-2004 à 20:47:33
fullnight a écrit : moi je propose que tu mettes un getche(); |
tu sors
Marsh Posté le 28-10-2004 à 20:56:11
ReplyMarsh Posté le 28-10-2004 à 22:18:14
ReplyMarsh Posté le 29-10-2004 à 00:28:46
cris56 a écrit : tu la crée avec sa WndProc |
Et tu reçois les messages de tes fenêtres, mais pas ceux de la console... Le console est gérée par un autre processus, un processus système, qui possède sa boucle des messages (csrss). Ce process est créé lors de l'initialisation du sous système win32 (il en fait partie en fait), ce qui explique qu'il ne crée pas de fenêtre avec le style XP mais avec le vieux look de fenêtre win95.
Ca explique pourquoi quand y a un bug dans cette gestion de la console ca faisait écran bleu (le fameux bug du \b notamment).
Marsh Posté le 29-10-2004 à 08:57:29
ok, pourtant il me semblais bien qu'on puise créer une fenetre console comme une autre
Marsh Posté le 29-10-2004 à 11:06:35
Avec AllocConsole tu peux "allouer" une console. Mais c'est pas toi qui gère la fenêter. De même csrss veille à ce que tu ne puisses pas avoir plus d'une console dans ton processus.
Marsh Posté le 29-10-2004 à 11:10:24
HelloWorld a écrit : ce qui explique qu'il ne crée pas de fenêtre avec le style XP mais avec le vieux look de fenêtre win95. |
Je dois vraiment avoir de la merde dans les yeux, parce que je ne m'en étais jamais rendu compte (bon, ça fait pas longtemps que j'utilise XP aussi).
Je viens d'ouvrir un fenêtre command-line, et c'est vrai, ça a le style de l'ancien...
Marsh Posté le 29-10-2004 à 14:36:28
HelloWorld a écrit : Avec AllocConsole tu peux "allouer" une console. Mais c'est pas toi qui gère la fenêter. De même csrss veille à ce que tu ne puisses pas avoir plus d'une console dans ton processus. |
merci pour ces precisions
Marsh Posté le 28-10-2004 à 16:21:47
bonjour
quelqu1 pourez me filer un code pour empecher la fermeture d'une fenetre dos en c++
merci