Surveillance d'une appli/process
Fermé
Gael06
Messages postés
179
Date d'inscription
lundi 3 janvier 2005
Statut
Membre
Dernière intervention
3 janvier 2023
-
23 mars 2011 à 17:09
Utilisateur anonyme - 10 avril 2011 à 14:30
Utilisateur anonyme - 10 avril 2011 à 14:30
A voir également:
- Surveillance d'une appli/process
- Comment desinstaller une appli sur pc - Guide
- Appli gps sans internet - Guide
- Appli canva - Télécharger - Divers Photo & Graphisme
- Appli calculatrice - Télécharger - Calcul & Conversion
- Appli traduction photo - Guide
8 réponses
Hxyp
Messages postés
401
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
27 avril 2014
54
23 mars 2011 à 21:29
23 mars 2011 à 21:29
Bonjour, j'ai repris un petit bout de code ici : https://cboard.cprogramming.com/windows-programming/88433-check-running-process-dev-cplusplus.html puis modifié pour compiler sous codeblocks programme console en c, je pense que vous savez comment faire pour l'utiliser etc.. mais n'oubliez pas de linker la libpsapi.a dans "project > build options" onglet "linker settings" pour que ça puisse fonctionner. Le programme va vérifier si le processus est activé ou non toutes les 1000ms (1seconde) en exemple la calculatrice de windows "calc.exe", avec un auto redémarrage en cas de fermeture
#include <stdio.h> #include <windows.h> #include <psapi.h> int isRunning(const char *pName) { unsigned long aProcesses[1024], cbNeeded, cProcesses; unsigned int i; char buffer[50]; if(!EnumProcesses(aProcesses, sizeof(aProcesses), &cbNeeded)) return 0; cProcesses = cbNeeded / sizeof(unsigned long); for(i = 0; i < cProcesses; i++) { if(aProcesses[i] == 0) continue; HANDLE hProcess = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, aProcesses[i]); GetModuleBaseName(hProcess, 0, buffer, 50); CloseHandle(hProcess); if(strcmp(pName,buffer)==0) return 1; } return 0; } int main() { int moniteur,in=0; while(1){ moniteur=isRunning("calc.exe"); if(moniteur){ if(!in){ printf("processus calc.exe en cours!\n"); in=1; } } else{ if(in){ printf("processus calc.exe hors service!\n"); /* redemarrage auto de calc.exe */ ShellExecute(NULL,"open","calc.exe","",NULL,SW_SHOWNORMAL); in=0; } } /* verification chaque seconde */ Sleep(1000); } return 0; }
Utilisateur anonyme
24 mars 2011 à 15:25
24 mars 2011 à 15:25
Bonjour,
J'ai développé une application sous VB.NET 2008 qui surveille
ainsi un process. Actuellement j'ai une version publié qui surveille
Excel.
1.) Si tu connais VB.NET, je puis te fournir mon code source.
2.) Sinon, fournis moi le nom du process qui doit être surveillé, je
pourrai modifier mes sources et déposer le tout sur mon site web
perso que tu pourras récupérer par FTP.
3.) Actuellement, mon appli lance un fichier BMP sur la racine du C
[C:\Alerte.bmp] si Excel est fermé. Mais ce pourraît être un beep
répétitif jusqu'a ce que l'appli soit repartie.
En fait, à toi de voir si ça t'intéresse, ce n'est qu'une suggestion :-)
Cdt
Lupin
~On ne voit bien qu'avec le coeur~
~L'essentiel est invisible pour les yeux~
J'ai développé une application sous VB.NET 2008 qui surveille
ainsi un process. Actuellement j'ai une version publié qui surveille
Excel.
1.) Si tu connais VB.NET, je puis te fournir mon code source.
2.) Sinon, fournis moi le nom du process qui doit être surveillé, je
pourrai modifier mes sources et déposer le tout sur mon site web
perso que tu pourras récupérer par FTP.
3.) Actuellement, mon appli lance un fichier BMP sur la racine du C
[C:\Alerte.bmp] si Excel est fermé. Mais ce pourraît être un beep
répétitif jusqu'a ce que l'appli soit repartie.
En fait, à toi de voir si ça t'intéresse, ce n'est qu'une suggestion :-)
Cdt
Lupin
~On ne voit bien qu'avec le coeur~
~L'essentiel est invisible pour les yeux~
Super merci Lupin pour ta proposition.
Pour être honnête je ne connais pas grand chose en info.... J'étais pas mauvais en assembleur dans les années 80 puis en Basic, un peu en Pascal, Fortran...mais je n'ai plus programmé depuis !!! Donc, pour répondre à ton point 1, je serais bien incapable de bosser sur ton code.
Pour le point 2, je peux effectivement te passer des infos, mais avant tout, je dois m'excuser, je me suis rendu compte hier am que c'est du Windows 2000 !!! Oui, je sais, ça date.... mais le programme qui tourne est fait pour cette config...
Peux-tu toujours m'aider ?
Merci
A très bientôt
Pour être honnête je ne connais pas grand chose en info.... J'étais pas mauvais en assembleur dans les années 80 puis en Basic, un peu en Pascal, Fortran...mais je n'ai plus programmé depuis !!! Donc, pour répondre à ton point 1, je serais bien incapable de bosser sur ton code.
Pour le point 2, je peux effectivement te passer des infos, mais avant tout, je dois m'excuser, je me suis rendu compte hier am que c'est du Windows 2000 !!! Oui, je sais, ça date.... mais le programme qui tourne est fait pour cette config...
Peux-tu toujours m'aider ?
Merci
A très bientôt
Utilisateur anonyme
Modifié par Lupin.PC4 le 28/03/2011 à 16:17
Modifié par Lupin.PC4 le 28/03/2011 à 16:17
Bonjour gael,
Ce qu'il faut savoir avant tout :
1.) Est-ce que le FrameWork.NET 3.5 est installé sur ton poste de W2K?
2.) Si oui, quel est le nom du process que tu dois surveiller (celui qui
apparaît dans le gestionnaire des tâches).
3.) Pour l'instant mon appli affiche une fichier bmp [ ALERTE ].
Préfères-tu un beep répétitif ou les 2 peut-être ?
Avec ces informations je pourrai adapter mon code et déposer une
version sur mon site WEB perso.
N.B. Si le FRameWork.NET 3.5 n'est pas installé, j'ai ma première
version qui est écrit en VBS et celle-ci fonctionne assurément sur
W2K.
Cdt
Lupin
Ce qu'il faut savoir avant tout :
1.) Est-ce que le FrameWork.NET 3.5 est installé sur ton poste de W2K?
2.) Si oui, quel est le nom du process que tu dois surveiller (celui qui
apparaît dans le gestionnaire des tâches).
3.) Pour l'instant mon appli affiche une fichier bmp [ ALERTE ].
Préfères-tu un beep répétitif ou les 2 peut-être ?
Avec ces informations je pourrai adapter mon code et déposer une
version sur mon site WEB perso.
N.B. Si le FRameWork.NET 3.5 n'est pas installé, j'ai ma première
version qui est écrit en VBS et celle-ci fonctionne assurément sur
W2K.
Cdt
Lupin
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Char Snipeur
Messages postés
9696
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 297
28 mars 2011 à 16:36
28 mars 2011 à 16:36
Salut.
La solution de Lupin, c'est un peu : pourquoi faire simple lorsque l'on peut faire compliquer ?
La solution de hxyp est en C, donc plus portable etc.
Sinon, il y a peut être une autre solution, en script (sous win, il faut s'accrocher, mais bon).
Je n'ai pas de w2000 sous la main, mais sous XP, il y a la commande "qprocess" qui affiche l'ensemble des processus en cours sur la machine. Il suffit alors de traiter la sortie avec un script.
Si ça ne te fait pas peur, tu peux installer cygwin, et je t'aiderai à faire un script (mais là ça redevient un peu à compliquer les choses par rapport à Hxyp).
Pour info, le corps de la boucle donnerai un truc dans le genre :
La solution de Lupin, c'est un peu : pourquoi faire simple lorsque l'on peut faire compliquer ?
La solution de hxyp est en C, donc plus portable etc.
Sinon, il y a peut être une autre solution, en script (sous win, il faut s'accrocher, mais bon).
Je n'ai pas de w2000 sous la main, mais sous XP, il y a la commande "qprocess" qui affiche l'ensemble des processus en cours sur la machine. Il suffit alors de traiter la sortie avec un script.
Si ça ne te fait pas peur, tu peux installer cygwin, et je t'aiderai à faire un script (mais là ça redevient un peu à compliquer les choses par rapport à Hxyp).
Pour info, le corps de la boucle donnerai un truc dans le genre :
while ( qprocess |grep -q "monProgramme.exe" ) do sleep 1000;done
Utilisateur anonyme
31 mars 2011 à 22:00
31 mars 2011 à 22:00
Bonjour gael,
As-tu pris une décision sur ce que tu veux faire !
Mon appli est fonctionnel, j'ai ajouté un champ texte pour
le nom du process à surveiller ainsi qu'un groupe de RadioBouton
pour choisir [ Alarme visuel ] ou [ Alarme sonore ].
Je vais tester sur un poste qui n'a pas VB2008 d'installer mais
seulement le framework 3.5 et si tout est conforme et
surtout si ça t'intéresse toujours je le dépose sur mon site perso
pour que tu puisse le récupérer.
A toi de voir, j'attends de tes nouvelles.
Cdt
Lupin
As-tu pris une décision sur ce que tu veux faire !
Mon appli est fonctionnel, j'ai ajouté un champ texte pour
le nom du process à surveiller ainsi qu'un groupe de RadioBouton
pour choisir [ Alarme visuel ] ou [ Alarme sonore ].
Je vais tester sur un poste qui n'a pas VB2008 d'installer mais
seulement le framework 3.5 et si tout est conforme et
surtout si ça t'intéresse toujours je le dépose sur mon site perso
pour que tu puisse le récupérer.
A toi de voir, j'attends de tes nouvelles.
Cdt
Lupin
Bonjour a tous,
Je suis a l'etranger (Afrique) depuis 15j avec gros pb internet, donc pas possible de vous repondre en detail.
Je reviens vers vous des mon retour.
Cdt
Je suis a l'etranger (Afrique) depuis 15j avec gros pb internet, donc pas possible de vous repondre en detail.
Je reviens vers vous des mon retour.
Cdt
Utilisateur anonyme
8 avril 2011 à 14:59
8 avril 2011 à 14:59
Bonjour Gael,
Je t'ai écrit un message privée avec l'adresse FTP de mon appli.
Donne-moi des nouvelles, à savoir si cela répond à ton besoin.
Les avis sont partagées, mais je considère que c'est le tien qui m'importe.
Si mon appli ne te convient pas, c'est parfait comme cela.
Cdt
Lupin
Je t'ai écrit un message privée avec l'adresse FTP de mon appli.
Donne-moi des nouvelles, à savoir si cela répond à ton besoin.
Les avis sont partagées, mais je considère que c'est le tien qui m'importe.
Si mon appli ne te convient pas, c'est parfait comme cela.
Cdt
Lupin