Как отправить ключи Windows Media с клавиатуры Apple? - PullRequest
2 голосов
/ 19 марта 2012

Я использую клавиатуру Apple с Windows 7. Мне бы хотелось, чтобы функциональные клавиши, помеченные функциями 'media' (prev, pause / play, next, mute, vol-, vol +), работали как эквивалентные клавиши наклавиатура Windows.

Я пробовал этот скрипт autohotkey:

F7::Media_Prev
F8::Media_Play_Pause
F9::Media_Next
F10::Volume_Mute
F11::Volume_Down
F12::Volume_Up

При просмотре истории клавиш, кажется, что ключи переназначены, как и ожидалось, но они не имеют никакого эффекта.

Работающая (то есть все клавиши работают должным образом и запускают соответствующую функцию мультимедиа) клавиатура Windows Media выглядит следующим образом:

VK  SC  Type    Up/Dn   Elapsed Key     Window
------------------------------------------------------------------------------------
B3  122 a   d   32.79   Media_Play_Pause    
B3  122 a   u   0.14    Media_Play_Pause    
B2  124 a   d   0.61    Media_Stop      
B2  124 a   u   0.17    Media_Stop      
AF  130 a   d   0.58    Volume_Up       
AF  130 a   u   0.17    Volume_Up       
AE  12E a   d   0.42    Volume_Down     
AE  12E a   u   0.16    Volume_Down     
B1  110 a   d   0.87    Media_Prev      
B1  110 a   u   0.14    Media_Prev      
B0  119 a   d   0.30    Media_Next      
B0  119 a   u   0.11    Media_Next      
AD  120 a   d   1.56    Volume_Mute     
AD  120 a   u   0.13    Volume_Mute     

Используя приведенный выше скрипт, я вижу это с клавиатуры apple:

VK  SC  Type    Up/Dn   Elapsed Key     Window
------------------------------------------------------------------------------------
B1  010 i   d   0.00    Media_Prev      
76  041 h   u   0.09    F7              
B1  010 i   u   0.00    Media_Prev      
77  042 h   d   0.20    F8              
B3  022 i   d   0.00    Media_Play_Pause    
77  042 h   u   0.08    F8              
B3  022 i   u   0.00    Media_Play_Pause    
78  043 h   d   0.20    F9              
B0  019 i   d   0.00    Media_Next      
78  043 h   u   0.09    F9              
B0  019 i   u   0.00    Media_Next      
79  044 h   d   0.22    F10             
AD  020 i   d   0.00    Volume_Mute     
79  044 h   u   0.09    F10             
AD  020 i   u   0.00    Volume_Mute     
7A  057 h   d   0.19    F11             
AE  02E i   d   0.00    Volume_Down     
7A  057 h   u   0.09    F11             
AE  02E i   u   0.00    Volume_Down     
7B  058 h   d   0.65    F12             
AF  030 i   d   0.00    Volume_Up       
7B  058 h   u   0.08    F12             
AF  030 i   u   0.00    Volume_Up    

Есть идеи, почему это не работает?

Ответы [ 2 ]

1 голос
/ 20 апреля 2012

Проверьте, работает ли этот скрипт:

Он в основном отображает выбранные вами клавиши на следующие, предыдущие, воспроизведение и пауза.

Таким образом, вы можете сопоставить эти функциональные клавиши, помеченные мультимедийными функциями.

о регуляторах громкости, я поищу.

;
;
; AutoHotkey Version: 1.x
; Language:       English
; Platform:       Windows 7
; Author:         Brian Kamrany
;
; Script Function: Control iTunes, Windows Media Player, and Winamp easily.

;Numpad Subtraction = next
;Numpad Multiplication = previous
;Numpad Division = pause/unpause

;Note: if you want to change the hotkeys to numpad numbers, you must add
;both the numpad number and it's alternate key.
;For example
;Numpad6::
;NumpadRight::
;(written like that) are both needed if you want to use 6 on the numpad as your hotkey

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
DetectHiddenWindows, on


NumpadSub::

if WinExist("ahk_class ITWindow") or WinExist("ahk_class iTunes")
{
   ControlSend, ahk_parent, ^{RIGHT}
}

IfWinExist, ahk_class WMPlayerApp
{
SetKeyDelay, 0, 1 ;otherwise doesn't work if currently in WMP window
ControlSend, ahk_parent, ^{f}
}

IfWinExist, ahk_class Winamp v1.x
ControlSend, ahk_parent, b

return


NumpadMult::

if WinExist("ahk_class ITWindow") or WinExist("ahk_class iTunes")
{
   ControlSend, ahk_parent, ^{LEFT}
}

IfWinExist, ahk_class WMPlayerApp
{
SetKeyDelay, 0, 1
ControlSend, ahk_parent, ^{b}
}

IfWinExist, ahk_class Winamp v1.x
ControlSend, ahk_parent, z

return


NumpadDiv::

if WinExist("ahk_class ITWindow") or WinExist("ahk_class iTunes")
{
   ControlSend, ahk_parent, ^{SPACE} ;control for better grip, otherwise doesn't work if were filtering songs
}

IfWinExist, ahk_class WMPlayerApp
{
SetKeyDelay, 0, 1
ControlSend, ahk_parent, ^{p}
}

IfWinExist, ahk_class Winamp v1.x
ControlSend, ahk_parent, c

return

Кредиты отправляются на BrianKamrany в сообществе Autohotkey.

Оригинальное сообщение здесь .

0 голосов
/ 15 декабря 2016

(Un?) Полезно, ваш сценарий отлично работает для меня в Windows 10 / AHK с 2016 года.

Вот мой более длинный скрипт AHK для преодоления синдрома Mac-User-&-Apple-Keyboard:

AutoHotKey для пользователя Mac с клавиатурой Apple в Windows.ahk

https://gist.github.com/chrisfcarroll/dddf32fea1f29e75f564

...