begin process at 2012 02 16 22:04:13
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > SUSPENDRE UN PROCESSUS DEPUIS SON PID

SUSPENDRE UN PROCESSUS DEPUIS SON PID


 Information sur la source

Note :
10 / 10 - par 4 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Système Classé sous :processus, geler, suspendre, desactiver, pid Niveau :Débutant Date de création :22/09/2006 Vu :7 345

Auteur : draluorg

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note


 Description

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

  • 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
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



 Sources du même auteur

Source avec Zip Source avec une capture GESTION DES PRIVILEGES DES PROCESSUS
Source avec Zip Source avec une capture TEMPS PROCESSEURS TOTAL ET PAR UNITÉ (API NATIVE)
Source avec Zip Source avec une capture ENREGISTRER ET CHARGER LISTVIEW DANS FICHIER AVEC IMAGE ETC....
Source avec Zip Source avec une capture GESTION DES FICHIERS SWAP
Source avec Zip Source avec une capture CLASSE POUR RÉCUPERER L'UTILISATION CPU D'UN PROCESSUS

 Sources de la même categorie

Source avec Zip Source avec une capture AUTORISER/REFUSER L'EXECUTION DE PROCESSUS par pierreh51
Source avec Zip Source .NET (Dotnet) CLONE/FORK DES FLUX DE LA CONSOLE : PERMETTRE LA REDIRECTION... par ShareVB
Source avec Zip Source .NET (Dotnet) DÉFRAGMENTER UN FICHIER par ShareVB
Source avec Zip Source .NET (Dotnet) ECRAN DE VEILLE : DÉTECTER LE LANCEMENT/DÉCLENCHER/EMPÊCHER par ShareVB
Source avec Zip Source avec une capture DESACTIVER / ACTIVER LES MISES EN VEILLES PC par Arsena

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture AUTORISER/REFUSER L'EXECUTION DE PROCESSUS par pierreh51
Source avec Zip Source .NET (Dotnet) LA LISTE DES TÂCHES COMME DANS L'ONGLET APPLICATION DU GESTI... par ShareVB
Source avec Zip RÉCUPÉRER PID PROCESSUS, NOM DE FICHIER.EXE ET HANDLE FENÊTR... par Philippe734
Source avec Zip Source avec une capture CLM'S EMERGENCY : REFROIDISSEUR DE CPU par clementio
Source avec Zip SUSPENDRE/GELER UN PROCESSUS/UN THREAD par MadM@tt

Commentaires et avis

Commentaire de MadM@tt le 22/09/2006 19:25:40

Le code est plus court que de suspendre chaque thread du processus effectivement ^^ (plus rapide ?)
par contre d'après le nom des api (NtSuspendProcess) ça marche que sous nt je suppose ?
(enfin de nos jours, qui n'a pas nt ^^)

Commentaire de draluorg le 22/09/2006 20:51:52

Eh oui en effet, valable seulement sur Nt 2000 et XP je pense...

Pour la rapidite, c'est en effet surement plus rapide que d'enumerer les threads de les ouvrir et les suspendre...

Mais l'avantage c'est surtout la simplicite ;)

++

Commentaire de PCPT le 22/09/2006 22:07:46 administrateur CS

salut,
(pas testé)
umm... codyx?
++

Commentaire de violent_ken le 22/09/2006 22:07:56

Nickel, je remplace tout un module par 2 APIs ;)


Merci, @+

Commentaire de draluorg le 22/09/2006 22:32:26

merci pour la note ^^

PCPT >> "umm... codyx?"

Eh ca veux dire quoi au juste ?

++

Commentaire de violent_ken le 22/09/2006 22:33:22

http://www.codyx.org/

@+

Commentaire de draluorg le 22/09/2006 23:19:54

Ah ok... merci Ken ;)

J'etais deja tombe sur cette page je savais pas trop ce que c'etait lol

Je sais pas si ce ptit bout de code y a sa place, je vais la suggerer on verra...

++

Commentaire de PCPT le 22/09/2006 23:45:14 administrateur CS

snippet activé.
et je viens de tester... çà peut vraiment être utile.
précision : les actions sont suspendues mais pas en pause (donc pas perdues).
qu'est-ce qu'il dit?
beh suffit de tester avec le bloc-note par exemple :
.on met en pause
.on donne le focus (sans effet visuel)
.on saisi une phrase (disabled donc rien)
...la phrase apparaît à lorsque réactive le pid

