我正在玩一款节奏游戏,你可以绑定两个键来敲击一个音符(在我的情况下是 LShift 和 LControl),但是它只会在单独敲击音符时记录该音符。我的意思是,如果我按下 LShift,它会保留该音符,但如果我在按下 LShift 的同时按下 LControl,它不会记录第二个音符按下,而是会继续保留第一个音符按下。我需要的是一个 AutoHotKey 脚本,当按下另一个键时,它会使按键无效,即如果按住 LShift,按下 LControl 将使 LShift 无效并按下 LControl。
答案1
尝试这样的操作:
LShift::
if(GetKeyState("LControl")) {
Send, {LControl up}
}
Send, {LShift down}
return
LShift up::
if(GetKeyState("LShift")) {
Send, {LShift up}
}
return
LControl::
if(GetKeyState("LShift")) {
Send, {LShift up}
}
Send, {LControl down}
return
LControl up::
if(GetKeyState("LControl")) {
Send, {LControl up}
}
return
我不知道您是否一定需要热键up
,但我认为这将使您的脚本更加一致。如果您根本不需要按住这些键,您也可以重新映射相应的键以发送一次(从而产生准同时按下/抬起事件)。
附言:
您的游戏行为是错误还是功能?换句话说:它是否故意不接受新键,而另一个键被按住?如果是这样,您主要是想作弊 ;)