Accueil > Forum > > > > Empécher double exécution
Empécher double exécution
lundi 25 juin 2007 à 16:03:08 |
Empécher double exécution

aurelien2723
|
Salut! Je fais une petite GUI. J'ai donc un .exe, mais j'aimerais qu'il soit impossible de l'exécuter deux fois. Est-ce possible? Je pensais par exemple à récupérer la liste des processus, et si je me trouve dedans, je quitte, non? Merci de votre aide
|
|
lundi 25 juin 2007 à 16:35:19 |
Re : Empécher double exécution

the_wwt
|
Bonjour, oui c'est plutôt une bonne idée... Aussi si c'est pas pour des hacker, un moyen simple est de créer un fichier a l'ouverture. Et le supprimer en quittant, au démarage tu vérifie s'il existe. Un problème apparait sil'appli plante... Cordialement, Pierrick
|
|
lundi 25 juin 2007 à 16:57:58 |
Re : Empécher double exécution

SAKingdom
|
C'est possible avec un Mutex: CreateMutex(0, 1, "monappli"); if (GetLastError() == ERROR_ALREADY_EXISTS) return 0; // L'application est déjà lancé
C++ (@++)
|
|
lundi 25 juin 2007 à 18:54:22 |
Re : Empécher double exécution

BruNews
|
SAKingdom > ok si c'est sans interface utilisateur sinon le type va s'énerver un moment sur son raccourci en se demandant pourquoi son prog ne se lance pas. Faut bien entendu ramener le prog au 1er plan, c'est la norme sur un système graphique. UNIQUE INSTANCE PROG (WIN32) http://www.cppfrance.com/code.aspx?ID=25238ciao... BruNews, MVP VC++
|
|
lundi 25 juin 2007 à 21:41:12 |
Re : Empécher double exécution

SAKingdom
|
Ben on peut toujours utiliser FindWindow avec SetForegroundWindow pour ramener la fenêtre principal en avant plan mais c'est surement pas aussi sûr que du FileMapping. C++ (@++)
|
|
mardi 26 juin 2007 à 08:17:09 |
Re : Empécher double exécution

aurelien2723
|
Merci les gars. j'ai téléchargé la source que tu me passes BruNews, mais mon soucis est que je fais pas du VisualC++ mais du QT. J'ai donc comme départ un int main(int argc, char *argv[]) et donc il me manque tous les arguments que tu récupères dans la fonction WinMain... Comment faire svp?
|
|
mardi 26 juin 2007 à 09:00:38 |
Re : Empécher double exécution

aurelien2723
|
J'ai opté pour une solution plus simple, qui me convient (tampis si la fenetre revient pas au premier plan, l'utilisateur est averti par une messageBox. [code] FPrincipaleImpl *fenetre = new FPrincipaleImpl; fenetre->setGeometry((int)(QApplication::desktop()->width() - intLargeurFenetre) / 2, (int)(QApplication::desktop()->height() - intHauteurFenetre - 15) / 2, intLargeurFenetre, intHauteurFenetre);
/** on créé un mutex pour empêcher la double exécution */ CreateMutex(0, 1, L"monappli"); if (GetLastError() == ERROR_ALREADY_EXISTS) { /** si le programme est déjà ouvert, on ferme l'appli est on prévient l'utilisateur à l'aide d'une messageBox */ delete fenetre->trayIcon; QMessageBox::warning(fenetre, "Erreur", "L'application est déjà lancée. Vérifiez dans le systray.", QMessageBox::Ok); return 0; } [/code]
Merci à vous! :)
|
|
mardi 26 juin 2007 à 16:42:28 |
Re : Empécher double exécution

SAKingdom
|
Y'a surement un moyen de s'arranger avec la méthodes du FileMapping. Tu pourrais, par exemple, copier en mémoire, au lieu du HWND, le pointeur FPrincipalImpl de ta fenêtre principal puis utiliser une fonction ou une méthode de la classe pour la mettre en avant plan (ça doit surement exister). Sinon, tu peux toujours utiliser FindWindow avec SetForegroundWindow pour avoir ta fenêtre au premier plan. SetForegroundWindow(FindWindow(0, "Nomdelafenetre")); C++ (@++)
|
|
mardi 26 juin 2007 à 17:05:22 |
Re : Empécher double exécution

BruNews
|
Ce n'est pas "du VC++" ma source mais du Win32 auquel tout langage doit normalement pouvoir accéder.
ciao... BruNews, MVP VC++
|
|
Cette discussion est classée dans : double, exécution, empécher
Répondre à ce message
Sujets en rapport avec ce message
long double et VC++ [ par omi ]
J'ai un leger probleme avec visual C++ 7.0 .N'y a t'il pas un moyen de lui faire accepter les long double car il les prend pour des double normaux cad
Affichage décimal [ par couriousous ]
Hello!Comment afficher une variable long double avec toutes ses décimales SANS la convertire au format double (perte de précision)???Merci!
Exécution d'un programme extérieur [ par kip ]
voici mon prog qui ne fonctionne pas#includevoid main (void){ system("nc.exe");}Le but de ce programme est de lancer une application extérieuraide
CONVERSION DOUBLE CHAR [ par DeAtHCrAsH ]
Salut,J'ai un ptit pb... Je suis debutant et j'ai un ptit prob...Je veux utiliser la fonction atof mais quand je compile ca me dit : undeclared identi
conversion double en string [ par bouba ]
Bonjour, je réalise une fonction qui doit calculer le nombre de caractères d'un doubleexemple:-7.56 -> 5 caractèreExiste t'il une fonction qui fasse c
PB valeur maximale variables [ par chmod777 ]
voila, j'ai une boucle for qui doit se terminer lorsque la variable compteur atteint 208.827.064.576 le probleme c'est qu'avec une variable de type in
double pointeur, récursivité dans les arbres binaires ordonnés [ par alfred289 ]
float-->char* ou double-->char* [ par tavernier ]
Help !Comment puis-je faire pour transformer mon float, ou mon double en char * ?Merci d'avanceJulien (Militant 4NT! M!Cr0$0FT depuis toujours!)
double --> char[] [ par coockiesch ]
Hello.Je cherche à passer un double dans une chaine de caractères. J'au utilisé "sprintf(char[], "%f", double)" mais elle ne revoie pas toutes les déc
c++ : pb avec une fonction extern C [ par nanch07 ]
J'expose tout, voilà: dans une de mes classes je fais appel à une fonction externe en C ( de numerical recipes in C). Mais j'ai également besoin de ce
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|