Google-play-music-desktop-player-unofficial-: Support for media keys when using Logitech Setpoint software

Created on 11 Jul 2016  路  19Comments  路  Source: MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-

OS:
Windows 7 SP1

Issue Descriptions:
I use a Logitech Keyboard and Mouse combo (MK710/M705) with SetPoint (v6.67.83). I've read the FAQ about media keys and when Logitech Setpoint is not running the media keys work fine. However, Setpoint appears to be all or nothing when it comes to Keyboard and Mouse configuration. If I disable Setpoint I lose all controls on my multibutton mouse.

Steps to Reproduce:

  1. Install Logitech Setpoint
  2. Media keys stop working for GPMDP
  3. Disable Logitech Setpoint
  4. Media keys work for GPMDP but default Windows keyboard and mouse configuration takes over

Workaround:
I'm currently using XMouseButtonControl on Windows in order to map the buttons on my mouse and restore the functionality that Setpoint provided but I would much rather use Setpoint.

owindows statuwontfix

Most helpful comment

Sorry to revive an old thread, but just incase anyone gets notifications and still needs a fix. There is a way to have setpoint running but to remove Media Keys from it and let Windows handle them as normal. This way you can have the other function keys set-up as you want, use the Logitech on screen display and have the media keys working as normal. I found this on another board after much hunting. Not my solution, but works like a charm. I now have setpoint running fine, but the logitech software no longer intercepts the media keys and lets them work as normal.

The problem here is simple:
The SetPoint software provided by Logitech swallows all media-key-presses by default, and only pass them on to "verified" programs.

The solution is fairly simple if a little long winded:

  1. Navigate to C:\ProgramData\Logishrd\SetPointP\Devices\Keyboard
  2. Browse the subfolders until you find an XML containing the name of your keyboard (it will say something like DisplayName="Media Keyboard Elite") (something like TextCrawler can make this a very quick job)
  3. Edit the XML file for your keyboard. Search for and comment out any
  4. Restart SetPoint

This will keep SetPoint from swallowing the media-key-presses, leaving Windows to handle them as normal "multimedia keys".

All 19 comments

