寻找一个可与遥控器配合使用的简单程序启动器

寻找一个可与遥控器配合使用的简单程序启动器

我正在寻找一种适用于 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

  1. 您可以使用 Windows 桌面作为启动器。在 Windows 7 中,我的 Media Center 遥控器箭头按钮的工作方式与键盘上的箭头按钮相同。因此,任何响应箭头按钮的应用程序都可以为您工作。有一个 Ok/Enter 按钮,其作用与 Enter 类似。因此,您只需将所需程序的快捷方式放在桌面上(大概没有其他快捷方式),用户就可以从这些快捷方式启动。您还可以隐藏任务栏并将图标弄得很大,这样它看起来就不像桌面了。如果 Windows 上有任何现有的启动器可以响应箭头键和 Enter,那么它们应该已经可以使用了。
  2. 或者,您可以使用 Visual Studio 2008 Express(免费)或类似程序编写一个应用程序,该应用程序仅在与显示器大小相同的无边框窗口中显示一组按钮。将图像放在与操作相对应的按钮上。连接每个按钮以启动您想要的任何应用程序。遥控器上的箭头键将焦点从一个按钮移动到另一个按钮。
  3. 使用 Linux 中的 LIRC,或者使用 Windows 中的 Girder,您可以配置您的 PC 以几乎任何可以想象的方式响应遥控器。因此,您可以将按键映射到按钮按下,或启动程序以响应按钮按下,等等。在启动时,您可以全屏启动无边框的图像查看器,上面写着“按 1 转到音乐,按 2 转到电视”,等等。

答案4

你可以给尝试一下 uICE

我自己没用过,但是特色旅游表示屏幕菜单可能会给你你想要的东西,尽管它并不漂亮。

截屏

相关内容