qq342252004 发表于 2008-10-2 13:20:33

AutoIT不借助第三方软件能实现暂停和启用进程吗

AutoIT不借助第三方软件能实现暂停和启用进程吗

[ 本帖最后由 qq342252004 于 2008-10-3 11:39 编辑 ]

liongodmien 发表于 2008-10-2 15:04:03

用类似下面的句式:

While $Pause = 1
---
---
Wend

Do
---
---
Until $Pause = 0

qq342252004 发表于 2008-10-2 17:18:33

这个句式不会用,能否举个例子?

bing614 发表于 2008-10-2 19:57:32

试下这段代码,反正我试过很不错。
_ProcessSuspend("QQ.exe");;暂停进程
MsgBox(0,"","已经暂停了吧!,确定这后恢愎.")
_ProcessResume("QQ.exe");;恢愎进程
Func _ProcessSuspend($process)
$processid = ProcessExists($process)
If $processid Then
    $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
    $i_sucess = DllCall("ntdll.dll","int","NtSuspendProcess","int",$ai_Handle)
    DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
    If IsArray($i_sucess) Then
      Return 1
    Else
      SetError(1)
      Return 0
    Endif
Else
    SetError(2)
    Return 0
Endif
EndFunc

Func _ProcessResume($process)
$processid = ProcessExists($process)
If $processid Then
    $ai_Handle = DllCall("kernel32.dll", 'int', 'OpenProcess', 'int', 0x1f0fff, 'int', False, 'int', $processid)
    $i_sucess = DllCall("ntdll.dll","int","NtResumeProcess","int",$ai_Handle)
    DllCall('kernel32.dll', 'ptr', 'CloseHandle', 'ptr', $ai_Handle)
    If IsArray($i_sucess) Then
      Return 1
    Else
      SetError(1)
      Return 0
    Endif
Else
    SetError(2)
    Return 0
Endif
EndFunc

qq342252004 发表于 2008-10-3 11:39:40

谢谢楼上的朋友

奥斯丁 发表于 2009-8-5 09:15:15

谢谢楼上的朋友

m765555 发表于 2011-1-22 14:57:09

不错的,学习了一点

andersonljw 发表于 2011-3-27 19:46:26

谢谢,好东西就要顶
页: [1]
查看完整版本: AutoIT不借助第三方软件能实现暂停和启用进程吗