lancer une seule fois une application - Delphi/Pascal - Programmation
Marsh Posté le 06-02-2003 à 11:20:55
ds le OnLoad
If GlobalFindAtom('THIS_IS_SOME_OBSCUREE_TEXT' = 0 Then
atom = GlobalAddAtom('THIS_IS_SOME_OBSCUREE_TEXT'
Else
Begin
ShowMessage('Application déjà lancée !!!';
Close;
End;
ds le OnClose
If GlobalFindAtom('THIS_IS_SOME_OBSCUREE_TEXT' <> 0 Then
GlobalDeleteAtom (atom);
Marsh Posté le 06-02-2003 à 11:40:54
je connais pas du tout Delphi, mais y'a pas moyen de passer par des mutex pour ça ?
Marsh Posté le 06-02-2003 à 11:44:25
UTF-8 a écrit : je connais pas du tout Delphi, mais y'a pas moyen de passer par des mutex pour ça ? |
Marsh Posté le 06-02-2003 à 11:48:27
ReplyMarsh Posté le 06-02-2003 à 11:50:30
Pour Poire : je vais tacher de combiner mes lointains souvenirs en Pascal et la VCL que j'utilise tous les jours via C++ Builder :
Code :
|
ça marcherait pas ça
Marsh Posté le 06-02-2003 à 11:51:34
ça revient au même que moi mais en + compliqué
Marsh Posté le 06-02-2003 à 12:00:21
le seul problème avec ce genre de chose c'est que si le programme plante, ben tu ne peux plus le relancer
Marsh Posté le 06-02-2003 à 12:20:49
Taureau a écrit : le seul problème avec ce genre de chose c'est que si le programme plante, ben tu ne peux plus le relancer |
ben il suffit de virer le processus correspondant et tout rentre dans l'ordre
Marsh Posté le 06-02-2003 à 13:11:30
Taureau a écrit : le seul problème avec ce genre de chose c'est que si le programme plante, ben tu ne peux plus le relancer |
fo
reboot powa
ou ptit prog qui vire la protection
Marsh Posté le 06-02-2003 à 13:22:28
Harkonnen a écrit : ben il suffit de virer le processus correspondant et tout rentre dans l'ordre |
oui avec CreateMutex mais pas avec les Atom il faut alors suivre la procédure de poire
Marsh Posté le 06-02-2003 à 13:26:51
ca marche pas.
Deja j'ai pas Onload mais seulement Oncreate.
Ensuite, pour fermer mon appli c'est un autre ecran qui le gère donc je ne peux pas utiliser le Onclose de ma fenetre principale.
Comment faire ?
[SDF]Poire a écrit : ds le OnLoad |
Marsh Posté le 06-02-2003 à 13:32:38
OnCreate C pareil G pas delphi sous la main alors...
à la place du onclose tu le fous ds le ondestroy ou onclosequery
que ça soit une autre form ki gére la fermeture ne change rien
Marsh Posté le 18-02-2003 à 17:12:57
[SDF]Poire a écrit : |
nonono !!! le mutex est attaché au processus... donc si ça plante, le mutex est libéré !
croyez moi, j'ai fait ça pour mon appli qui n'arrête pas de planter et je peux tjs la relancer ))
le mutex, ça marche nickel
hippo_ma :
DANS LE CODE SOURCE DE TON APPLICATION :
(Projet -> voir code source)
Code :
|
ouala, tout simplement...
plus d'info : http://gysmo.developpez.com/faqdelphi/
ya aussi un truc pour mettre la fenêtre princ de l'appli en premier plan... mais c un peu plus complex... (utilisation de la base de registre)
Marsh Posté le 18-02-2003 à 18:04:24
Moustaaki a écrit : |
ben oui on l'a dit poire parlait de l'autre méthode (atom) où là il faut rebooter ou effacer avec un programme spécial
Marsh Posté le 18-02-2003 à 18:40:44
Taureau a écrit : |
oulaaa.. j'ai vraiment un pb avec mes yeux... spa la première fois en plus
* Moustaaki s'autoflagelle avec une boîte de windows millenium edition *
Marsh Posté le 18-02-2003 à 20:40:48
ben il vaut mieux répéter une bonne solution qu'une mauvaise donc on va redire que mutex c mieux
Marsh Posté le 20-02-2003 à 11:36:20
Taureau a écrit : ben il vaut mieux répéter une bonne solution qu'une mauvaise donc on va redire que mutex c mieux |
Boh j'l'aime bien ma solution
En réalité C + utilisé pour faire des protections sur shareware... (genre appli lancé qu'une *...)
Et ça reste quand même + simple que les mutex tout en gardant le principe de base
Marsh Posté le 04-09-2008 à 14:14:17
Et peut importe le langage,
l'usage des onload / onquit ... ou tout equivalent est il le mieux ?
comment vous faites, si le programme a en plus besoin de se relancer lui meme (genre il s'est mis à jour sur le net)... ?
Perso, je delock avant de le relancer... et le nouveau remet le lock...
Sinon, le mieux, c'est encore un "observateur" qui gere le lock... mais alors, j'ai pas tenter de coder ca...
Marsh Posté le 06-02-2003 à 11:12:05
Bonjour,
j'ai un programme sous delphi pour gerer la base de registre
et j'aimerai que l'on puisse le lancer une seule fois. Comment faire ?
Merci d'avance