论如何优雅的远程控制电脑(自建手机端、网页控制开关机)
本帖最后由 菜鸟的说 于 2020-7-18 09:06 编辑本文介绍含有两个程序:
1.电脑端程序
2.PHP服务器端程序
电脑端程序由易语言编写,文末附上源码,可供参考自建,服务器端程序为开源程序(typecho)修改版
# 思路
目前服务器端界面可能有些让人不好理解。未来我会更新,以下先介绍下开发思路。
# 构想
开发的构想最初源于“小米的无线通断开关”简而言之就是,作为一个中介桥梁,用户用手机发送指令给服务器,服务器接收开关机命令,比如确定用户要关机,然后会下发到小米开关,小米开关接受指令,然后断开开关(我的理解或许有偏差。可以把小米开关理解为本文中的电脑端程序。如果小米开关没有连接小米的服务器,那么小米开关就是作为“服务器本身”来处理指令了)
我希望用户可以通过手机或者平板等等别的设备。来实现远程控制电脑开关机,未来甚至可以增加别的一些指令,比如控制打开某个软件,甚至销毁电脑数据,保证快速删除信息,使之信息不会泄露。当然这些是未来的题外话了,按照本文流程原理开发这些其实也不难。但本文只论述开关机这一操作,看客可根据文末给的源码,触类旁通。
如果说用手机,那么我们需要自行开发app,手机的系统不同,开发的app也不同,这样很繁琐,工程量有些大。当然也不是说不好。但是目前暂时选择一个比较宽泛的选择,就是直接在网页上进行控制操作。也就是说,不用在意是什么设备什么系统,只要能用浏览器上网,都可以实现这样的操作。
具体为电脑端爬服务器端的数据(服务器端把指令展示出来给软件爬)按照获取来的指令进行操作。
我画了个图便于大家理解流程:
# 行动
## 先制作定时关机程序
首先我们先开发电脑端的程序。目前用易语言编写,门槛低,大伙看得也明白。看懂了用别的程序开发也不是事儿。
第一步,我们需要编写一个能程序主动关闭电脑的命令。易语言中非常简单,一句话:关闭系统(),欧了……
```
关闭系统(#参数1,#参数2)
’参数1可以填写#关机,#注销,#重启,这样的操作,参数2,为是否强制关机,填写真,为强制,否为不强制,我写强制
```
我出于对自己操作的习惯写了几个判断选项,源码中有具体明细,初步几个操作就制作成了一个便捷的定时开关机小程序。
用户可以选择填写小时和分钟的倒计时,定时关机,时间到了会弹出最后确认的10秒窗口,最后10秒的选择时间,用户可以自己选择是否确认进行关机,点击立即关机,直接关机,点击取消,取消当前定时关机。若不操作,不进行选择,默认10秒后关机
## 给程序增加新流程机制
定时关机小程序制作完成了,那么目前是可以本地定时关机,但是这还不能算远程控制关机。我们现在需要让程序可以被我们远程的指令控制,势必需要增加一些新的流程机制。
即获取远程数据,接收后执行命令。
## 创建服务器端指令存储网页
原本我是打算重新写php程序,专门制作,但我水平有限,虽然我坚信折腾下可以做的,但处于堕性,我决定用现成的。网络上有很多php端结合MySQL数据库进行信息存储的开源程序,比如wordpress,emlog等等,我选择了一个名为typecho的轻量程序,它的目的只有一个,就是用于存储开关机指令的信息数据。
好处:开发者不用专门地,重新去开发了,因为这就是现成的,我们只需要拿来修改下就能使用。非常的方便省时间。(ps:未来我还是想自己重新写个专门的。)
文末我会将网页端与电脑端的源码统一打包为压缩包,供阅者参考。
typecho自带安装页面,用户不用自己修改php文件填写数据库信息,直接网页上就能非常直观的填写数据库信息,进行连接。
安装完毕后,我们新建一个文章(存储指令)
域名(IP)/admin/write-post.php
填写内容为:1
有个标题,可填可不填,我这里填写change
创建后会生成一个页面:默认情况下,都是:你安装的服务器端程序的域名/index.php/archives/3/
(因为typecho自带一个文章和页面占用了1和2,你发布新的文章默认必为3)
安装服务器端完毕后我们回到电脑端继续写代码。
让电脑端程序爬取这个页面:(你安装的服务器端程序的域名/index.php/archives/3/)
爬取到的数据存储到一个全局变量里,我这里直接填写到编辑框中了。(那时为了方便调试)*有强迫症的可以修改过来,新建个全局变量。改下。
让电脑端程序增加一个判断机制:
电脑默认生成一个ini配置文件定义一个数据为0
有没有发现,现在配置文件中的定义数据,为0,而网页端的数据为1,那么,很明显了,我们根据这个写一个判断机制,即获取本地ini数据和网页的对比。如果立两数据匹配相同(都为0或都为1),执行关机命令(弹出关机10秒窗口)
当然这还不够,我们必须让程序爬取,对比数据,确认匹配,确认执行关机命令前,让程序再自己修改配置文件使之不匹配,目的是便于下次使用,它不会执行关机操作。
这里我们相当于自己在程序里写了个循环。
至此,远程开关机程序制作完成。
操作演示:https://m.weibo.cn/2401091225/4527961719710099
源码:https://wwa.lanzouj.com/iXqNDep7xcb
axiuluo3140 发表于 2020-7-18 09:17
直接用向日葵 VM之类的不就好了。。
主要是看源码,这个不仅仅可以用于开关机,还可以自己触类旁通的。比如你可以远程执行删除磁盘修改注册表,比如冠希哥的照片被送到电脑维修员的手中,在电脑被打开后,远程立刻控制销毁等等。操作不限于关机的。大伙可以自己看着改。 天高云淡_武 发表于 2020-7-20 12:21
图都懒得看,开关机怎么搞成这么复杂了呀
远程关机。意思是指电脑不在身边,出门在外用网页(也可以说用手机)控制电脑关机。再有一种情况是躺在床上懒得爬起来去电脑那儿点关机,按照教程搭建完毕以后可以不用从床爬起来,拿出手机即可实现关机。当然操作不限于“关机”这一种操作,源码已经放上去了,看得明白的自己能用来做更多事儿 谢谢,试下 这个厉害了,看着还不错! {:1_918:}我要看开机的.. 这么有灵性的图,不给个分都不好意思欣赏第一张图 流程图好评 直接用向日葵 VM之类的不就好了。。{:1_908:} 嗯鉴定完毕,真程序猿,是我惹不起的猿 - Sat Jul 18 2020 09:21:21 GMT+0800 (中国标准时间) 只有我一个人觉得很复杂吗,个人感觉图一很用心,但太繁琐了,杀鸡用牛刀