В конце концов я настроил свой пульт с помощью EventGhost и установил горячие клавиши для переключения между приложениями. Я даже использовал пульт от телевизора, а не пульт MCE, входящий в комплект поставки ресивера.
Ниже моя конфигурация EventGhost, если кому-то интересно.
<?xml version="1.0" encoding="UTF-8" ?>
<EventGhost Name="Configuration Tree" Expanded="True" Version="1366" Guid="{0185B32E-BE94-40DA-BE3C-167F125DAA94}" Time="1264186173.58">
<Autostart Name="Autostart">
<Plugin File="MceRemote" Identifier="MceRemote">
gAJHP8MzMzMzMzOIhnEALg==
</Plugin>
<Plugin File="Keyboard" Identifier="Keyboard">
gAIpLg==
</Plugin>
<Plugin File="Task" Identifier="Task">
gAIpLg==
</Plugin>
</Autostart>
<Folder Name="Keymaps" Expanded="True">
<Folder Name="D-Mode" Expanded="True">
<Folder Name="D-PAD" id="8" Enabled="False">
<Macro Name="Enable exclusive: Mouse">
<Event Name="MceRemote.4522" />
<Action>
EventGhost.EnableExclusive(XmlIdLink(27))
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: {Up}">
<Event Name="MceRemote.4580" />
<Action>
Window.SendKeys(u'{Up}', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: {Left}">
<Event Name="MceRemote.4551" />
<Action>
Window.SendKeys(u'{Left}', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: {Down}">
<Event Name="MceRemote.4581" />
<Action>
Window.SendKeys(u'{Down}', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: {Right}">
<Event Name="MceRemote.454D" />
<Action>
Window.SendKeys(u'{Right}', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: {Enter}">
<Event Name="MceRemote.4521" />
<Action>
Window.SendKeys(u'{Enter}', False)
</Action>
</Macro>
</Folder>
<Folder Name="Mouse" id="27" Expanded="True">
<Macro Name="Enable exclusive: D-PAD">
<Event Name="MceRemote.4522" />
<Action>
EventGhost.EnableExclusive(XmlIdLink(8))
</Action>
</Macro>
<Macro Name="Move Mouse Up" Expanded="True">
<Event Name="MceRemote.4580" />
<Action>
Mouse.MoveRelative(None, -20)
</Action>
</Macro>
<Macro Name="Move Mouse Down" Expanded="True">
<Event Name="MceRemote.4551" />
<Action>
Mouse.MoveRelative(-20, None)
</Action>
</Macro>
<Macro Name="Move Mouse Left" Expanded="True">
<Event Name="MceRemote.4581" />
<Action>
Mouse.MoveRelative(None, 20)
</Action>
</Macro>
<Macro Name="Move Mouse Right" Expanded="True">
<Event Name="MceRemote.454D" />
<Action>
Mouse.MoveRelative(20, None)
</Action>
</Macro>
<Macro Name="Left mouse button double-click">
<Event Name="MceRemote.4521" />
<Action>
Mouse.LeftDoubleClick()
</Action>
</Macro>
</Folder>
</Folder>
<Macro Name="Emulate Keystrokes: {Backspace}">
<Event Name="MceRemote.45EF" />
<Action>
Window.SendKeys(u'{Backspace}', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: i">
<Event Name="MceRemote.4516" />
<Action>
Window.SendKeys(u'i', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: {Space}">
<Event Name="MceRemote.4515" />
<Action>
Window.SendKeys(u'{Space}', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: p">
<Event Name="MceRemote.4500" />
<Action>
Window.SendKeys(u'p', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: x">
<Event Name="MceRemote.4514" />
<Action>
Window.SendKeys(u'x', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: .">
<Event Name="MceRemote.4524" />
<Action>
Window.SendKeys(u'.', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: ,">
<Event Name="MceRemote.4523" />
<Action>
Window.SendKeys(u',', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: f">
<Event Name="MceRemote.4513" />
<Action>
Window.SendKeys(u'f', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: r">
<Event Name="MceRemote.4519" />
<Action>
Window.SendKeys(u'r', False)
</Action>
</Macro>
<Macro Name="Emulate Keystrokes: h">
<Event Name="MceRemote.4584" />
<Action>
Window.SendKeys(u'h', False)
</Action>
</Macro>
</Folder>
<Folder Name="Close">
<Macro Name="Close" id="77" Expanded="True">
<Event Name="MceRemote.4520" />
<Action Name="Kill BOXEE">
System.Execute(u'C:\\Windows\\System32\\taskkill.exe', u'/F /IM BOXEE.exe', 0, True, 2, u'')
</Action>
<Action Name="Kill XBMC">
System.Execute(u'C:\\Windows\\System32\\taskkill.exe', u'/F /IM XBMC.exe', 0, True, 2, u'')
</Action>
<Action Name="Kill Hulu">
System.Execute(u'C:\\Windows\\System32\\taskkill.exe', u'/F /IM HuluDesktop.exe', 0, True, 2, u'')
</Action>
</Macro>
</Folder>
<Folder Name="Switch">
<Macro Name="Switch to mode: XBMC">
<Event Name="MceRemote.4529" />
<Action>
EventGhost.NewJumpIf(XmlIdLink(77), 2, True)
</Action>
<Action>
System.Execute(u'C:\\Program Files\\XBMC\\XBMC.exe', u'-p -fs', 0, False, 2, u'')
</Action>
</Macro>
<Macro Name="Switch to mode: BOXEE">
<Event Name="MceRemote.4528" />
<Action>
EventGhost.NewJumpIf(XmlIdLink(77), 2, True)
</Action>
<Action>
System.Execute(u'C:\\Program Files\\Boxee\\BOXEE.exe', u'', 2, False, 2, u'')
</Action>
</Macro>
<Macro Name="Switch to mode: Hulu">
<Event Name="MceRemote.4527" />
<Action>
EventGhost.NewJumpIf(XmlIdLink(77), 2, True)
</Action>
<Action>
System.Execute(u'C:\\Users\\Media\\AppData\\Local\\HuluDesktop\\HuluDesktop.exe', u'', 2, False, 2, u'')
</Action>
</Macro>
</Folder>
<Folder Name="Misc">
<Macro Name="Master Volume: Up">
<Event Name="MceRemote.4503" />
<Action>
System.ChangeMasterVolumeBy(4.0, 0)
</Action>
<Action>
EventGhost.AutoRepeat(0.59999999999999998, 0.29999999999999999, 0.01, 3.0)
</Action>
</Macro>
<Macro Name="Master Volume: Down">
<Event Name="MceRemote.4506" />
<Action>
System.ChangeMasterVolumeBy(-4.0, 0)
</Action>
<Action>
EventGhost.AutoRepeat(0.59999999999999998, 0.29999999999999999, 0.01, 3.0)
</Action>
</Macro>
<Macro Name="Mute">
<Event Name="MceRemote.4509" />
<Action>
System.ToggleMute(0)
</Action>
</Macro>
<Macro Name="Forced: Turn Off Computer">
<Event Name="MceRemote.4512" />
<Action>
System.PowerDown(True)
</Action>
</Macro>
<Macro Name="Toggle drive tray: ">
<Event Name="MceRemote.45F5" />
<Action>
System.OpenDriveTray('D:', 0)
</Action>
</Macro>
</Folder>
</EventGhost>