我正在自动热键中创建一个热键,以激活 Google Chrome,或在所有 Chrome 窗口之间移动。
热键是Win+ H(h 代表 http)。
如果用户按下Win++ 键Shift,H则会打开一个新的 chrome 窗口
如果用户按两次Win+ H,它会在所有 chrome 窗口之间移动:
更新:请参阅底部的完整脚本。谢谢大家:
问题是 AutoHotKeys 找不到 chrome 的类,所以它总是打开新窗口:
此函数始终返回 false:
If WinExist ahk_class Chrome_WidgetWin_1
请指教。
脚本文件:
#h::
SetTitleMatchMode, 2
If WinExist ahk_class Chrome_WidgetWin_1
{
ifWinActive
WinActivatebottom ,Chrome_WidgetWin_1
else
WinActivate
return
}
run chrome.exe
我发现了错误。
此版本的 AutoHotkeys 和 Google Chrome 中 ifWinExist 函数存在错误。用户可以使用;
WinActivate ahk_class Chrome_WidgetWin_1
但不能使用:
If WinExist ahk_class Chrome_WidgetWin_1
它永远都是假的!
希望这个问题和答案对某些人有帮助(我无法写答案,因为我只有 1 个声誉点)
更新: 这是 ahk 源代码,用于 Win+n打开记事本或在打开的记事本之间切换。
+ Shift+n打开新记事本。
Win+c打开 cmd.exe 或在控制台窗口之间切换。
Win++Shift打开c新控制台。
Win+h打开 Google Chrome 或在 Chrome 窗口之间切换 + Shift+h打开新浏览器。
SetTitleMatchMode, 2
;********command line
#c::
IfWinExist ,cmd.exe
{
ifWinActive
WinActivatebottom ,cmd.exe
else
WinActivate
return
}
#+c::
run cmd.exe
return
;******************Chrome
#h::
IfWinExist ,Chrome
{
ifWinActive
{
WinActivatebottom ,Chrome
}
else
{
WinActivate
}
return
}
#+h::
run "chrome"
return
;**************Notepad
#n::
IfWinExist ,Notepad
{
ifWinActive
{
WinActivatebottom ,Notepad
}
else
{
WinActivate
}
return
}
#+n::
run "notepad"
return
答案1
我只使用名称(因为 Google 曾经更改过类名)。这是我在 AHK_L 中使用的一个示例。
SetTitleMatchMode, 2
#ifWinActive, Chrome
NumpadIns::Send, {Click}
NumpadRight::Send, ^{PgDn} ; Right arrow = activate next Tab
NumpadLeft::Send, ^{PgUp} ; Left arrow = activate previous tab
#ifWinActive