Suspendre un processus depuis son pid

Soyez le premier à donner votre avis sur cette source.

Snippet vu 9 345 fois - Téléchargée 27 fois

Contenu du snippet

Ce ptit bout de code montre comment suspendre directement un processus depuis son pid

Utilisation:

pour suspendre un process :

SuspendResumeProcess Pid, True

pour le relancer:

SuspendResumeProcess Pid, False

Source / Exemple :


Private Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function NtSuspendProcess Lib "Ntdll.dll" (ByVal hProc As Long) As Long
Private Declare Function NtResumeProcess Lib "Ntdll.dll" (ByVal hProc As Long) As Long
Private Declare Function CloseHandle Lib "Kernel32.dll" (ByVal hObject As Long) As Long
Private Const PROCESS_SUSPEND_RESUME As Long = &H800

Public Function SuspendResumeProcess(ByVal Pid As Long, ByVal Action As Boolean) As Long
    
    Dim hProcess   As Long
    
    hProcess = OpenProcess(PROCESS_SUSPEND_RESUME, 0&, Pid)
    
    If hProcess Then
        If Action Then
            SuspendResumeProcess = NtSuspendProcess(hProcess)
        Else
            SuspendResumeProcess = NtResumeProcess(hProcess)
        End If
        CloseHandle hProcess
    End If

End Function

A voir également

Ajouter un commentaire

Commentaires

Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Erf tu vas en faire rire plus d'un la ^^

Un Pid (Process identifier) en francais (Identificateur de processus) est un nombre entier 32bit servant comme son nom l'indique a identifier un processus.
Dans le gestionnaire de taches de Windows dans le menu affichage tu clic sur "Selectionner les colones" et tu coches PID.
Tu verra alors les pid s'afficher dans la liste des processus.

Tu verra que tu as plusieurs processus qui portent le meme nom genre Svchost.exe, c'est justement leur PID qui permet de les differencier.

Le PID est attribué "aléatoirement" par Windows lors de la creation du processus.

Donc voila en gros ce qu'est un PID, maintenant si tu veux toujours programmer un PID je ne peux rien faire pour toi! lol

Mais peut etre peux tu reposer ta question ?
Que veux tu faire au juste ?

++
Messages postés
11
Date d'inscription
vendredi 16 mars 2007
Statut
Membre
Dernière intervention
19 juillet 2007

pardon mais es ce qq peut m'aider? je chreche a programmer un PID avec VB .net
et je ne sais pas par ou commence
Merci
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Salut,

Eh a mon avis c'est surement un probleme de droits utilisateur...
Est tu bien administrateur de ta machine ?
Si oui, tu pas peut etre un anti-malware qui t'as desactiver les droits de "debogage" des process...

Enfin il peut y avoir des tonnes de raisons, mais je doute fort que ca vienne du code en lui meme...

++
Messages postés
419
Date d'inscription
lundi 30 août 2004
Statut
Membre
Dernière intervention
28 janvier 2008

je suis sous xp et sa fonctionne pas :-/ xp pro sp2 ^^

enfin ptete un prob chez moi mais je doute
Messages postés
30
Date d'inscription
mardi 3 janvier 2006
Statut
Membre
Dernière intervention
1 mars 2009

Merci pour les explications. Le programme est donc très utile. Je le testerai sous XP.
Patrice
Afficher les 18 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.