写这个教程的起因是自己有时候家里的沙发上听着豆瓣电台的音乐, 用过豆瓣电台的朋友们知道, 它提供一个有用的按钮: 加心 – 遇到喜欢的歌儿可以给它加红心. 可是对于坐在沙发上的我, 如果听到一首很喜欢的歌想要去点那个加心按钮, 我需要站起身, 跑到电脑前面, 然后按下按钮, 再回到座位上 — 这个过程对于想好好听歌休息的人来讲会比较烦人.

“自己动手, 丰衣足食”

经历了十几分钟的搜索后, 终于决定使用EventGhost作为工具来实现我上面的需求. (不是软文, 那个软件都是开源地).选择它有以下原因:

  • 免费
  • 支持键盘/游戏控制器/遥控器(这一点比较重要, 这个在后几天准备会用MCE遥控器来控制电脑)
  • 可以架设一个web服务器来接收控制 (这让我在没有遥控器的情况下也可以使用手机作为临时遥控器了:-) )
  • 其他启动程序的事件也可以做为触发器
  • 支持查找窗口, 打开程序, 模拟键盘/鼠标动作等
  • 支持Python脚本扩展
  • 支持自己写插件

好了, 去EventGhost网站上下载最新版本的程序并安装上吧. 下面来开始设置并使用了.

启动EventGhost后, 通过菜单File->New, 开始新的设置. 它的窗口布局分为如下所示的左右两边: 左边的是日志窗口, 所有的窗口事件都显示这里面, 每个事件为单独的一行, 注意每一行都是可以拖动的 (我们会在后面用到), 右面是具体的事件/触发配置的窗口.

由于暂时没有遥控器, 我们先实现使用手机来控制电脑, 在右面窗口的AutoStart节点上右键并点击Add Plugin菜单, (注: 通过autostart可以设置一些在程序启动时自动加载/启动的服务插件等).

在弹出的插件选择窗口里选择Dynamic WebServer:

在接下来的配置窗口里填上监听的端口和web文件存放的根目录, 这里有个认证的选项, 简单起见我们留空(无认证).

在你的web文件目录里创建一个名为index.html的文件, 内容如下:

<head>
<title>douban 控制</title>
</head>
<body>
<a href=”index.html?Love”>加心</a>
</body>

这里我们简单的创建了一个按钮, 它指向一个”index.html?Love”, 这里EventGhost会把问号后面的参数作为动作的名字识别出来. 在自己的电脑上访问http://127.0.0.1:8080并且点击加心按钮, 你会发现在EvenGhost左侧的事件列表里会多出一个Http.Love的事件如下图所示:

好了, 我们已经可以通过访问网页来触发EventGhost的事件了, 接下来就是定制事件发生后我们要做的事情了, 这里我习惯单独使用Chrome浏览器打开douban.fm, 所以当事件发生后我们需要做以下事情:

1. 找到豆瓣电台所在的窗口并激活它

2. 定位鼠标到加心的按钮

3. 点击加心按钮

下面就开始吧, 首先在右侧窗口中添加一个Folder (Folder主要是为了整理结构用的, 没有什么实际功能上的影响), 右键菜单, 选择Add Macro, 并在Add Macro窗口的Window列表里选择Find Window, 找到Chrome中的豆瓣电台所在的窗口, 然后修窗口名字为”{*}豆瓣FM{*}”, 我们使用了{*}通配符来匹配所有字符, 这是因为豆瓣电台的窗口的标题会动态更新为当前的歌曲名称, 我们只选择固定的”豆瓣FM”. 完成后把这个宏的名称重命名为DoubanFm.

在Doubanfm节点上右键通过菜单”Add Action”, 并选择”Bring To Front”, Bring to Front会使用之前找到的窗口并把它激活为当前窗口.

为了简单起见, 我们这里直接认为豆瓣电台的窗口位置是固定的, 所以那个心的按钮位置也固定 (最后是写个脚本来通过图片匹配找到对应的位置, 相对复杂了点儿),

继续右键DoubanFm, 通过右键菜单”Add Action”, 在Mouse分类里选择Move Mouse to, 把x, y 设置为心号按钮所在的位置, 我们这里是1630, 700 (这里的值应该是你窗口上对应的坐标).

继续右键DoubanFM, 通过右键菜单”Add Action”, 在Mouse分类里选择Left Mouse button.

完成后的窗口会如下所示:

这时时候再右键DoubanFm, 通过菜单”Execute item”来你的脚本是否工作正常. 如果一切正常的话你会发现豆瓣电台窗口会被激活, 并且那个心号按钮会被点击.

一切正常后, 我们下面就要把点击网页的事件和我们定制好后的行为关联起来了, 在左侧的事件窗口里找到HTTP.Love一项(我们之前就触发了这个事件), 选中它并拖到右侧窗口里的DoubanFM节点里, 把它拖到DoubanFm的第一个子节点.

基本完工, 先通过浏览器打开http://127.0.0.1, 点击一下链接测试吧.

继续通过手机浏览器访问你电脑的地址, 就可以了. 当然, 如果你嫌我们之前的网页太过丑陋的话, 可以自己写一些好看的配色来, 这里我使用的是ajaxian提供的iphone的配色. 在手机中的效果如下(请原谅我用的不是iphone…):

接下来你就可以打开豆瓣电台, 然后跑到床上听歌爽去了, 当然要时不时的点一下加心才过瘾~

这不是终点, 前面的只是为了我们接下来的使用遥控器做的准备, 咱已经定购了微软MCE遥控器套装, 等它到货就可以使用遥控器远程控制玩了, 嘿嘿.