[C++] Controler qu'un programme soit lancer
Résolu
HacK SpideR
Messages postés
60
Date d'inscription
Statut
Membre
Dernière intervention
-
HacK SpideR Messages postés 60 Date d'inscription Statut Membre Dernière intervention -
HacK SpideR Messages postés 60 Date d'inscription Statut Membre Dernière intervention -
Bonjour, je suis en train de programmer un programme qui aurait besoin d'un autre programme pour fonctionner et je voudrai qu'en debut de lancement le logiciel test si ce programme et bien en cour d'éxécution. J'ai cherché un peu partout mais je n'ai pas trouver ce qu'il me fallait, donc je vien le demander ici ^^.
Merci d'avance pour votre aide
HacK SpideR
Merci d'avance pour votre aide
HacK SpideR
A voir également:
- [C++] Controler qu'un programme soit lancer
- Lancer un programme au démarrage windows 10 - Guide
- Programme demarrage windows - Guide
- Fichier batch pour lancer un programme - Guide
- Mettre en veille un programme - Guide
- Forcer la fermeture d'un programme - Guide
7 réponses
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; }
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 ;)
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?
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
il faut que tu trouve la commande windaube qui permet de voir la liste des processus actif, que je ne connais pas :s
"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.