@timmyleahy This issue has been raised before and unfortunately (even after ridiculous amounts of time I've put in to attempting a fix) SetPoint has proved an absolute NIGHTMARE to make work.

To be perfectly honest I don't even understand what they are doing to make our hooks not work. We are literally using a low level keyboard hook.

I'll do another round of research tonight if I have time but can you quickly run this program

https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/files/304683/LLKeyboardTest.zip

And press the media keys and see what numbers appear

I figured it was something Logitech was doing to make it difficult/obtuse to integrate with.

I ran LLKeyboardTest and here's the output for the media keys:
(update: The output below was from LLKeyboardTest running without Setpoint. When running with Setpoint there was no output.)

Keydown: 177 (Previous Track)
Keydown: 179 (Play/Pause)
Keydown: 176 (Next Track)
Keydown: 173 (Mute)
Keydown: 174 (Volume Down)
Keydown: 175 (Volume Up)

@timmyleahy Those numbers are as expected but if they don't output with SetPoint running I have absolutely no idea how I would capture them.

I could totally sneakily ping someone like @paulcbetts and ask if he knows why the hell logitech isn't producing keyevents like a normal person....

@timmyleahy

Can you try editing this file
C:\Program Files\Logitech\SetPointP\players.ini

And adding the following to the correct sections

[Players]
GPMDP=key,Google%20Play%20Music%20Desktop%20Player.exe,Chrome_WidgetWin_1,xxx,xxx,&0xB3,&0xB3,&0xB2,&0xB1,&0xB0,0,1,GPMDP

[Players.Display]
GPMDP=GPMDP

Doesn't seem to have any affect.

I did notice that the on screen display for the playback controls will display when GPMDP is running but will be hidden when it's not running. It's the same with or without the player.ini edits. It seems like the button behavior changes when it's running so there seems to be communication between the two at some level.

Forgot to close this 馃槩

Yeah, this is one of those things where I am just going to say (and you can quote me on this)

We should not be responsible for Logitech's stupid design decisions. Apps should not have to be whitelisted just to use media keys. If you can't live without SetPoint you might have to live without media keys.

The only alternative I can offer is using AHK or something similar to simulate media keys.

Well thanks anyway for trying.

You know what's really silly? In the Setpoint software they don't even allow you to change the function of the media keys. All the Fn keys can be reassigned so whatever it is they're doing to the media keys just seems unnecessary.

Oh well.

in case someone gets interested to debug again...
I'm using Logitech K750 keyboard. Only way to get the media keys is to use SetPoint. (enables the Fn function to get extra keys)

When you say "low level keyboard hook", is code bypassing the Windows API to get to the keyboard (not using an abstraction layer)? i.e. a problem with the portable framework bypassing the OS?
Could that be why the media keys work in Groove, and MusicBee, but not this player?

Sorry to revive an old thread, but just incase anyone gets notifications and still needs a fix. There is a way to have setpoint running but to remove Media Keys from it and let Windows handle them as normal. This way you can have the other function keys set-up as you want, use the Logitech on screen display and have the media keys working as normal. I found this on another board after much hunting. Not my solution, but works like a charm. I now have setpoint running fine, but the logitech software no longer intercepts the media keys and lets them work as normal.

The problem here is simple:
The SetPoint software provided by Logitech swallows all media-key-presses by default, and only pass them on to "verified" programs.

The solution is fairly simple if a little long winded:

  1. Navigate to C:\ProgramData\Logishrd\SetPointP\Devices\Keyboard
  2. Browse the subfolders until you find an XML containing the name of your keyboard (it will say something like DisplayName="Media Keyboard Elite") (something like TextCrawler can make this a very quick job)
  3. Edit the XML file for your keyboard. Search for and comment out any
  4. Restart SetPoint

This will keep SetPoint from swallowing the media-key-presses, leaving Windows to handle them as normal "multimedia keys".

No need to apologize for reviving. This has been driving me nuts for months! And Logitech tech support was absolutely useless.

FWIW, in my installation the K270 kbd is defined in folder 2001001.

Thanks very much garymartynuk. My issue wasn't even with GPMDP (although I do use it sometimes) but I stumbled onto this thread and your solution works great.

I didn't know how to comment xml so I just deleted the entries. In case it helps anyone else, an entry starts with "

@garymartynuk You are the man! My keyboard worked fine until installing SetPoint for my new MX mouse. Removing the section for the Play button solved my problem. Many thanks. @gvaeth Thanks for letting directing me to 2001001. It made things even easier since I have the same keyboard.

@garymartynuk thank you so much for sharing that workaround, it worked like a charm! I have a Logitech K520 keyboard and Media Keys were not working for the new Deezer Beta desktop app. After implementing your suggestion, they are working normally!

Does anyone know how to do this with the newer "Logitech Options" software. thats what the k400 plus media keyboard uses.

the media app button only works with groove aswell as the play, pauses, next, previous buttons. :(

thanks for the tip!!!!

Know which specific app to close to release xml file? Closing setpoint from tray didn't release it. had to boot into ubuntu to change the file. lol

for future - xml comments use around text like this:

<!--
               <Button Number="786614" Name="Button">
                  <Trigger Class="ButtonPress">
                     <Param Button="786614" EventType="33554432"/>
                     <TriggerState Name="ButtonDownUp" HandlerSet="MM PREVIOUS_REWIND" HandlerSetGroup="SmrkndPreviousRewindTrackKbMs" HandlerSetGroupAddOn="SmrkndOtherKeyboard"/>
                  </Trigger>
               </Button>
               <Button Number="786637" Name="Button">
                  <Trigger Class="ButtonPress">
                     <Param Button="786637" EventType="33554432"/>
                     <TriggerState Name="ButtonDownUp" HandlerSet="MM PLAY" HandlerSetGroup="SmrkndPlayTrackKbMs" HandlerSetGroupAddOn="SmrkndOtherKeyboard"/>
                  </Trigger>
               </Button>
               <Button Number="786613" Name="Button">
                  <Trigger Class="ButtonPress">
                     <Param Button="786613" EventType="33554432"/>
                     <TriggerState Name="ButtonDownUp" HandlerSet="MM NEXT_FF" HandlerSetGroup="SmrkndNextFFTrackKbMs" HandlerSetGroupAddOn="SmrkndOtherKeyboard"/>
                  </Trigger>
               </Button>
-->

Thank you so much for this!!

Logiteck sucks, you rock

Today without any intervention on my part, my play/pause button stopped working, and mappings in the Logitech mouse and keyboard app reverted to default (I had mapped Power to Lock rather than Sleep).

I checked the 2001001 file, and my modifications were intact. However, there is now a 2001002 folder with a modified date earlier today, and a 2001002 file defining the K270 keyboard. The only difference between this and the one I originally modified is the model # changed from 33558529 to 33558530.

The installed on date of the Logiech app in Programs and Features is about a month ago, so I have no idea what drove this change.

For those trying @garymartynuk's solution, instead of opening the xml files one by one, you can use powershell to find your xml file quickly:

  1. Open Windows PowerShell
  2. go to the folder location:
    cd C:\ProgramData\Logishrd\SetPointP\Devices\Keyboard
  3. Type this to search each file for the pattern:
    Get-ChildItem -recurse | Select-String -pattern "k350" | group path | select name

Change the string inside the parenthesis. For example, my keyboard is Logitech K350, so the pattern I searched for is "k350". It came back with

C:\ProgramData\Logishrd\SetPointP\Devices\Keyboard\200006D\200006D.xml

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Turbotailz picture Turbotailz  路  4Comments

kfk2312 picture kfk2312  路  3Comments

timp3289 picture timp3289  路  3Comments

tehdef picture tehdef  路  4Comments

PazerOP picture PazerOP  路  4Comments