3

I'm using an apple keyboard with windows 7. I'd like the function keys labelled with 'media' functions (prev, pause/play, next, mute, vol-, vol+) to work like the equivalent keys on a windows keyboard.

I've tried this autohotkey script:

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

Looking at the key history the keys seem to be remapped as expected, but they don't have any effect.

A working (i.e. all keys work as expected and trigger the appropriate media function) windows media keyboard looks like this:

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     

Using the script referenced above I see this from the apple keyboard:

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    

Any idea why this isn't working?

Kara
  • 6,115
  • 16
  • 50
  • 57
sw1nn
  • 7,278
  • 1
  • 26
  • 36
  • I can't tell about the Apple keyboard, but I have noticed that some media controls seem to work flaky on my DELL laptop. I would "split" the problem into two domains: keyboard + media function. In other words, first try to program the keys with behaviour that you know works e.g. F10 will output qqqq. Once you know that AHK and the keyboard work, then focus on the media functions. – Robert Ilbrink Mar 21 '12 at 07:23

2 Answers2

1

Check if this script works:

It basically maps keys of your choice to next, previous, play and pause.

So, you can map those function keys labeled with media functions.

about volume controls, I'll look for it.

;
;
; 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

Credits go to BrianKamrany on Autohotkey Community.

Original post here.

tumchaaditya
  • 1,267
  • 7
  • 19
  • 49
1

(Un?)helpfully, your script works fine for me on Windows 10 / AHK as of 2016.

Here's my longer AHK script for coping with Mac-User-&-Apple-Keyboard syndrome:

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

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

Chris F Carroll
  • 11,146
  • 3
  • 53
  • 61