听起来远程控制手机好像很高级的样子,但是实现起来其实非常简单。实现原理如下:
-
运行程序,让程序不停地读取数据
-
用手机给手机发送邮件
-
判断是否读取到指定主题的手机,如果有,则获取手机内容
-
根据邮件内容,执行预设的函数
与其说是学习如何远程控制手机,还不如说是学习如何读取手机数据。当然,上面的的流程只实现了远程控制手机,而没实现对电脑的监控。而监控的操作可以以截图的方式来进行。
我们可以发送一个指令,当读取到邮件内容时,我们就发送手机截图。如何将手机截图发送给appeyes,这样就达到了监控的效果。
pip install imbox
from imbox import Imbox
def read_mail(username, password):
with Imbox('imap.163.com', username, password, ssl=True) as box:
all_msg = box.messages(unread=True)
for uid, message in all_msg:
# 如果是手机端发来的远程控制
if message.subject == 'Remote Control':
# 标记为已读
box.mark_seen(uid)
return message.body['plain'][0]
all_msg = box.messages(unread=True)
截图需要使用到PIL模块,安装如下:
pip install pillow
截图的代码很简单:
from PIL import ImageGrab
def grab(sender, to):
# 截取手机全屏
surface = ImageGrab.grab()
# 将截屏保存为surface.jpg
surface.save('surface.jpg')
# 将截屏发送给手机
send_mail(sender, to, ['surface.jpg'])
其中send_mail的代码如下:
import yagmail
def send_mail(sender, to, contents):
smtp = yagmail.SMTP(user=sender, host='smtp.163.com')
smtp.send(to, subject='Remote Control', contents=contents)
关于发送数据的介绍可以参考上面提到的方法。
SPYEYE还可以执行很多操作。对于一些复杂的操作,我们可以预编写一些bat文件,这里就不演示了。