使用 AutoHotkey,我尝试将功能键重新映射到其默认的辅助功能,并将默认功能重新映射到辅助功能

使用 AutoHotkey,我尝试将功能键重新映射到其默认的辅助功能,并将默认功能重新映射到辅助功能

我正在尝试将功能键重新映射到其默认的辅助功能,但我遇到了一些代码问题。需要注意的一点是,在我的键盘驱动程序软件中,我可以将键切换Fn为右 Windows 键,这样我就可以避免与该键相关的低级编码问题Fn

我已经写了以下内容并且第一组热键似乎运行良好:

RightWindowsDown := 0

F1::Send {Volume_Mute}
F2::Send {Volume_Down}
F3::Send {Volume_Up}
F4::Send {Launch_App2}
F5::Send {Media_Play_Pause}
F6::Send {Media_Stop}
F7::Send {Media_Prev}
F8::Send {Media_Next}
F9::Send {Launch_App1}


RWin:: 
{
    RightWindowsDown:=1
    soundbeep
}

If (RightWindowsDown = 1)
{
    F1::F1
    F2::F2
    F3::F3
    F4::F4
    F5::F5
    F6::F6
    F7::F7
    F8::F8
    F9::F9
}

return

但是,当我按下 RWin 键时,它只会重复正常的 F1 键并打开大量帮助页面。有什么办法可以避免这种情况吗?

答案1

试试这个,看看效果是否好一点。我添加了一个 #If 指令。它告诉 AHK“嘿,只有当 #If 指令返回 true 时才允许这些操作”。当您按下 F1-F9 时,它会先检查您是否按住了 RWin。如果是,它会使用备用热键。

#SingleInstance, Force
return

F1::Send {Volume_Mute}
F2::Send {Volume_Down}
F3::Send {Volume_Up}
F4::Send {Launch_App2}
F5::Send {Media_Play_Pause}
F6::Send {Media_Stop}
F7::Send {Media_Prev}
F8::Send {Media_Next}
F9::Send {Launch_App1}

#If GetKeyState("RWin", "P")
F1::F1
F2::F2
F3::F3
F4::F4
F5::F5
F6::F6
F7::F7
F8::F8
F9::F9

参考:
#如果
获取按键状态

相关内容