Fermeture application

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 006 fois - Téléchargée 30 fois

Contenu du snippet

Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Const WM_CLOSE = &H10

Private Sub Form_Load()

Dim hWnd As Long

hWnd = FindWindow(vbNullString, "Mon Programme")
'Mettre exactement le nom du programme tel qu'il est notté quand CTRL-ALT-SUP
Call PostMessage(hWnd, WM_CLOSE, 0, 0)

End Sub

A voir également

Ajouter un commentaire

Commentaires

umfred
Messages postés
18
Date d'inscription
jeudi 20 février 2003
Statut
Membre
Dernière intervention
19 juin 2017
-
Pour mon besoin, cela fonctionne avec le code de peucher, mais pas celui que tu donnes ukr6900.
Dans l'exemple de peucher, il faut mettre le nom qui apparait dans l'onglet "Applications" du gestionnaire des tâches.
Je pense que l'exemple de uk6900 fonctionne mais seulement parce que la ClassName d'un fichier Notepad est "Notepad".
UKR6900
Messages postés
4
Date d'inscription
jeudi 23 janvier 2003
Statut
Membre
Dernière intervention
24 juin 2006
-
Correction pour que ça marche avec VB6 + exemple de code un peu plus explicite(voir ci-dessous avec Notepad).
Corrections:
Inversion dans l'API FindWindow entre lpClassName et
lpWindowName dans ton code (ça ne peut pas marcher) +
déclaration du handle changer le nom et emplacement
A+

Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Private Const WM_CLOSE = &H10
Private lHandle As Long

Private Sub Command1_Click()
lHandle = FindWindow("Notepad", vbNullString)
'Mettre exactement le nom du programme tel qu'il est notté quand CTRL-ALT-SUP
Call PostMessage(lHandle, WM_CLOSE, 0, 0)
End Sub

Private Sub Form_Load()
Shell "notepad", vbNormalFocus
End Sub
SkyRocKo
Messages postés
174
Date d'inscription
samedi 10 mai 2003
Statut
Membre
Dernière intervention
18 février 2006
-
Chez moi ça marche impec !

Dommage que ça ne gère pas les processus.

Bonne prog ! 08/10

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.