OVH Cloud OVH Cloud

WGC_32.EXE à fermer depuis vbe.

1 réponse
Avatar
FILK
Bonjour,

J'ai ouvert par méthode shell cet exécutable : Shell ("Y:\WGC_32.EXE
/LAUNCHFORDDE")

Bon, ça c'est fait...

Maintenant je voudrais fermer ce programme. Est-ce possible en vba ? si oui,
comment?

Merci d'avance.

Philippe.

1 réponse

Avatar
Alain CROS
Bonjour,

Cet exemple montre comment lancer la calculatrice, puis afficher le handle de sa fenêtre dans une boite de message.
Le code suivant devra être placé dans un module à cause de l'opérateur AddressOf.

Private Declare Function GetWindowThreadProcessId& Lib "user32" _
(ByVal Hwnd&, lpdwProcessId&)

Private Declare Function GetActiveWindow& Lib "user32" ()

Private Declare Function SetForegroundWindow& Lib "user32" _
(ByVal Hwnd&)

Private Declare Function EnumWindows& Lib "user32" _
(ByVal lpEnumFunc&, ByVal lngParam&)

Private Declare Function PostMessage& Lib "user32" _
Alias "PostMessageA" (ByVal Hwnd&, ByVal wMsg&, ByVal wParam&, ByVal lParam&)

Private Declare Function GetParent& Lib "user32" _
(ByVal Hwnd&)

Private Apphwnd&

Private Function EnumWindowsProc&(ByVal Hwnd&, ByVal lngParam&)
Dim test_pid&
GetWindowThreadProcessId Hwnd, test_pid
If test_pid = lngParam And GetParent(Hwnd) = 0& Then Apphwnd = Hwnd Else EnumWindowsProc = True
End Function

Sub LanceApp()
Const WM_SYSCOMMAND& = &H112, SC_CLOSE& = &HF060&
Dim Hwnd&
Hwnd = GetActiveWindow
EnumWindows AddressOf EnumWindowsProc, Shell("Calc")
SetForegroundWindow Hwnd
MsgBox "Le Handle de la fenêtre de la calculatrice est " & Apphwnd & vbCr & _
"Elle va maintenant être fermée"
PostMessage Apphwnd, WM_SYSCOMMAND, SC_CLOSE, 0&
End Sub

Alain CROS

"FILK" a écrit dans le message de news:
| Bonjour,
|
| J'ai ouvert par méthode shell cet exécutable : Shell ("Y:WGC_32.EXE
| /LAUNCHFORDDE")
|
| Bon, ça c'est fait...
|
| Maintenant je voudrais fermer ce programme. Est-ce possible en vba ? si oui,
| comment?
|
| Merci d'avance.
|
| Philippe.
|
|