Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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 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. | |
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 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" <FILK@discussions.microsoft.com> a écrit dans le message de news: 14CAF956-A709-452E-B0E5-4726F58E32A3@microsoft.com...
| 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.
|
|
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 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. | |