你在某脚本(老板1)中设置一个热键,可以暂停另一个脚本(员工2)的
两个脚本:1常用 2临时用
在1中设置一个热键,可以暂停2的运行,
就是老板可以让临时工随时滚蛋...
以暂停为例,,老板脚本如下:
#F1::
DetectHiddenWindows, on
SetTitleMatchMode, 2
PostMessage, 0x111, 65306,,, 这里写将被暂停的脚本名(员工脚本名).ahk - AutoHotkey
return
65305 挂起
65306 暂停
65307退出
65304编辑
【应用】
#NoEnv
;sunwind 2013年3月30日21:59:41
;关闭除Needle变量之外的所有ahk进程
result:=GetProcessInfo("AutoHotkey.exe")
;Needle为保留ahk列表 感谢逆风飞扬帮助完善!
Needle =
(
脚本1名字
脚本2名字
)
Loop, parse, result, `n
{
StringLeft,pid,A_LoopField,InStr(A_LoopField,"|")-1
FoundPos := RegExMatch(A_LoopField, "[^\\]*\.ahk", Match) ;
StringTrimRight,ming,Match,4
;~ MsgBox, % "FoundPos: " FoundPos "`n" "Match: " Match
IfNotInString,Needle,%ming%
PostMessage,0x111,65405,0,,ahk_pid %pid%
;~ Process, Close,%pid%
}
return
GetProcessInfo(iProcessName,iProcessId="",iMode=1) {
FROM=SELECT * FROM Win32_Process WHERE Name='%iProcessName%'
psvc := ComObjGet("winmgmts:{impersonationLevel=impersonate}!" . "\\.\root\cimv2")
penm := psvc.ExecQuery(FROM)._NewEnum
While penm[pobj] {
PID := pobj.ProcessId ; 获取进程PID
CMDLine := pobj.CommandLine ; 获取进程命令行
cDate := pobj.CreationDate ; 获取创建时间(瞎翻译的)
regexmatch(CMDLine, "i)\s+(.*)", ff_) ; 正则匹配命令行参数
StringReplace,ff,ff_1,`",,All
regexmatch(cDate, "Ui)^[0-9]{8}([0-9]{2})([0-9]{2})([0-9]{2})\..+$", dd_) ; 正则匹配时间
;~ if (iProcessId=PID)
;~ break
;~ MsgBox,0,% iProcessId,% PID
result:=result . PID . "|" . ff . "|" . "`n"
}
if iMode=0 ;返回进程PID
return %PID%
if iMode=1 ;返回进程命令行
return %result%
if iMode=2 ;返回创建时间
return % dd_1 . ":" . dd_2 . ":" . dd_3
}