我认为以下代码可能有效,但没有。原因可能在于Throw
命令在热键线程中执行,而不是在自动执行部分线程中执行。
try
{
count := 0
loop {
tooltip % ++count
sleep 200
}
} catch {
}
msgbox done
Exitapp
Esc::ExitAPp
^1::throw
那么有没有办法知道控制流属于哪个线程? AutoHotkey是否有线程ID的变量或类似的东西?
以下代码显示两个(伪)线程返回相同的数字。所以我需要知道AutoHotkey中的线程ID(如果有)。我在某处读到AutoHotkey线程只是一个函数调用。但我期待有可能找到伪线程的方法。
try
{
count := 0
loop {
tooltip % ++count "`nThread ID: " DllCall("GetWindowThreadProcessId", "Int", A_ScriptHwnd, "Int", "0")
sleep 200
}
} catch {
}
msgbox done
Exitapp
Esc::ExitAPp
^1::
MsgBox, % DllCall("GetWindowThreadProcessId", "Int", A_ScriptHwnd, "Int", "0")
throw
Return
答案 0 :(得分:0)
这是你在找什么?
^w::
WinGet, WinID,, A
ThreadID:=DllCall("GetWindowThreadProcessId", "Int", WinID, "Int", "0")
MsgBox, %ThreadID%
Return