[C++] Controler qu'un programme soit lancer
Résolu/Fermé
HacK SpideR
Messages postés
60
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
24 février 2008
-
23 août 2007 à 11:19
HacK SpideR Messages postés 60 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 24 février 2008 - 23 août 2007 à 20:10
HacK SpideR Messages postés 60 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 24 février 2008 - 23 août 2007 à 20:10
A voir également:
- [C++] Controler qu'un programme soit lancer
- Lancer un programme au demarrage - Guide
- Programme demarrage windows 10 - Guide
- Desinstaller un programme - Guide
- Forcer la fermeture d'un programme - Guide
7 réponses
kilian
Messages postés
8731
Date d'inscription
vendredi 19 septembre 2003
Statut
Modérateur
Dernière intervention
20 août 2016
1 527
23 août 2007 à 13:38
23 août 2007 à 13:38
En C sous windows tu peux lister le nom des processus en cours d'execution avce une combinaison de quelques fonctions.
J'ai repris un vieux prog à moi tout pourri et j'ai modifié un peu le code pour te faire une fonction qui fait ça:
J'ai repris un vieux prog à moi tout pourri et j'ai modifié un peu le code pour te faire une fonction qui fait ça:
#include <windows.h> #include <string.h> #include <psapi.h> #include <stdio.h> // Determine si un processus est en cours d'execution ou pas BOOL process_exists(const char* monProcess) { DWORD processes[200], nb_processes; char process_name[100]; int i; HANDLE hprocess; EnumProcesses(processes, sizeof(processes),&nb_processes); //On teste tous les processus pour voir si leur nom correspond for(i=0;i<nb_processes/sizeof (DWORD);i++) { hprocess=OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, processes[i]); //Prend le nom du processus et le met dans process_name GetModuleBaseName(hprocess, NULL, process_name, sizeof(process_name) ); CloseHandle(hprocess); //Ce processus est il le même que celui demandé if(!strcasecmp(process_name, monProcess)){ return TRUE; } } return FALSE; } int main() { if(process_exists("nom_process.exe")){ puts("oui"); } else{ puts("non"); } return 0; }
Leskate
Messages postés
80
Date d'inscription
lundi 11 juin 2007
Statut
Membre
Dernière intervention
29 mai 2008
8
23 août 2007 à 11:33
23 août 2007 à 11:33
si tu code sous unix, je sais que la commande shell 'ps'peut te donner la liste des processusse actifs. tu peux donc voir si ton programme tourne toujous en lancant ton programme.
en PHP c'est system(<commande>) mais je suis pas certain que ce soit la meme en C++. vu que les 2 langage sont tres proche... tu as de forte chance que ca marche ;)
en PHP c'est system(<commande>) mais je suis pas certain que ce soit la meme en C++. vu que les 2 langage sont tres proche... tu as de forte chance que ca marche ;)
Gunneboy
Messages postés
4
Date d'inscription
mercredi 22 août 2007
Statut
Membre
Dernière intervention
24 août 2007
23 août 2007 à 11:35
23 août 2007 à 11:35
Bonjour,
Quelle commande as-tu utilisé pour lancer tout autre executable, et quelle compilateur utilise-tu?
Quelle commande as-tu utilisé pour lancer tout autre executable, et quelle compilateur utilise-tu?
HacK SpideR
Messages postés
60
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
24 février 2008
6
23 août 2007 à 11:40
23 août 2007 à 11:40
bonjour, non je programme sous windows, pour lancer un programme en C j'utilise
system("start nomdel'exe");
j'utilise dev-c++
system(commande), c'est possible mais quel serai la commande alors ?
system("start nomdel'exe");
j'utilise dev-c++
system(commande), c'est possible mais quel serai la commande alors ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Leskate
Messages postés
80
Date d'inscription
lundi 11 juin 2007
Statut
Membre
Dernière intervention
29 mai 2008
8
23 août 2007 à 11:45
23 août 2007 à 11:45
il faut que tu trouve la commande windaube qui permet de voir la liste des processus actif, que je ne connais pas :s
HacK SpideR
Messages postés
60
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
24 février 2008
6
23 août 2007 à 11:59
23 août 2007 à 11:59
"Tasklist
Tasklist est un outil en ligne de commande fourni avec Windows.
Ouvrez une fenêtre Dos et tapez: tasklist pour voir la liste des processus.
(Ou bien: tasklist > liste.txt pour obtenir la sortie dans un fichier texte.) "
J'ai trouver sa, mais il reste toujours a ce que le programme vérifier si l'autre programme fonctionne. J'ai penser avec liste.txt et faire une recherche a l'interieur avec le nom de mon programme, je ne sais pas si c'est fesable.
sinon j'avais penser a crer avec mon programme initiale un autre programme qui serai une substitution je sais faire :
fopen("programme.exe", "w")
mais apres il faudrai remplire le .exe cela doit se remplire surment en héxadécimal mais cela ferai beaucoup de ligne.
Tasklist est un outil en ligne de commande fourni avec Windows.
Ouvrez une fenêtre Dos et tapez: tasklist pour voir la liste des processus.
(Ou bien: tasklist > liste.txt pour obtenir la sortie dans un fichier texte.) "
J'ai trouver sa, mais il reste toujours a ce que le programme vérifier si l'autre programme fonctionne. J'ai penser avec liste.txt et faire une recherche a l'interieur avec le nom de mon programme, je ne sais pas si c'est fesable.
sinon j'avais penser a crer avec mon programme initiale un autre programme qui serai une substitution je sais faire :
fopen("programme.exe", "w")
mais apres il faudrai remplire le .exe cela doit se remplire surment en héxadécimal mais cela ferai beaucoup de ligne.
HacK SpideR
Messages postés
60
Date d'inscription
vendredi 2 février 2007
Statut
Membre
Dernière intervention
24 février 2008
6
23 août 2007 à 20:10
23 août 2007 à 20:10
merci c'est parfait ^^