Используя AutoHotkey, я пытаюсь переназначить функциональные клавиши на их вторичную функцию по умолчанию и по умолчанию в качестве вторичной

Я пытаюсь переназначить функциональные клавиши на их вторичную функцию в качестве гайки по умолчанию, с которой я сталкиваюсь в нескольких, выпущенных в коде. Следует отметить, что в программном обеспечении драйвера клавиатуры я могу переключать Fn ключ, чтобы быть правильным ключом окна, так что я могу избежать проблем кодирования низкого уровня, связанных с 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

Рекомендации:
#Если
GetKeyState

Другие вопросы по тегам