[R] Limiter instances d'un programme

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

[R] Limiter instances d'un programme

#1

Message 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.
Modifié en dernier par DimVar le mer. 13 janv. 2016 15:45, modifié 1 fois.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

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

#2

Message par jguinch »

Hello
Tu as essayé _Singleton ?
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

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

#3

Message 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.
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

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

#4

Message par DimVar »

Peut etre ai-je mal compris...
$sOccurrenceName ne correspond pas au nom de l'exe ?
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

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

#5

Message 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, "", "")
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
DimVar
Niveau 10
Niveau 10
Messages : 870
Enregistré le : ven. 30 mai 2008 15:08
Status : Hors ligne

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

#6

Message par DimVar »

Okay, TipTop.
Merci Jguinch !
N'évoquons pas la pierre, les jeunes risqueraient d'en poire !
Répondre