- 'A COLLER DANS UN MODULE
- '
- 'DECLARATION API
- Declare Function OpenIcon Lib "user32" (ByVal hwnd As Long) As Long
- Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
- Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
- Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
-
- 'DECLARATION CONSTANTE
- Public Const GW_HWNDPREV = 3
-
- Sub ActivatePrevInstance()
-
- Dim OldTitle As String
- Dim PrevHndl As Long
- Dim result As Long
-
- 'Sauve le titre de l'applciation.
- OldTitle = App.Title
-
- 'Renomme le titre de l'application, ainsi FindWindow
- 'ne trouvera pas l'instance de cette application.
- App.Title = "unwanted instance"
-
- 'Tentative d'obtention du handle de la fenêtre utilisant le nom de classe de VB4.
- PrevHndl = FindWindow("ThunderRTMain", OldTitle)
-
- 'Vérification si le handle a été trouvé
- If PrevHndl = 0 Then
- 'Tentative d'obtention du handle de la fenêtre utilisant le nom de classe de VB5.
- PrevHndl = FindWindow("ThunderRT5Main", OldTitle)
- End If
-
- 'Vérification si le handle a été trouvé
- If PrevHndl = 0 Then
- 'Tentative d'obtention du handle de la fenêtre utilisant le nom de classe de VB6.
- PrevHndl = FindWindow("ThunderRT6Main", OldTitle)
- End If
-
- 'Vérification si le handle a été trouvé
- If PrevHndl = 0 Then
- 'Aucune instance précédente trouvée.
- Exit Sub
- End If
-
- 'Obtention du handle de la fenêtre précédente.
- PrevHndl = GetWindow(PrevHndl, GW_HWNDPREV)
-
- 'Restaure le programme.
- result = OpenIcon(PrevHndl)
-
- 'Active l'application.
- result = SetForegroundWindow(PrevHndl)
-
- 'Termine l'application.
- End
- End Sub
'A COLLER DANS UN MODULE
'
'DECLARATION API
Declare Function OpenIcon Lib "user32" (ByVal hwnd As Long) As Long
Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Declare Function SetForegroundWindow Lib "user32" (ByVal hwnd As Long) As Long
'DECLARATION CONSTANTE
Public Const GW_HWNDPREV = 3
Sub ActivatePrevInstance()
Dim OldTitle As String
Dim PrevHndl As Long
Dim result As Long
'Sauve le titre de l'applciation.
OldTitle = App.Title
'Renomme le titre de l'application, ainsi FindWindow
'ne trouvera pas l'instance de cette application.
App.Title = "unwanted instance"
'Tentative d'obtention du handle de la fenêtre utilisant le nom de classe de VB4.
PrevHndl = FindWindow("ThunderRTMain", OldTitle)
'Vérification si le handle a été trouvé
If PrevHndl = 0 Then
'Tentative d'obtention du handle de la fenêtre utilisant le nom de classe de VB5.
PrevHndl = FindWindow("ThunderRT5Main", OldTitle)
End If
'Vérification si le handle a été trouvé
If PrevHndl = 0 Then
'Tentative d'obtention du handle de la fenêtre utilisant le nom de classe de VB6.
PrevHndl = FindWindow("ThunderRT6Main", OldTitle)
End If
'Vérification si le handle a été trouvé
If PrevHndl = 0 Then
'Aucune instance précédente trouvée.
Exit Sub
End If
'Obtention du handle de la fenêtre précédente.
PrevHndl = GetWindow(PrevHndl, GW_HWNDPREV)
'Restaure le programme.
result = OpenIcon(PrevHndl)
'Active l'application.
result = SetForegroundWindow(PrevHndl)
'Termine l'application.
End
End Sub