DÉTECTION D'UNE INSTANCE - RESTAURATION DE L'ANCIENNE INSTANCE
Ubaye
-
18 mai 2001 à 15:54
INFOLOGIS
Messages postés2Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention27 juin 2008
-
27 juin 2008 à 14:36
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
ça m'a permis de faire des actions sur une instance d'une logiciel, comme réouvrir un logiciel réduit en icône... :)
INFOLOGIS
Messages postés2Date d'inscriptionmercredi 21 mars 2007StatutMembreDernière intervention27 juin 2008 24 juin 2008 à 16:06
est-il possible de lancer une fonction ou autre sur la précédente instance que l'on ouvre?
Car mon appli peut être dans la barre de notification et j'aurai souhaité qu'elle s'ouvre au moment ou je relançais l'exe.
cs_PaTaTe
Messages postés2126Date d'inscriptionmercredi 21 août 2002StatutContributeurDernière intervention19 février 20212 24 avril 2006 à 00:53
une option "garder l'ancienne instance en lui donnant le focus" ou "detruire afin d'en relancer une" serait pas mal non ?
SupSeb
Messages postés9Date d'inscriptionjeudi 26 décembre 2002StatutMembreDernière intervention23 septembre 2007 16 mars 2006 à 20:00
Je ne sais pas si j'ai bien fait ce qu'il fallait mais pour moi cela marche trés bien si on lance 2 fois le meme executable mais si on place le meme executable a 2 endroits différents la pas de probleme on peut lancer les 2 executables
non ?
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 1 juin 2005 à 17:35
En effet, www.vbaccelerator.com est un site de référence. Je le connais quasi comme ma poche ;O)
cs_seb78
Messages postés18Date d'inscriptionlundi 2 décembre 2002StatutMembreDernière intervention13 juin 2005 1 juin 2005 à 17:21
Bravo, ce code est simple et efficace, néanmoins, il manque le passage de la ligne de commande pour ceux qui en ont besoin, j'ai pour celà trouvé un bon lien qui donne un exemple parfait et adaptable à souhait, le voilà
Pour gérer une seule instance ouverte, il utilise un sémaphore binaire et pour le passage des paramètres, il utilise l'envoi de messages windows.
Egalon
Messages postés124Date d'inscriptionlundi 26 avril 2004StatutMembreDernière intervention17 juin 2011 3 mai 2005 à 20:26
C'est simple à mettre en oeuvre, c'et bien commenté...
bref c'est parfait: 10/10
J'aimerais savoir s'il ya un moyen de completer ce code avec des parametres. En supposant par exemple que l'appli ait des arguments sur la ligne de commande, comment faire passer ces arguments à l'instance en cours???
cs_NoFutur
Messages postés171Date d'inscriptionmardi 17 décembre 2002StatutMembreDernière intervention 6 mai 20071 28 janv. 2005 à 17:17
Bravo pour la source et l'alternative de kevinK
10/10
Bonne prog !!!
NeoToto
Messages postés11Date d'inscriptionvendredi 29 novembre 2002StatutMembreDernière intervention15 mai 2006 18 févr. 2004 à 14:20
Terrible, merci a vous !
cs_KevinK
Messages postés43Date d'inscriptionmardi 22 janvier 2002StatutMembreDernière intervention 9 janvier 2003 13 mai 2002 à 15:46
J'ai trouvé un système plus simple pour activer l'ancienne instance.
il suffit qu'à chaque démarrage, on sauvegarde le handle de la fenêtre dans la base de registre (on peut bien sûr le faire dans un fichier texte si on veut):
If App.PrevInstance Then
PrevHwnd = Val(GetSetting(Nom_du_prog, Nom_de_la_clef, "Handle"))
OpenIcon PrevHwnd
SetForegroundWindow PrevHwnd
End
End If
SaveSetting Nom_du_prog, Nom_de_la_clef, "Handle", Me.hwnd
On n'utilise que les API OpenIcon et SetforegroundWindow pour l'activer, au lieu de toutes celles que tu utilisait, et c'est générique: ça marche pour vb4,5 et 6.
Kevin K.
27 juin 2008 à 14:36
ça m'a permis de faire des actions sur une instance d'une logiciel, comme réouvrir un logiciel réduit en icône... :)
24 juin 2008 à 16:06
Car mon appli peut être dans la barre de notification et j'aurai souhaité qu'elle s'ouvre au moment ou je relançais l'exe.
24 avril 2006 à 00:53
16 mars 2006 à 20:00
non ?
1 juin 2005 à 17:35
1 juin 2005 à 17:21
http://www.vbaccelerator.com/codelib/ssubtmr/startup.htm
Pour gérer une seule instance ouverte, il utilise un sémaphore binaire et pour le passage des paramètres, il utilise l'envoi de messages windows.
3 mai 2005 à 20:26
bref c'est parfait: 10/10
J'aimerais savoir s'il ya un moyen de completer ce code avec des parametres. En supposant par exemple que l'appli ait des arguments sur la ligne de commande, comment faire passer ces arguments à l'instance en cours???
28 janv. 2005 à 17:17
10/10
Bonne prog !!!
18 févr. 2004 à 14:20
13 mai 2002 à 15:46
il suffit qu'à chaque démarrage, on sauvegarde le handle de la fenêtre dans la base de registre (on peut bien sûr le faire dans un fichier texte si on veut):
If App.PrevInstance Then
PrevHwnd = Val(GetSetting(Nom_du_prog, Nom_de_la_clef, "Handle"))
OpenIcon PrevHwnd
SetForegroundWindow PrevHwnd
End
End If
SaveSetting Nom_du_prog, Nom_de_la_clef, "Handle", Me.hwnd
On n'utilise que les API OpenIcon et SetforegroundWindow pour l'activer, au lieu de toutes celles que tu utilisait, et c'est générique: ça marche pour vb4,5 et 6.
Kevin K.
18 mai 2001 à 15:54
Ubaye A+