Page 1 sur 1

[R] Limiter instances d'un programme

Posté : mer. 13 janv. 2016 14:46
par DimVar
Bonjour à tous,


Je cherche une idee pour limiter le lancement d'un programme à une seule instance.
J'ai pensé écrire un fichier (à l ouverture du programme) et si présence du fichier, alors on ne lance pas le programme.
Ou, recuperer le PID du prog et l'ecrire en BdR et checker l'existence lors du lancement.

Mais ces solutions ne me conviennent pas dans le cas ou le pc plante, le prog ne se lancera plus, puisque la clef de registre (ou le fichier créé) ne serobnt pas effacé.

Merci pour vos idees.

Cdlt. Dimvar.

Re: [..] Limiter instances d'un programme

Posté : mer. 13 janv. 2016 14:47
par jguinch
Hello
Tu as essayé _Singleton ?

Re: [..] Limiter instances d'un programme

Posté : mer. 13 janv. 2016 15:21
par DimVar
Non.
Est ce que si le param $sOccurrenceName ne correspond plus au nom du programme (si un user renomme l'exe) cela fonctionne toujours ?
Ca marche (meme si je comprends pas pkoi).
J'ai testé en renommant le programme (compilé) et ca fonctionne qd meme, normal ?
Merci.

Re: [..] Limiter instances d'un programme

Posté : mer. 13 janv. 2016 15:24
par DimVar
Peut etre ai-je mal compris...
$sOccurrenceName ne correspond pas au nom de l'exe ?

Re: [..] Limiter instances d'un programme

Posté : mer. 13 janv. 2016 15:40
par jguinch
Le paramètre $sOccurrenceName n'est pas le nom de l'exécutable, c'est un nom qui sert à vérifier si un process existe, avec ce même idenfiant (c'est le nom du mutex).
De ce fait, tu peux renommer l'exécutable comme tu veux, ton programme ne pourra se lancer qu'une seule fois.


Essai de lancer deux fois le script suivant, en compilant deux exécutables nommés différemment (en laissant la boîte de dialogue ouverte) :

Code : Tout sélectionner

#include <Misc.au3>
_Singleton("MyMutex", 0)
MsgBox(0, "", "")

Re: [..] Limiter instances d'un programme

Posté : mer. 13 janv. 2016 15:44
par DimVar
Okay, TipTop.
Merci Jguinch !