DÉTECTION D'UNE INSTANCE - RESTAURATION DE L'ANCIENNE INSTANCE

Ubaye - 18 mai 2001 à 15:54
INFOLOGIS Messages postés 2 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 27 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.

https://codes-sources.commentcamarche.net/source/1144-detection-d-une-instance-restauration-de-l-ancienne-instance

INFOLOGIS Messages postés 2 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 27 juin 2008
27 juin 2008 à 14:36
j'ai trouvé ce que je cherchais sur le post de zavier666 que je remercie! (http://www.vbfrance.com/codes/HANDLE-API-MANIPULATION-FENETRE_35981.aspx)

ç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és 2 Date d'inscription mercredi 21 mars 2007 Statut Membre Dernière intervention 27 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és 2126 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
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és 9 Date d'inscription jeudi 26 décembre 2002 Statut Membre Dernière intervention 23 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és 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
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és 18 Date d'inscription lundi 2 décembre 2002 Statut Membre Dernière intervention 13 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à

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.
Egalon Messages postés 124 Date d'inscription lundi 26 avril 2004 Statut Membre Dernière intervention 17 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és 171 Date d'inscription mardi 17 décembre 2002 Statut Membre Dernière intervention 6 mai 2007 1
28 janv. 2005 à 17:17
Bravo pour la source et l'alternative de kevinK
10/10

Bonne prog !!!
NeoToto Messages postés 11 Date d'inscription vendredi 29 novembre 2002 Statut Membre Dernière intervention 15 mai 2006
18 févr. 2004 à 14:20
Terrible, merci a vous !
cs_KevinK Messages postés 43 Date d'inscription mardi 22 janvier 2002 Statut Membre Derniè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.
Génial c'etait justement la réponse à une de mes questions pour une application récente, Merci.
Ubaye A+