Autohotkey 重新映射ctrl+;赢
第一个脚本可以工作,但是第二个应该重新映射ctrl+win的脚本不能工作。为什么呢Autohotkey 重新映射ctrl+;赢,autohotkey,Autohotkey,第一个脚本可以工作,但是第二个应该重新映射ctrl+win的脚本不能工作。为什么呢 ctrl::Send{ALT down}{SHIFT down}{SHIFT up}{ALT up} ^lwin::发送{ALT down}{SHIFT down}{SHIFT up}{ALT up} 因为它们都是修改器关键点 请尝试以下方法: Ctrl & LWin:: 编辑: 然后,尝试使用,可能也使用 等等,我刚才发现它在工作: Ctrl & LWin::Send {ALT down}{
ctrl::Send{ALT down}{SHIFT down}{SHIFT up}{ALT up}
^lwin::发送{ALT down}{SHIFT down}{SHIFT up}{ALT up}
因为它们都是修改器关键点 请尝试以下方法:
Ctrl & LWin::
编辑:
然后,尝试使用,可能也使用 等等,我刚才发现它在工作:
Ctrl & LWin::Send {ALT down}{SHIFT down}
Ctrl & LWin Up::Send {SHIFT up}{ALT up}
当然,作为修改键,它们需要特殊处理
编辑2:
我的shift+alt组合用于更改键盘语言
你为什么不早点说我以为你只是在替换修改器组合
那就简单多了
这应该起作用:
/*
cf. https://www.autohotkey.com/docs/commands/PostMessage.htm
cf. https://msdn.microsoft.com/en-us/library/windows/desktop/ms632630(v=vs.85).aspx
0x50: WM_INPUTLANGCHANGEREQUEST
0x02: INPUTLANGCHANGE_FORWARD
*/
Ctrl & LWin::PostMessage, 0x50, 2,,, A
或者:
Ctrl & LWin::
KeyWait Ctrl
KeyWait LWin
PostMessage, 0x50, 2,,, A
Return
以上两段代码各有利弊。尝试并选择适合您的需求。这对我来说很好:
Ctrl & LWin:: msgbox hi
我认为,Alt
和Shift
键正在触发,而您仍然没有释放Ctrl
和Win
,因此它同时工作所有键:Alt
,Shift
,Ctrl
,Win
因为您只需检查当时是否未按下按键。
为此,我们将使用函数
GetKeyState()
这对我不起作用。你在用什么操作系统?我使用的是Windows7x64。这里也一样。那么,为什么不尝试查看按键历史记录呢?按键历史记录是什么意思?双击脚本的任务栏图标并按ctrl+k。按住ctrl+H键也会有帮助。
d LControl
和d LWin
后面跟着生成的LAlt
和LShift
,向上(u
)事件也会正常处理和生成。这表明一点问题都没有,对我来说似乎不起作用。我的shift+alt组合用于更改键盘语言,但按ctrl+win时键盘语言不会更改。可以通过postmessage
Ctrl & LWin Up::
while(!GetKeyState("Ctrl", "P"))
continue
send {ALT down}{SHIFT down}
sleep 40
send {SHIFT up}{ALT up}
; or use “Send {ALT down}{SHIFT down}{SHIFT up}{ALT up}”
; if it works for you
return