Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Relancer un .exe en c++ [ Système / Autre ] (emitaire)

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é 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...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version


HTC G1

Entre 449€ et 449€


Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,718 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.