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 : Verifier si un executable est en cours d'execution [ Archives / Au secours ] (ebooserge)

lundi 20 mars 2006 à 19:48:50 | Verifier si un executable est en cours d'execution

ebooserge

salut a tous,
j'aimerais savoir quelle approche peut etre adoptée pour vérifier si une instance d'une application est en cours d'execution.
le but de ma demarche est d'empecher le lancement de plusieurs instance de mon executable.
a small idea ? thanks

lundi 20 mars 2006 à 20:40:13 | Re : Verifier si un executable est en cours d'execution

Joky

Membre Club
Partage de variable entre plusieur processus

File Maping ou Section Shared

Voir source de BruNews il y a les 2 exemples nécessaires ;)

if(!Meilleur("Joky")) return ERREUR;<


lundi 20 mars 2006 à 20:48:48 | Re : Verifier si un executable est en cours d'execution

Pamaury

Il y a plusieurs façon mais il me semble que une évidente serait au lancement de l'exéutable de parcourir la liste des processus en cours d'exécution et de vérifier qu'il n'y ai pas déjà .
Tu peux utiliser ces fonctions:
HANDLE WINAPI CreateToolhelp32Snapshot(
DWORD dwFlags,
DWORD th32ProcessID
);

BOOL WINAPI Process32First(
HANDLE hSnapshot,
LPPROCESSENTRY32 lppe
);
BOOL WINAPI Process32Next(
HANDLE hSnapshot,
LPPROCESSENTRY32 lppe
);
Exemple:
HANDLE snapshot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
PROCESSENTRY32 process;
process.dwSize=sizeof(PROCESSENTRY32);
BOOL bRet=Process32First(snapshot,&process);
if(!bRet)
   return ;
do
{
     // faire quelque chose
}while(pProcess32Next(snapshot,&process));

J'ai bien une autre idéee en tête mais je suis pas sûre qu'elle marche donc je vais vérifier .

A m a u r y

lundi 20 mars 2006 à 20:50:20 | Re : Verifier si un executable est en cours d'execution

Gendal67

Le plus simple reste le mutex.
Si ton application tente de créer un mutex qui existe déja (preve que ton programme est déja lancé), alors la fonction return false!
Utilise la fonction CreateMutex()! (jai mis une source pourrave sur le mutex...je dis pourrave vu la longueur du code et l'interet final)

Donc dans ton main, en premiere ligne :

if( !CreateMutex(...) ) return 0; // quitte le programme

Petite parenthèse...ma technique est limitée...elle répond parfaitement à ton problême mais reste bien simple. BruNews avait effectivement procéder par file mapping afin si je me souviens bien (ça date de plusieurs mois, voire années) que ça remette la fenêtre en foreground si jamais tu voulais lancer une seconde instance! ça marche très bien, mais c'est de niveau plus élevé et c'est bien plus long...(mais forcément plus pratique)...enfin faut ausis que ton programme ait l'intention d'afficher une fenetre ! lol


lundi 20 mars 2006 à 20:56:22 | Re : Verifier si un executable est en cours d'execution

Joky

Membre Club
bé j'trouve que la Section Shared marche très bien
Mais faut Visual C++

if(!Meilleur("Joky")) return ERREUR;<


lundi 20 mars 2006 à 22:11:47 | Re : Verifier si un executable est en cours d'execution

BruNews

Administrateur CodeS-SourceS
UNIQUE INSTANCE PROG (WIN32)
http://www.cppfrance.com/code.aspx?ID=25238

ciao...
[ Lien ]
BruNews, MVP VC++

lundi 20 mars 2006 à 22:38:47 | Re : Verifier si un executable est en cours d'execution

Gendal67

Oui c'est à celui-ci que je fesais allusion
J'avais pas vu que c'était du section 'shared' par contre
Quand même une bonne mémoire...




Cette discussion est classé dans : instance, execution, cours, executable, verifier


Répondre à ce message

Sujets en rapport avec ce message

est ce une api? [ par tezca_system ] Bonjour,je cherche un moyen de verifier le nom de mon executable lors de sa propre executio Comment faire pour changer l'icône de ma fenêtre au cours de son execution en programmation C API Win32 ? [ par ndubien ] Bonjour,Je cherche à savoir comment faire pour changer l'icône de ma fenêtre API Win32 au cours de son execution. J'ajoute une "contrainte" supplément "killer" une application Excel en cours d'execution [ par Corwyn ] Bonjourje cherche a "killer" ou simplement fermer les documents ouverts dans Excel. Car, je voudrais supprimer un fichier mais etant ouvert, c'est imp "killer" une application Excel en cours d'execution [ par Corwyn ] bonjourje cherche a "killer" ou simplement fermer les documents ouverts dans Excel. Car je voudrais supprimer un fichier mais etant ouvert, c'est impo Prob sur les lancement de commande Dos [ par Vince007 ] Bonjour alors j'ai un pb alors je veux lancer un executable dos dans mon programme cet executable utilise des parametres et je veux stocker les résult Cours sur GTK en création... [ par NettoyeurFantome ] Je suis en train de créer un cours sur GTK+ à mis chemin entre un tutoriel et un manuel de référence. Y'a-t-il des personnes qui veulent m'aider ? e-m tableau d'objet comme variable d'instance [ par MrKribou ] Bon dans le fichier .h (ou fait c comment qu'on appele se fichier la ? header ?) comment declare ton un tableau d'objet comme variable d'instance.Par Probleme d'execution avec VC++ [ par AntiSlash ] petit probleme incomprehensible (?):j'utilise VC++ 5.0 et je dessine une fenetre. Quand je mets rien dans la fenetre, et que je creer mon .exe, je le Classes globales sur plusiers fichiers [ par Supo ] Allo. Je fais un prog utilisant des structs et j'aimerais définir une instance de ma struct qui pourrait être utilisée par plusieurs fichiers. J'ai es Constructeur sur un tableau de classes [ par Supo ] Lorsque je crée un tableau de classe, disons avecnomdelaclasse instance[10];et que j'ai un constructeur pour cette classe, comment je fait pour donner


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

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