Bloquer l'application à une seule éxécution

cs_Antidote Messages postés 163 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 mai 2010 - 2 nov. 2003 à 20:09
cs_Antidote Messages postés 163 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 mai 2010 - 4 nov. 2003 à 20:23
Antidote ;)

Bonjour à tous, enocre une nouvelle question, je ne sais pas si elle à déjà été posée j'ai pas trouver donc je la pose :

comment faire pour que son application ne puisse se lancer qu'une seule fois ? Car là je peut la lancer autant de fois que je veux en meme temps ce qui n'est pas forcément l'idéal...

Si vous avez une réponse et bien n'hésitez pas !

7 réponses

Snowboarder69 Messages postés 41 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 23 juin 2007
3 nov. 2003 à 10:56
Il existe plusieurs methodes. Tu peux Utiliser les Mutex ou Les Semaphore ou encore Mon Composant RunOne Qui le fait pour toi et enplus recupere les parametre envoyés (Pratique si on ouvre des fichiers).

@+
Snowboarder69
0
cs_Antidote Messages postés 163 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 mai 2010
3 nov. 2003 à 13:24
Antidote ;)

Oki je vois le genre de procedure qu'il faut abordé

Merci de me proposé ton composant mais j'aime autan si possible tout créer de mes mains meme si c moins performant (sinon on avance jamais) mais par contre je regarderai surement comment il fonctionne.

Je te remercie beaucoup d'avoir répondu à mes deux question. bonne prog à toi. A bientot peut etre...
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
3 nov. 2003 à 23:29
Sinon, pas difficile d'utiliser un Mutex, Antidote...

Tu édites ton fichier projet (.dpr).

Tu rajoutes Windows dans uses.

Ensuite, trois lignes suffisent.
Par exemple :

begin
  // les 3 lignes suivantes...
  SetLastError(NO_ERROR); 
  CreateMutex (nil, False, 'NomDeTonAppli');
  if GetLastError = ERROR_ALREADY_EXISTS then Exit;
  // *****************************************
  Application.Initialize;
  Application.Title := 'NomDeTonAppli';
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.


C'est simple, hein? ... et efficace en plus ! :approve)

Bonne prog' ! :-p
0
Snowboarder69 Messages postés 41 Date d'inscription vendredi 7 février 2003 Statut Membre Dernière intervention 23 juin 2007
4 nov. 2003 à 09:48
En Faites j'ai créé le compo RunOne pour des besoins perso car quand tu utilise les Mutex, ton app se lance quand tu ouvre un fichier (BON) mais quand tu ouvre un deuxieme fichier, cela ouvre une deuxiemme fois ton application, teste l'existence et la referme sans ouvrir le fichier (PAS BON). Il faut donc les envoyer à la premiere Instance... C'est que fait mon compo.

Snowboarder69
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Antidote Messages postés 163 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 mai 2010
4 nov. 2003 à 14:52
Antidote ;)

Salut Jappee, Je vois que le débat est lancé ! Merci de ta réponse Jappee. C'est sur que présenter comme tu l'a fait les choses parraissent évidemment beaucoup plus simple.

Quand à SnowBoarder69, ta remarque est tout aussi importante. Alors la question qui se pose, puisque j'utilise l'ouverture de fichier, est comment renvoyer les paramètres à la première application ?
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
4 nov. 2003 à 16:28
Antidote> En lisant tes autres questions dans le forum, je vois que ta demande est beaucoup plus complexe, et j'admet volontiers que ma réponse n'est peut-être pas exactement appropriée :blush)
Elle reste néanmoins valable pour une approche simple du problème.
Donc, pas de débat ! ;)
Merci Snowboarder d'avoir attiré notre attention sur la limite apparente des Mutex, j'ai bien compris et noté le problème !
Antidote, bon courage !
Bonne prog' ! :-p
0
cs_Antidote Messages postés 163 Date d'inscription lundi 29 septembre 2003 Statut Membre Dernière intervention 8 mai 2010
4 nov. 2003 à 20:23
Antidote ;)

Merci , c'est sympas de ta part , en effet je me suis attaquer à un projet fort sympathique mais dont beaucoup d'élément me manque encore. Pas évident de s'en sortir ;)

Mais avec un peu de patience on arrive à tout. J'y arriverai bien à un moment ou à un autre. Bonne prog à toi aussi ! :approve)
0
Rejoignez-nous