找回密码
 加入
搜索
查看: 2272|回复: 2

[系统综合] (已解決)控制程式暫停或激活,autoit能實現嗎?

[复制链接]
发表于 2011-2-13 11:11:45 | 显示全部楼层 |阅读模式
本帖最后由 yangdai 于 2011-2-13 18:27 编辑

請教
執行兩隻au3編譯的exe。a.exe與b.exe
在視窗的工具列可看到兩隻程式的icon
可移到icon上按右鍵將程式暫停或激活

如果要用a.exe控制b.exe暫停或激活
a程式要如何寫

需要由a程式控制
不要傳遞訊息由b接收後暫停或激活

高手幫幫忙
autoit能做到嗎?

thks.
发表于 2011-2-13 14:06:18 | 显示全部楼层
帮顶.......
 楼主| 发表于 2011-2-13 18:26:36 | 显示全部楼层
在官網找到的
Func _ProcessSuspend($process)  ; PAUSE
     LOCAL  $processid,$ai_Handle,$i_sucess
     $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)  ; GO
     LOCAL  $processid,$ai_Handle,$i_sucess
     $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
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-21 12:31 , Processed in 0.074952 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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