2013-10-02 328 views
3

到目前为止,我有:终止进程 - AHK

Process, Exist notepad.exe 
Process, Close, %p_id% 

如何设置AHK(如果存在)杀死进程?我读到它与PID有关,但不知道如何实现。

回答

7

看看Documentation

您可以通过简单地使用进程的名称杀:

Process, Close, notepad.exe 

如果进程不存在,它不会做任何事情。

如果您仍希望通过使用pid来取消进程,则必须使用WinGet命令来检索pid。按按Ctrl + Alt键 + ķ

+0

不“的过程,存在......”写的PID为“的ErrorLevel”? – BloodyRain2k

1

这AHK脚本杀死活动过程:

^!k:: 
{ 
    WinGet, xPID, PID, A 
    Process, Close, %xPID% 
} 
return 
2

至少有两种方法可以从我能想到的一个窗口得到PID立即

1:

WinGet, My_PID, PID, WinTitle 

2:

Run, ProgramFilePath "Args", Options, My_PID 

第一个是得到一个已在运行窗口PID,第二个是打开与AHK程序时获得一个PID。在这两种情况下,变量“My_PID”现在都包含窗口进程ID

要回答关闭进程的问题(如果存在的话),可以尝试一些方法。

ifWinExist ahk_pid %My_PID% 
    Process, Close, %My_PID% 
; OR 
Process, Exist, %My_PID% ; from my examples above 
;Process, Exist, notepad.exe ; from your example above 
If ErrorLevel ; Errorlevel is set to matching PID if found 
    Process, Close, %ErrorLevel% 

我认为,应该回答你的问题立即