2012-03-19 62 views
2

我正在使用带有Windows 7的苹果键盘。我想用“媒体”功能标记功能键(prev,暂停/播放,下一个,静音,音量 - ,vol +)像Windows键盘上的等效键一样工作。如何从Apple键盘发送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  

使用脚本中引用上面我看到这从苹果键盘:

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  

任何想法,为什么这不工作?

+0

我不能告诉苹果键盘,但我注意到一些媒体控件似乎在我的DELL笔记本电脑上工作得很好。我会将问题“拆分”为两个域:键盘+媒体功能。换句话说,首先尝试用你知道的行为来编程键,例如F10会输出qqqq。一旦你知道AHK和键盘工作,然后专注于媒体功能。 – 2012-03-21 07:23:19

回答

1

检查该脚本的工作原理:

它基本上映射你的选择下一个,上,播放和暂停的按键。

因此,您可以映射标记有媒体功能的那些功能键。

关于音量控制,我会寻找它。

; 
; 
; 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的社区。

原帖here