编程有意思

手机控制电脑

这是对这个回帖( 为Unified Remote添加任意自定义功能,把手机变成电脑的「真」万能遥控器(兼论如何实现一键盘是英文输入法,一键盘中文输入法) - #3,来自 dms )的进一步说明。

这里只是核心原理,因为需要调用外部程序,如果没有编程基础,那么可以实现的效果比较有限。

依然是起一个服务器用来接受请求,但是考虑到我们可能实现比较多的功能,那么有几种方案可以选择:

  • 引入 Express,然后利用它的路由功能,这很方便;
  • 对请求地址用正则进行判断,算是自己完成路由功能了;
  • 就用 get 参数,这会非常简单

我们就假设选择最后一种,还是 编程有意思 - #2,来自 dms 这里这样弄,然后把收到的请求输出一下,大概是 request.query 这个对象里有请求中的所有 get 参数。

这就方便了,比如获得 get 参数是 ?app=notepad 就是想打开记事本,怎么打开呢?

  exec('notepad', (err, stdout, stderr) => {
    if(err) {
      console.log(err);
      return;
    }
  })

行数有一点多,不过其实后面的是错误处理啥的,可以不用管,反正前面 'notepad' 里面就是 cmd 命令,就这样。那如果会写 AHK,就可以调用 AHK 去实现各种操作了。

不过除此之外,在接受请求的时候还得做一件事情,就是返回用来展示的页面,比如上面很多按钮的网页,这个自己发挥,不展开了。

如果会 JS,可以把页面里的各种操作弄得流畅一点。不会就每个按钮用一个最基本的表单提交就行。


一直想弄个类似的东西玩,一方面我手头的旧设备不是很适合,另一方面我想要的功能更复杂一点,比如实时显示当前电脑电量音量啥的。

然后这个方法除了简单还有一个好处:网页可以全屏显示(设备浏览器不太差劲的话),屏幕利用率美滋滋,设备扛得住,自己又会写的话还能加各种特效。