begin process at 2012 02 13 03:00:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Verifier si un executable est en cours d'execution


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

Verifier si un executable est en cours d'execution

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

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 : 9,438 sec (4)

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