Avant le End, j'aimerais passer le focus à l'instance précédente. Y a-t-il une commande précise ? Ou il faut passer par l'API ?If (app.previnstance = True) Then
.....End
End If
Bref, j'en sais rien et j'ai besoin de vous...
Avant le End, j'aimerais passer le focus à l'instance précédente. Y a-t-il une commande précise ? Ou il faut passer par l'API ?If (app.previnstance = True) Then
.....End
End If
Bref, j'en sais rien et j'ai besoin de vous...
salut !
Si tu veux remettre le focus sur un contrôle, utilise MonControle.SetFocus, c'est tout !
avant de poster
FAQ VB - Page sources VB - Cours VB
Mes tutoriels : VB - VB.NET et ASP.NET
N'oubliez pasMerci !
Non, c'est passer le focus à une autre application que je veux faire.Envoyé par khany
Si mon application est déjà lancée, et que l'utilisateur veut la relancer, la nouvelle instance vérifie l'existence d'une précédente, et réactive celle-ci...
(p.ex.: MSN Messenger (sans le Polygamy))
salut !
Sorry, j'avais pas bien compris !
Je crois qu'il existe une méthode (ou API) qui te permet de trouver ce qui est en cours d'exécution mais je ne sais plus quoi !!!
As-tu regarder dans la liste des API ???
avant de poster
FAQ VB - Page sources VB - Cours VB
Mes tutoriels : VB - VB.NET et ASP.NET
N'oubliez pasMerci !
Ben, en fait, j'y pige rien (ou presque) à l'API ... donc, si une bonne âme pouvait m'aider à trouver mon chemin ...
moi, j'ai essayer un truc du genre
mais, ça ne faisais pas toujours ce que je voulais ... j'ai mis ça en suspend pour l'instant, mais ça peut surement t'aider !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Dim aName As String Dim hwndPrev 'As SysInt aName = Me.Caption ' nom de fenêtre a rechercher If App.PrevInstance Then ' cherche une instance de programme précédente Me.Caption = "" 'masque le nom de la fenêtre active hwndPrev = FindWindow(vbNullString, aName) ' recherche l'handle de l'instance précedente If hwndPrev <> 0 Then ' si instance trouvée MsgBox "Le programme est déjà lancé" Call ShowWindow(hwndPrev, SW_SHOWMAXIMIZED) Call SetFocusAPI(hwndPrev) Unload Me End End If End If
pour ce qui est des déclaration :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Public Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As Any, ByVal lpWindowName As Any) As Long Public Declare Function SetFocusAPI Lib "user32" Alias "SetForegroundWindow" (ByVal hwnd As Long) As Long![]()
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !
(Albert Einstein)
Michi bieng, je vais tester d'ici peu... tout de suite en fait...
Après test, ben, ... y a un sacré bug ... lorsque la 2e instance se lance, G bien le MsgBox, une des instances (je sais pas encore laquelle) se termine mais l'application restante ne prends pas le focus et disparait de la barre des tâches...
EDIT : Impossible d' "activer" l'instance restante... Même avec le gestionnaire des tâches de WinXP : Mettre au premier plan, Basculer vers, agrandir, rien ne marche.
oula, moi j'avais essayer a l'époque sur le 98se, pas sous xp ...
ainsi, c'est différent, c'est toujours bon a savoir ... les API(s) ont dut changé
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !
(Albert Einstein)
Certaines, oui, ce qui est vacjhement ch****Envoyé par bhaal76
![]()
Envoyé par Jeremiah
je viens de me rendre compte que je ne t'ai pas tout donné l'autre jour, scuse moi![]()
il te manque çà
d'ou la disparission de ta fenetre ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Public Const SW_HIDE = 0 Public Const SW_SHOWNORMAL = 1 Public Const SW_SHOWMINIMIZED = 2 Public Const SW_SHOWMAXIMIZED = 3 Public Const SW_RESTORE = 9 Public Const SW_MINIMIZE = 6![]()
par contre, si je me souviens bien, j'avais parfois le même probleme que toi, c'est à dire que la fenetre ne prenait pas le focus ... je crois que çà se passais lorsque la fenetre qui devais prendre le focus etait minimiser !
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !
(Albert Einstein)
rectification, je viens de tester a nouveau et je n'ai plus le problème ...
il y a toutefois une différence entre mon test et l'appli que j'avais a l'époque : mon appli était une MDI
je vais pousser plus loin pour voir, mais le code que je t'ai donné marche sous 98SE
La théorie, c'est quand on sait tout et que rien ne fonctionne.
La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !
(Albert Einstein)
Yoo-Hoo, ça marche comme ça ...
Merci bhall, et je ne t'en veux pas...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager