我正在寻找一种适用于 HTPC 的启动程序。这个想法是当 Windows(或 Linux,我对任何操作系统都满意)时启动该程序,并调出程序菜单,例如 XBMC、HULU Desktop、BOXEE、Firefox、关机和退出。然后用户可以使用遥控器(或键盘、鼠标等)上的箭头键选择一个程序。然后程序将启动所选程序...
当程序退出时,启动器将再次出现,允许用户启动另一个程序或退出到计算机桌面或关闭计算机。
这样的程序看起来很简单,我猜想这样的程序已经存在了,但是我还没有找到。
有人知道这样的程序吗?
我所遇到的最接近的东西是模仿 Windows/Linux 上的 OSX 的 Dock 的“dock 启动器”,但是它们没有远程支持。
答案1
我最终用 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>
答案2
我使用 Wii 控制器 (Wiimote) 作为“遥控器”,这肯定可以与您选择的启动器配合使用。:)
这是一个教程(对于 Windows,我相信 Linux 也有替代品)。
(如果您没有 Wii,您可以单独购买 Wiimote 和传感器条。)
答案3
- 您可以使用 Windows 桌面作为启动器。在 Windows 7 中,我的 Media Center 遥控器箭头按钮的工作方式与键盘上的箭头按钮相同。因此,任何响应箭头按钮的应用程序都可以为您工作。有一个 Ok/Enter 按钮,其作用与 Enter 类似。因此,您只需将所需程序的快捷方式放在桌面上(大概没有其他快捷方式),用户就可以从这些快捷方式启动。您还可以隐藏任务栏并将图标弄得很大,这样它看起来就不像桌面了。如果 Windows 上有任何现有的启动器可以响应箭头键和 Enter,那么它们应该已经可以使用了。
- 或者,您可以使用 Visual Studio 2008 Express(免费)或类似程序编写一个应用程序,该应用程序仅在与显示器大小相同的无边框窗口中显示一组按钮。将图像放在与操作相对应的按钮上。连接每个按钮以启动您想要的任何应用程序。遥控器上的箭头键将焦点从一个按钮移动到另一个按钮。
- 使用 Linux 中的 LIRC,或者使用 Windows 中的 Girder,您可以配置您的 PC 以几乎任何可以想象的方式响应遥控器。因此,您可以将按键映射到按钮按下,或启动程序以响应按钮按下,等等。在启动时,您可以全屏启动无边框的图像查看器,上面写着“按 1 转到音乐,按 2 转到电视”,等等。