【问题标题】:How can I send Windows Media Keys from an Apple Keyboard如何从 Apple 键盘发送 Windows Media 密钥
【发布时间】:2012-03-19 17:55:40
【问题描述】:

我在 Windows 7 上使用苹果键盘。我希望标有“媒体”功能(上一个、暂停/播放、下一个、静音、音量-、音量+)的功能键能够像上的等效键一样工作Windows 键盘。

我试过这个自动热键脚本:

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

查看密钥历史记录似乎按预期重新映射了密钥,但它们没有任何效果。

一个正常工作(即所有键都按预期工作并触发相应的媒体功能)Windows 媒体键盘如下所示:

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    

知道为什么这不起作用吗?

【问题讨论】:

  • 我不知道苹果键盘,但我注意到一些媒体控件在我的戴尔笔记本电脑上似乎工作不稳定。我会将问题“拆分”为两个领域:键盘+媒体功能。换句话说,首先尝试使用您知道有效的行为对键进行编程,例如F10会输出qqqq。一旦您知道 AHK 和键盘可以工作,然后专注于媒体功能。

标签: keyboard autohotkey keyboard-events key-bindings


【解决方案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

感谢 Autohotkey 社区的 BrianKamrany

原帖here.

【讨论】:

    【解决方案2】:

    (不?)有帮助,截至 2016 年,您的脚本在 Windows 10 / AHK 上运行良好。

    这是我处理 Mac-User-&-Apple-Keyboard 综合症的较长 AHK 脚本:

    AutoHotKey for a Mac User with an Apple keyboard on Windows.ahk

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

    【讨论】:

      猜你喜欢
      • 2011-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-01
      • 1970-01-01
      相关资源
      最近更新 更多