找回密码
 加入
搜索
查看: 2367|回复: 7

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

[复制链接]
发表于 2008-10-2 13:20:33 | 显示全部楼层 |阅读模式
AutoIT不借助第三方软件能实现暂停和启用进程吗

[ 本帖最后由 qq342252004 于 2008-10-3 11:39 编辑 ]
发表于 2008-10-2 15:04:03 | 显示全部楼层
用类似下面的句式:

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

Do
---
---
Until $Pause = 0
 楼主| 发表于 2008-10-2 17:18:33 | 显示全部楼层
这个句式不会用,能否举个例子?
发表于 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[0])
    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[0])
    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
 楼主| 发表于 2008-10-3 11:39:40 | 显示全部楼层
谢谢楼上的朋友
发表于 2009-8-5 09:15:15 | 显示全部楼层
谢谢楼上的朋友
发表于 2011-1-22 14:57:09 | 显示全部楼层
不错的,学习了一点
发表于 2011-3-27 19:46:26 | 显示全部楼层
谢谢,好东西就要顶
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-10-2 10:30 , Processed in 0.073013 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表