Posts: 1,603
Joined: Jul 2007
Reputation:
51
So, most keyboards have a browser back button and my remote has one for it's back/previous button. Here's the issue... I can't figure out how to change or remove the mappings for this key. Nowhere in Keyboard.xml is there a mapping for VK_BROWSER_BACK or BROWSER_BACK, so I can't map it to new things and I can't demap it from other things.
I tried using Intelliremote to map that button to hit backspace, worked great... Except now it sends backspace AND browser_Back at the same time, oftne resulting in a 'double back' in an area where both functions will have the same result.
Oddly enough KeyMapEdit has NO provision for it. It's not something you can set with it other than setting the key manually by ID and then that doesn't even work. I tried manually entering browser_back into the Keyboard.xml and that BROKE it.
This is clearly mapped somewhere in XBMC, so can someone tell me where it is so I can mess with it? Or is it somehow freakishly hardcoded for some reason?
Posts: 1,603
Joined: Jul 2007
Reputation:
51
I was confused. The issue is not VK_BROWSER_BACK and that could be disabled in the registry. The issue is, it also sends WM_APPCOMMAND 1, which is the media keyboard button for browser back. I know that XBMC intercepts appcommands at a hardcoded level, but as it's hardcoded it misses some things that I need it to do. I can't figure out how to map that appcommand to other things basically.
Posts: 7,256
Joined: Nov 2008
Reputation:
121
XBMC doesn't handle the multimedia keypresses directly and you can't use them in key mapping files. That's why my KeyMapEdit applet doesn't mention them.
When you press a mutimedia key Windows automatically generates the WM_APPCOMMAND message that you noticed. I don't fully understand what controls this, but it means that the application first gets a WM_APPCOMMAND message then gets the WM_KEYDOWN message i.e. it gets two messages and this is why when you used Intelliremote you got two "backspaces".
XBMC for Windows ignores the keypress and handles the APPCOMMAND message, though as you've found there is no way to customise the handling of the APPCOMMANDs. So currently there is no way to customise the behaviour of the Back button on your remote. You don't say what remote you're using, but if it's an eHome/RC6 remote you can configure the remote to send keypresses when you press the buttons and then you can map the keypresses as required.
The multimedia key handling is something that's been on my "to look at" list for a while, but at the moment I'm afraid it's not very high on that list.
JR
Posts: 1,603
Joined: Jul 2007
Reputation:
51
Considdering this, it seems somewhat short sighted that XBMC doesn't have a simple 'Ignore AppCommands' feature, so then the remote can be used as a normal keystroke.
However, I have thusfar been unable to configure the remote to send keypresses other than by using something like Intelliremote or something similar. It is an RC6 remote as it's actually the same remote that the xbmccustomregis guy uses. (Except the North American version has no colored buttons, but it's the same RC118N remote and IR603 reciever). That said, Windows does NOT installthe eHome driver with the reciever and instead uses generics. :/
Posts: 1,603
Joined: Jul 2007
Reputation:
51
Okay, I determined that the stickykeys issue is an AutoHotKey issue with your script. I tested this by making another autohotkey script, so when I press B, it sends out CTRL+SHIFT+W (what I adjusted your script to read for GSH Home Button) and the CTRL+SHIFT keys get stuck. This disables most functions on the keyboard since now it's trying to press CTRL+SHIFT+Whatever. They remain stuck until I physically press those keys on the keyboard.
Posts: 1,603
Joined: Jul 2007
Reputation:
51
Hmm. Interesting. Most commonly the IR603 reciever has VID_147A and PID_E017
Mine has VID_147A, but the PID is PID_E031. This is a Diamond rebadge of the kit, maybe they changed the PID in the firmware and the eHome driver doesn't have this in it's list?
Posts: 1,603
Joined: Jul 2007
Reputation:
51
That trick worked in testing on my Win XP laptop, but not on my Win7 desktop which is what I'm working on making into the dedicated XBMC machine. IrHid.inf doesn't even exist on Winy. I think usbcir is the equivilent but trying to apply the scheme to it, didn't seem to have an effect.
Posts: 7,256
Joined: Nov 2008
Reputation:
121
There comes a point where I would give up and buy a Microsoft receiver instead. It might be worth a bit of Googling first though.
JR