un p'tit 10 de plus ;)
PCPT  [AFCK]

Commentaire de PCPT le 22/09/2006 23:46:16 administrateur CS

...la phrase apparaît lorsqu'on réactive le pid ***

Commentaire de draluorg le 23/09/2006 15:25:00

"la phrase apparaît lorsqu'on réactive le pid"

Eh oui mais ca je pense que c'est Windows qui enregistre le(s) message(s) et qui l'envoi a l'appli lorsqu'elle se "reveille" (enfin je suppose)

++

Commentaire de patrice_b le 25/09/2006 08:49:37

Code interessant. Mais je ne sais pas ce qu'est un Pid. Merci pour l'explication
Patrice

Commentaire de MadM@tt le 25/09/2006 09:20:08

PID > ProcessID c'est l'identificateur d'un processus, un numéro quoi.
Pour le voir lance le gestionnaire des taches, onglets processus et dans le menu affichage clique sur sélectionner les colonnes, la active la case "numéro" ou "pid" ou je ne sais plus quel nom.
Ensuite tu auras la colonne qui t'affichera le pID de chaque processus.

Commentaire de PCPT le 25/09/2006 12:13:47 administrateur CS

salut,
exemple.. "Shell" renvoie le PID.
lPid à déclarer en Long (déclarations générales)

lPid=Shell("notepad.exe")

et ensuite tu fais les tests sur cette variables....
++

Commentaire de patrice_b le 26/09/2006 08:34:36

Merci pour les explications. Le programme est donc très utile. Je le testerai sous XP.
Patrice

Commentaire de diablamanshadow le 07/11/2006 01:39:05

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

enfin ptete un prob chez moi mais je doute

Commentaire de draluorg le 07/11/2006 17:42:32

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...

++

Commentaire de nnizarr le 04/05/2007 17:58:45

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

Commentaire de draluorg le 04/05/2007 19:53:12

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 ?

++

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Geler le système comme dans win98 (Ctrl-Alt-Suppr) [ par MadM@tt ] Bonjour a tousVoilà je cherche à faire la même chose que le gestionnaire des taches de win98, quand on le lance tous les processus sont bloqués et on Capter l'ouverture de processus. [ par violent_ken ] Violent KenSalut à tous ! J'ai un problème assez complexe... Je le poste, merci à vous si vous pouvez m'aider !Je suis en train de prog Trouver le PID d'un processus avec le nom de l'EXE [ par Tioneb ] Salut,Bon, je sais que je vais poser une question "simple" mais je n'arrive pas à trouver la solution tout seul. Je m'embrouille les pinceaux entre le Comment différencier deux processus dans l'attribut InstanceName d'un PerformanceCounter ? [ par violent_ken ] Violent Ken Bonjour !J'ai cherché pendant un bout de temps sans succès.... Savez vous comment différencier deux process Récupérér path d'un processus en fonction de son PID [ par violent_ken ] Violent KenSalut à tous !Ma question est simple : comment peut-on récupérer le path complet d'un exécutable lancé (exemple : c:\windows\system32\explo Connaitre le PID d'Excel qu'on lance grâce à CreateObject [ par SebSemos ] Salut à tous, voila j'ai un programme qui lance excel à son chargement, et qui le quitte à sa fermeture. Je veux vérifier si Excel est toujours présen Passer word en priorité haute (SetPriorityClass) [ par Thibaut77 ] Bonjour à tous, J’ai développé une petite appli qui au cours du déroulement rédige un rapport sous word. Pour des problèmes de performances, j’ai bes VS2008 + Crystal report = connexions dormantes Mysql [ par schismdj ] Bonjour à tous, j'utilise VS 2008 et l'outil crystal report intégré pour la création de rapports pour mon activité. J'utilise également une base de do Cacher un processus [ par pcpunch ] Est il possible de cacher son programme VB6 de la liste des processus, ou de le renomer ? J'ai vu quelque piste mais pas grand chose en vb6 (service o Comment interdir la fermeture d'un processus ? [ par EhJoe ] Bonjour, Je cherche comment interdir la fermeture d'un processus déterminé depuis, et durant le lancement d'une application ? Il s'agit d'une pointe


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,215 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales