Autohotkey 仅在特定应用程序使用自动热键运行时禁用ALT-TAB

Autohotkey 仅在特定应用程序使用自动热键运行时禁用ALT-TAB,autohotkey,alt-tab,Autohotkey,Alt Tab,我希望能够运行一个启动游戏的.exe,禁用Alt Tab的使用(最好只有在游戏处于焦点时),然后等待我手动退出游戏,然后终止脚本 到目前为止,我所拥有的只是 run C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive !!选项卡::返回 但我似乎不知道只有当屏幕聚焦于游戏时如何禁用它,或者如何等待我关闭游戏后再重新启用它 我也不完全确定这是否允许我在玩游戏时使用tab。我希望能够同时按ALT

我希望能够运行一个启动游戏的
.exe
,禁用Alt Tab的使用(最好只有在游戏处于焦点时),然后等待我手动退出游戏,然后终止脚本

到目前为止,我所拥有的只是

run C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive
!!选项卡::返回

但我似乎不知道只有当屏幕聚焦于游戏时如何禁用它,或者如何等待我关闭游戏后再重新启用它


我也不完全确定这是否允许我在玩游戏时使用tab。我希望能够同时按ALT和TAB键,因为它们都有功能,而不是切换窗口。

下面是我的操作方法。正如MLC所说,使用


看一看。使用AHK附带的Window Spy为您的窗口找到合适的标识符。通常,窗口类(
ahk_类
)是最合适的。此外,就其本身而言,窗口不可能对一个热键执行不同的操作(如
ALT+TAB
)。在你的例子中,它只是切换窗口,而不是其他任何东西。这是因为它阻止了Alt+Tab。有没有办法让钥匙在窗口内而不是在窗口外使用?比如说,你在DOSBox会话中运行Windows 3.1,你想在其中使用Alt+Tab,但不让主机窗口将你从DOSBox中切换出来。好的,我只是在DOSBox中重新映射了另一个键来执行Alt键,并禁用了它自己的功能。更简单,但仅适用于具有可自定义密钥映射的子环境。
;run your program, save the proccess ID
Run, notepad, , , thePid
;add that process to a group
GroupAdd, blockAltTab, % "ahk_pid " thePid
;wait for the process to close and exit
Process, waitClose, %thePid%
ExitApp

;if a window from the blockAltTab group is in the foreground then block alt+tab
#IfWinActive, ahk_group blockAltTab
!Tab::return
;clear the blockAltTab group restriction for any other hotkeys
#IfWinActive