Arreter un programme

goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008 - 2 oct. 2004 à 17:33
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 - 6 oct. 2004 à 18:25
Salut,

J'ai un programme console que je voudrais arréter quand un autre programme win32 s'arrête ou à un moment précis avant.

Est il possible de faire cela ???

20 réponses

BeLZeL Messages postés 110 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 20 décembre 2005
2 oct. 2004 à 18:33
Tu peux faire que ton prog Win32, juste avant de s'arrêter, recherche si ton prog console est en mémoire, et s'il le trouve, il le termine.
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
2 oct. 2004 à 19:52
Et j'utilise quoi pour faire un truc comme ça ???

Il recherche le processus ?
0
pourkoi ne pas creer un fichier ini
des que ton programme commence, il ecri un truc dans le ini.
si ton prog principal li cette phrase, il s'arrete.

voila!
:big) Adeon 8-)
0
BeLZeL Messages postés 110 Date d'inscription mardi 10 octobre 2000 Statut Membre Dernière intervention 20 décembre 2005
2 oct. 2004 à 20:12
C'est d'un niveau assez élevé.
Fait des recherches sur ces fonctions.

CreateToolhelp32Snapshot ( );
Process32First ( );
Process32Next ( );
TerminateProcess ( );

Tu pourras récupérer un PID (numéro identifiant ton programme console). Ensuite, tu pourras le killer.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
2 oct. 2004 à 20:30
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
3 oct. 2004 à 10:41
Je trouve ta methode Nebula bien compliké !
Un simple FindWindow et pis le tour est joué !
Jme trompe ?

++
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
3 oct. 2004 à 11:20
Oui, c'est ainsi que je faisais avant... Mais c'est plus sûr d'utiliser le snapshot, je pense. Puis je ne vois pas ce que çà a de compliqué, c'est comme FindWindow des appels d'API lol
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
3 oct. 2004 à 11:34
Un appel API avec ma methode, bocou plus avec la tienne, je confirme, c plus compliké et plus long ;)
Pkoi ce serait pas sur d'utiliser FindWindow ? C ske je ferais moi...
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
3 oct. 2004 à 11:48
Ben çà dépend, si on connait la classe de la fenêtre FindWindow semble plus intéressant oui... Désolé j'ai confondu avec EnumWindows, ;-)

Mais bon avec le snapshot, on peut appeler directement TerminateProcess sans passer par un bidouillage du genre SendMessage(hWnd, WM_QUIT) et on peut filtrer directement les noms d'exe (et autres trucs), c'est pour çà que j'y trouve plus sûr/complet...
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
3 oct. 2004 à 11:50
ok chef, je vois, j'ai jamais utilisé donc je connaissais pas, merci ;)
On discute, on discute, mais keskil en pense notre goutbouyo ?
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
3 oct. 2004 à 14:18
Je pense que c'est bien compliqué pour moi tout ça !

En fait j'ai calculé le temps d'écxecution de mon programme win32.

Et donc, je ferme mon programme console au bout de ce temps là.

C'est pas trés pro mais bon pour mon type de prog ça suffit ...
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
3 oct. 2004 à 14:21
Euh pas trop pro ? jdirais plutot pas tres fiable, serieusement, un simple FindWindow ke tu utiliserais avec un timer serait plus sur et simple.

++
0
cs_Nebula Messages postés 787 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 7 juin 2007 2
3 oct. 2004 à 14:40
Clair... Si tu lances le programme à partir de ta console, regarde les fonctions CreateProcess et WaitForSingleObject : tu sauras ainsi comment attendre la fin de ton programme pendant une durée définie.
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
3 oct. 2004 à 15:28
Ok je vais essayer de faire ça.

En tout cas merci à tous pour votre aide !!!
@+++++++
0
cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
3 oct. 2004 à 15:35
Salut,
Moi je ferais:
EnumProcesses
OpenProcess avec le flag SYNCHRONIZE
WaitForSingleObject
CloseHandle
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
3 oct. 2004 à 15:49
goutbouyo, est ce ke tu maitrises le processus ke tu attends ? Enfin est ce ke c toi ki le lance ?
0
goutbouyo Messages postés 429 Date d'inscription mardi 6 juillet 2004 Statut Membre Dernière intervention 12 janvier 2008
3 oct. 2004 à 18:08
En fait je lance mon programme console qui lui lance mon programme win32 avec un WinExec.

Mon programme win32 se lance et lance une progressbar.

Je voudrais arréter mon programme console quand la progressbar s'arrête.
0
boumarsel Messages postés 298 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 9 juillet 2008 1
6 oct. 2004 à 07:16
on ne peut pas enumerer les applications consol (ou 16 bits en general) par les API ToolHelp comme CreateToolhelp32Snapshot, Process32First...
ni acceder aux fenetres par les fonctions enumwindows..
Si tu as le MSDN essaie de voir les articles
"HOWTO: Enumerate Applications in Win32"
"HOWTO: Terminate an Application "Cleanly" in Win32"
Tu vas remarquer qu'ils font toujours une distinction entre les applications win32 et les application win16(ou app console)
C à toi de chercher.
0
boumarsel Messages postés 298 Date d'inscription jeudi 12 juin 2003 Statut Membre Dernière intervention 9 juillet 2008 1
6 oct. 2004 à 07:17
on ne peut pas enumerer les applications consol (ou 16 bits en general) par les API ToolHelp comme CreateToolhelp32Snapshot, Process32First...
ni acceder aux fenetres par des fonctions comme "enumwindows"..

Si tu as le MSDN essaie de voir les articles
"HOWTO: Enumerate Applications in Win32"
"HOWTO: Terminate an Application "Cleanly" in Win32"
Tu vas remarquer qu'ils font toujours une distinction entre les applications win32 et les application win16(ou app console)
C à toi de chercher.
0
cs_AlexMAN Messages postés 1536 Date d'inscription samedi 21 décembre 2002 Statut Membre Dernière intervention 24 mai 2009 1
6 oct. 2004 à 18:25
Une application console est une application 16bits ? ah bon...

Ne pas tt confondre, les applications consoles ke tu créeras avec VC, ou DevC++ seront 32bits, alors kavec TC++ par exemple, ce sera bien du 16bits, donc ne pas généraliser ;)

++
0
Rejoignez-nous