Fermer n'importe quel process depuis vb

Soyez le premier à donner votre avis sur cette source.

Snippet vu 13 786 fois - Téléchargée 35 fois

Contenu du snippet

Ce petit bout de code sert à fermer n'importe quel process depuis VB ou Acess.

Source / Exemple :


Option Compare Database
Option Explicit

Public Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long 'API de fermeture de Process
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long 'Ouverture de Process

'Procedure qui tue un processus
Sub KillProcess()

'Const PROCESS_QUERY_INFORMATION = &H400
Static ProcessId:
Dim hProcess, Termine&

If MsgBox("OUI = OUVRIR, NON = FERMER", vbYesNo) = vbYes Then

    ProcessId = Shell("C:\Test.exe", vbHide)

Else

'On le numéro de son Process
    hProcess = OpenProcess(1, False, ProcessId)
    ' On Ferme le process lancé par un TerminateProcess
    Termine& = TerminateProcess(hProcess, 4)
End If

End Sub

A voir également

Ajouter un commentaire

Commentaires

Messages postés
4
Date d'inscription
jeudi 4 mai 2006
Statut
Membre
Dernière intervention
7 avril 2010

Bonsoir,

Je viens de tester ce code dans VBA sous Access. Il ne ferme pas un processus déjà ouvert mais plutôt un 'programme'. Pour exemple : j'ai un processus Excel en cours que je ne peux fermer que par le gestionnaire de tâche, ce code ne le ferme pas. Il fonctionne très bien pour ouvrir un executable définit et le fermer mais pas pour ce qui est déjà ouvert.
Messages postés
50
Date d'inscription
vendredi 6 août 2004
Statut
Membre
Dernière intervention
6 juillet 2007

ce code marche-t-il pour tuer un process qui etaits déjà lancé avant l'execution du code???
Messages postés
56
Date d'inscription
jeudi 26 décembre 2002
Statut
Membre
Dernière intervention
28 septembre 2005

'facile copier ceci et le mettre dans une form
'et ajoute un bouton Command1

Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess As Long, ByVal uExitCode As Long) As Long 'API de fermeture de Process
Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessID As Long) As Long 'Ouverture de Process
Dim IDProg As Integer

Private Sub Command1_Click()
Dim hProcess, Termine&
If Command1.Caption = "Start" Then
Command1.Caption = "Stop"
IDProg = Shell("calc.exe", vbNormalFocus)
Else
Command1.Caption = "Start"
hProcess = OpenProcess(1, False, IDProg)
Termine& = TerminateProcess(hProcess, 4)
End If
End Sub

Private Sub Form_Load()
Command1.Caption = "Start"
End Sub
Messages postés
57
Date d'inscription
mercredi 22 décembre 2004
Statut
Membre
Dernière intervention
29 avril 2005

On trouve comment le numéro du process?
On invoque quand la procédure Killprocess?

Il manque plein de choses la-dedans!
Fais-en un programme et met le zip pour voir si ca fonctionne, et verras p-e ce qu'il manque, parce que on peut rien faire avec ce code la sans le modifier!

Je mets pas de notes, on dirait pas un travail finit.
Messages postés
1
Date d'inscription
jeudi 9 novembre 2000
Statut
Membre
Dernière intervention
27 février 2005

moi aussi je débute et ya rien qui marche...Se script est remplit derror dsl si ses moi lolll....
Afficher les 10 commentaires

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.