Bonjour à tous,
Ce topic ressemble fort à l'autre mais je préfère en faire 2 pour la clareté du paysage.
1) En scrutant la FAQ Système de Visual Basic,
Je n'arrive pas à bien comprendre la différence de ce lien entre son titre et la phrase en italique à la fin du sujet:
"Comment fermer un programme ouvert avec la fonction Shell ?"
http://vb.developpez.com/faq/?page=Systeme#close_exe
et
J'ouvre mon application avec la fonction Shell:Avec ce code source vous ne pourrez donc pas, par exemple, fermer une fenêtre de l'explorateur Windows ouverte par Shell() ...
2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Dim Lancement Lancement = Shell("C:\Program Files\Application\Application.exe", 3)
Et jusque là, je la fermais avec:
Déclarations:
Code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 'déclarations à mettre dans un module séparé Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal HWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Public Const WM_CLOSE = &H10 Public Const WM_DESTROY = &H2 Public Const WM_NCDESTROY = &H821) Pouvez-vous m'apporter votre lumière sur cette différence?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Dim HWnd As Long HWnd = FindWindow(vbNullString, "Application") If HWnd > 0 Then SendMessage HWnd, WM_NCDESTROY, 0, 0 End If
2) Pouvez-vous m'éclarer sur la meilleure méthode à utiliser ?
Celle d'origine (WM_NCDESTROY), ce serait gentil![]()
Merci
Partager