bidomo wrote:
There's a way to custimize the keys in the remote, included some info about the way it's been sent to windows (as windows is catching them as keyboard), ...You have to modify the RC6MAP.INF file, or create a new one with the info below, don't know if works in vista as I edited the regidtry directly, and it works....I've got this info from
http://mediacenterguides.com/sites/default/files/IRCodes_ReportMappingTable_InputINF.pdf
Thank you a million times over! I wouldn't have had the patience to reverse engineer the "ReportMappingTable" registry entry.
Your info let me create a custom keymap for use with AHKHID. I backed up the original key to a reg file, edited a copy, merged, rebooted, and all worked great.

Now I can get key up messages for every button on the remote, using a consistent interface that's separate from the keyboard. I'm using 'consumer controls' for all the buttons on the 1->12 usage. That's almost every remote button, except for a few on the 136->65468 usage (e.g. the green MCE button, DVD, Live TV, and Recorded TV). I use only XBMC and BOXEE (not VMC) on my Vista HTPC, so I didn't bother to preserve Microsoft's codes. Here's the set I created:
Code:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HidIr\Remotes\745a17a0-74d3-11d0-b6fe-00a0c90f57da]
"ReportMappingTable"=hex:\
;
; Usage->UsagePage: 136->65468
;
; 03,0d ;Green MCE
; 03,24 ;DVD
; 03,25 ;TV Live
; 03,48 ;TV Recorded
;
; Usage->UsagePage: 1->12
;
; Suspend,Suspend,Print,?
0c,00,00,00,01,00,50,\
2a,00,00,00,01,00,51,\
4e,00,00,00,01,00,52,\
6e,00,00,00,01,00,53,\
;
; FF,RW,Play,Rec,Pause,
; Stop,Next,Prev
14,00,00,00,01,00,60,\
15,00,00,00,01,00,61,\
16,00,00,00,01,00,62,\
17,00,00,00,01,00,63,\
18,00,00,00,01,00,64,\
19,00,00,00,01,00,65,\
1a,00,00,00,01,00,66,\
1b,00,00,00,01,00,67,\
;
; Back,Up,Dn,Lt,Rt,OK,Info
23,00,00,00,01,00,70,\
1e,00,00,00,01,00,71,\
1f,00,00,00,01,00,72,\
20,00,00,00,01,00,73,\
21,00,00,00,01,00,74,\
22,00,00,00,01,00,75,\
0f,00,00,00,01,00,76,\
;
; Vol+-,Mute,Ch+-,Guide
; *,#,Clear,Enter
10,00,00,00,01,00,80,\
11,00,00,00,01,00,81,\
0e,00,00,00,01,00,82,\
12,00,00,00,01,00,83,\
13,00,00,00,01,00,84,\
26,00,00,00,01,00,85,\
1d,00,00,00,01,00,86,\
1c,00,00,00,01,00,87,\
0a,00,00,00,01,00,88,\
0b,00,00,00,01,00,89,\
;
; 0-9
00,00,00,00,01,00,90,\
01,00,00,00,01,00,91,\
02,00,00,00,01,00,92,\
03,00,00,00,01,00,93,\
04,00,00,00,01,00,94,\
05,00,00,00,01,00,95,\
06,00,00,00,01,00,96,\
07,00,00,00,01,00,97,\
08,00,00,00,01,00,98,\
09,00,00,00,01,00,99
The second-to-last number (0x00) distinguishes the code on my system since MS only used 08, 09, 9?, b?, c?, and e? in this field. No other programs hooking the HID should get a false match on my codes (I hope). The actual 2-digit hex code for a button is the last number on the line. This comes as the last byte of uData from DataSize=HID_GetInputData(lParam, uData). The set begins at 0x50 because, for me, 0x48 (Recorded TV) is the highest value from the hard-coded usage on 136. I sequenced the buttons in 5 groups of 10 or less (5?,6?,7?,8?,9?). The 0th code is used for key up. In my case the complete key-up code is either 0x0300 (for 136->65468) or 0x020000 (for 1->12), with the last byte equal to 0x00 in both cases.