Prtoection contre plusieurs lancements - C++ - Programmation
Marsh Posté le 25-11-2002 à 16:19:18
solution généralement utilisée :
tu crées un fichier au lancement, et tu le vires a la fermeture.
au deuxieme lancement, tu détectes que le fichier existe, et tu quittes immédiatement en le signalant.
Marsh Posté le 25-11-2002 à 16:28:22
lorill a écrit a écrit : solution généralement utilisée : tu crées un fichier au lancement, et tu le vires a la fermeture. au deuxieme lancement, tu détectes que le fichier existe, et tu quittes immédiatement en le signalant. |
Le deuxieme lancement peux se faire directement en executant l'appli, sans utiliser le launcheur, donc çà ne convient pas pour ce cas là.
Marsh Posté le 25-11-2002 à 16:30:17
ah, j'avais pas fait gaffe que tu lancais un programme que tu ne maitrisais pas. ben dans ce cas, je dirais que c'est pas possible
Marsh Posté le 25-11-2002 à 16:30:47
netneo a écrit a écrit : Le deuxieme lancement peux se faire directement en executant l'appli, sans utiliser le launcheur, donc çà ne convient pas pour ce cas là. |
Tu peux te baser sur l'existance, ou non, d'une fenêtre d'un nom donné (FindWindow)
Marsh Posté le 25-11-2002 à 16:34:43
El_Gringo a écrit a écrit : Tu peux te baser sur l'existance, ou non, d'une fenêtre d'un nom donné (FindWindow) |
ben non, y'a le même probleme, puisqu'il ne controle pas le 2eme programme.
Marsh Posté le 25-11-2002 à 16:35:41
lorill a écrit a écrit : ben non, y'a le même probleme, puisqu'il ne controle pas le 2eme programme. |
Ha !? FindWindow, c'est qu'en interne ?
Alors EnumWindow fera l'affaire...
Marsh Posté le 25-11-2002 à 16:39:03
El_Gringo a écrit a écrit : Ha !? FindWindow, c'est qu'en interne ? Alors EnumWindow fera l'affaire... |
Nan, c'est pas du tout ce que je voulais dire.
En fait, tu peux faire tous les controle que tu veux dans ton programme lanceur, tu empecheras pas de cliquer directement sur le programme lancé, et de squeezer les controles.
Marsh Posté le 25-11-2002 à 16:41:22
lorill a écrit a écrit : Nan, c'est pas du tout ce que je voulais dire. En fait, tu peux faire tous les controle que tu veux dans ton programme lanceur, tu empecheras pas de cliquer directement sur le programme lancé, et de squeezer les controles. |
Non, mais s'il peut être sûr que son programme est lancé, il peux très bien "surveiller" régulièrement (genre avec un TIMER) qu'il n'y ai pas 2 fois une fenêtre nommée "blaba bla".
Si il y en a une 2e, lui envoyer un petit WM_CLOSE...
Marsh Posté le 25-11-2002 à 16:43:30
El_Gringo a écrit a écrit : Non, mais s'il peut être sûr que son programme est lancé, il peux très bien "surveiller" régulièrement (genre avec un TIMER) qu'il n'y ai pas 2 fois une fenêtre nommée "blaba bla". Si il y en a une 2e, lui envoyer un petit WM_CLOSE... |
Ouais, guérir plutôt que prévenir en fait. Mais c'est pas la question initiale. Je crois qu'il va falloir attendre que le monsieur revienne.
Marsh Posté le 25-11-2002 à 16:45:26
lorill a écrit a écrit : Ouais, guérir plutôt que prévenir en fait. Mais c'est pas la question initiale. Je crois qu'il va falloir attendre que le monsieur revienne. |
Ben, disons que c'est guérir avant manifestation de symptomes perceptibles. Un simulation de prévention quoi !
Marsh Posté le 25-11-2002 à 17:47:41
El_Gringo a écrit a écrit : Non, mais s'il peut être sûr que son programme est lancé, il peux très bien "surveiller" régulièrement (genre avec un TIMER) qu'il n'y ai pas 2 fois une fenêtre nommée "blaba bla". Si il y en a une 2e, lui envoyer un petit WM_CLOSE... |
nop c'est pas bon non plus comme çà.
Le soft en question est un logiciel de GPAO.
Je veux empecher plusieurs lancements pour empecher les connexions multiples depuis une meme machine sur la base.
Je recherche donc un systeme qui empeche de relancer une instance d'un process qui tourne déjà.
Marsh Posté le 25-11-2002 à 16:17:39
Je souhaite réaliser un petit executable (en VC++ 6) qui empeche de lancer plusieurs fois un logiciel.
genre en ligne de commande: launch nomdusoft.exe, le soft se lance, mais il est impossible de le lancer une seconde fois.
Si quelqu'un a un bout de code pour faire çà ou une url, merci.