Bonjour à tous!
Voilà j'aimerai trouver un moyen de suspendre un processus précis, afin de faire une pause...
quelqu'un saurait-il faire ça ici?
Merci d'avance :)
Version imprimable
Bonjour à tous!
Voilà j'aimerai trouver un moyen de suspendre un processus précis, afin de faire une pause...
quelqu'un saurait-il faire ça ici?
Merci d'avance :)
OUi c'est facile :
Méthode :fleche: WaitForExit de la classe Process :lol:
salut Aspic et merci pour ta réponse.
Toutefois peux-tu detailler un peu plus stp?
en effet, je croyais que WaitForExit servait à attendre que le processus soit terminé pour passer à la suite...
mais je ne vois pas comment suspendre le processus en question?
en fait mon programme lance un java script qui peut durer plusieurs heures...
ce que j'aimerai c'est suspendre se javascript en gelant le processus java.exe. et le remprendre là ou on l'avait geler par la suite...
faire une pause dans l'exécution du javascript quand on appuie sur un bouton...
si j'ai bien compris la source qu'il y a en lien dans mon 1er post c'est ce qui est fait en VB6 en suspendant le processus par son PID... donc si c'est faisable en VB6 je suppose que ça l'est aussi en vb.net!?
C'est plus clair ou toujours pas?
Oui c'est clair et c'est possible par API ;)
++Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 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
salut!
je ne sais pas si je m'y prend mal, mais quand j'essaye ta fonction j'ai cette erreur :
http://www.casimages.com/img/jpg/min...2191068358.jpg
une idée?Code:Un appel à la fonction PInvoke 'WindowsApplication1!WindowsApplication1.Form1::OpenProcess' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.
Il ne faudrait pas remplacer Long par Integer dans la déclaration ?
salut SaumonAgile,
tu parles pour quelle déclaration? toutes?
sinon j'ai trouvé ça qui marche
Ca fait passer par une commande, mais bon au moins ça marche :)
DansCode:Public Function SuspendResumeProcess(ByVal Pid As Long, ByVal Action As Boolean)
nan même message...
mais ca marche avec pssuspend.exe donc c'est bon je vais me contenter de ça...
merci pour tout quand même... :)
Biensur que si ;)
Mais dans toutes les déclarations, donc le bon code est :
Code:
1
2
3
4
5
6
7 Private Declare Function OpenProcess Lib "Kernel32.dll" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer Private Declare Function NtSuspendProcess Lib "Ntdll.dll" (ByVal hProc As Integer) As Integer Private Declare Function NtResumeProcess Lib "Ntdll.dll" (ByVal hProc As Integer) As Integer Private Declare Function CloseHandle Lib "Kernel32.dll" (ByVal hObject As Integer) As Integer Private Const PROCESS_SUSPEND_RESUME As Integer= &H800 Public Function SuspendResumeProcess(ByVal Pid As Integer, ByVal Action As Boolean) As Integer
ha bah oui ca marche!
merci beaucoup Aspic!