begin process at 2012 02 12 12:53:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Système

 > 

Autre

 > 

Relancer un .exe en c++


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Relancer un .exe en c++

jeudi 3 juillet 2008 à 17:07:19 | Relancer un .exe en c++

emitaire

Bonjour,
J'ai developpez un petit programme ecoute le port 143 (IMAP pour l'arrivée des mails), je compile mon programme pour avoir un .exe que je lance pour tester. Jusque là tout marche trés bien.
Je veux a présent developper un WatchDog qui veille au relancement de cet exe si ce derneir crache. Donc une sorte de moniteur qui le ralance. Le problème c'est que je veux que ce watchDog soit valable sous windows mais aussi sous linux car mon listener l'est.

Merci encore pour votre aide.
jeudi 3 juillet 2008 à 18:05:28 | Re : Relancer un .exe en c++

juju12

Tu peux développer une autre application qui tournera en même temps que ton prog et qui vérifiera sa présence de temps en temps; en cas de plantage elle le relance.

jeudi 3 juillet 2008 à 18:15:41 | Re : Relancer un .exe en c++

emitaire

Trés bonne réponse.
Oui mais justement, il faut savoir quel methode utiliser en c++?? comment recuperer le pid du processus qui est derriere mon exe pour le controller en c++?? comment relancer ce processus ?? c'est a ces questions que j'ai besoin d'une réponse...
jeudi 3 juillet 2008 à 21:14:33 | Re : Relancer un .exe en c++

juju12

Je ne sais pas s'il existe de librairies portables permettant de faire cela. Au pire tu peux faire une version une version Windows et une version Linux avec les APIs respectives non?
vendredi 4 juillet 2008 à 13:00:31 | Re : Relancer un .exe en c++

emitaire

Bon voilà je crois que j'ai trouvé une réponse,mais c'est valable que sous windows: Je recupere tout les exe qui sont en cours sur ma machine, et je compare chaque exe avec le nom de celui que je veux controler, et si je ne le retrouve plus ,je le relance comme n'importe quel autre .exe, voici le code:

bool

process_exists(string 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, GetModuleHandle(NULL), process_name,

sizeof(process_name) );

cout << "--process :" << process_name << " id :" << processes[i] << endl;

CloseHandle(hprocess);

//Ce processus est il le même que celui demandé

if (((string)process_name).compare(monProcess) == 0)

{

returntrue;

}

}

returnfalse;

}

Bonne journée.

vendredi 4 juillet 2008 à 13:00:59 | Re : Relancer un .exe en c++

emitaire

Réponse acceptée !
Et merci encore juju12.


Cette discussion est classée dans : exe, programme, relancer, watchdog


Répondre à ce message

Sujets en rapport avec ce message

DEV C++ -> pr lancer "exe" de mon programme [ par grandebutant ] svp Sur DEV C++, je voudrais lancer un exe de mon programmeAAAauuuuuuuu seeeeeccccouuurrrr!!Merci aux dieux de la programmation !! Programme exe [ par r144 ] Bonjour, je voudrais intégrer dans mon exe un fichier (xxx.template) que je devrais ensuite lire une fois le prog executer.Je pense qu'il faut utilise Faire tourner un .exe indéfiniment [ par julien20vt ] Je fais un programme qui doit rester actif constamment sur un PC:Il ne doit rien faire du tout sauf en cas de remontée d'evenements ou il a différente Pb avec WinExec [ par lysane ] Bonjour,je voudrais lancé un executable depuis mon programme si je code :WinExec ("monprog.exe", SW_SHOW); celà fonctionne mais mon programme prend de system() [ par LordBob ] Bonjour a tous,voilla j'essai de lancer un programme externe au miens, qui est un programme console et qui a me besoin d'argument supplementaire pour Lancer un exécutable à partir d'un programme C [ par yoyo_du_49 ] Est-il possible de lancer un exécutable (.exe) à partir d'un programme C en écrivant une instruction particulière dans le main() ?Exemple:lancer exemp quel programme pour modifier un exe [ par ata100t ] super neuneu en programmation mais tres curieux, (rester au dos et fichier .bat)je souhaite modifier servudaemon.exe histroire de comprendre comment c Auto modifier un exe [ par LuckyNut ] Salut à tous,Un programme peut-il auto modifier son propre .exe ?Si oui comment (sans utiliser de batch) ?Exemple on lance le programme "revoir.exe", Nom de l'executable lancé [ par fierix ] Bonjour,Voila je cherche comment récupérer le nom de l'éxécutable lancé (en C).(Le programme affiche son propre nom de fichier).En gros si je lance "t Exportations de fonction EXE --> DLL [ par rclsilver02 ] Voila. Je suis sur un projet qui pourra gérer des modules. Chaque module se trouver dans une DLL et pourra utiliser des fonction du programme principa


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales