Arreter un programme

Signaler
Messages postés
429
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2008
-
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
-
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

Messages postés
110
Date d'inscription
mardi 10 octobre 2000
Statut
Membre
Dernière intervention
20 décembre 2005

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.
Messages postés
429
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2008

Et j'utilise quoi pour faire un truc comme ça ???

Il recherche le processus ?
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-)
Messages postés
110
Date d'inscription
mardi 10 octobre 2000
Statut
Membre
Dernière intervention
20 décembre 2005

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.
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Je trouve ta methode Nebula bien compliké !
Un simple FindWindow et pis le tour est joué !
Jme trompe ?

++
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
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
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
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...
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
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...
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
ok chef, je vois, j'ai jamais utilisé donc je connaissais pas, merci ;)
On discute, on discute, mais keskil en pense notre goutbouyo ?
Messages postés
429
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2008

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 ...
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
Euh pas trop pro ? jdirais plutot pas tres fiable, serieusement, un simple FindWindow ke tu utiliserais avec un timer serait plus sur et simple.

++
Messages postés
790
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
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.
Messages postés
429
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2008

Ok je vais essayer de faire ça.

En tout cas merci à tous pour votre aide !!!
@+++++++
Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,
Moi je ferais:
EnumProcesses
OpenProcess avec le flag SYNCHRONIZE
WaitForSingleObject
CloseHandle
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
goutbouyo, est ce ke tu maitrises le processus ke tu attends ? Enfin est ce ke c toi ki le lance ?
Messages postés
429
Date d'inscription
mardi 6 juillet 2004
Statut
Membre
Dernière intervention
12 janvier 2008

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.
Messages postés
300
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
9 juillet 2008
1
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.
Messages postés
300
Date d'inscription
jeudi 12 juin 2003
Statut
Membre
Dernière intervention
9 juillet 2008
1
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.
Messages postés
1536
Date d'inscription
samedi 21 décembre 2002
Statut
Membre
Dernière intervention
24 mai 2009
2
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 ;)

++