Python如何实现用手机监控远程控制电脑
这篇文章主要介绍Python如何实现用手机监控远程控制电脑,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
一、前言
用Python实现一个远程监控并控制电脑的小程序。
二、实现原理
听起来远程控制电脑好像很高级的样子,但是实现起来其实非常简单。实现原理如下:
运行程序,让程序不停地读取邮件
用手机给电脑发送邮件
判断是否读取到指定主题的邮件,如果有,则获取邮件内容
根据邮件内容,执行预设的函数
与其说是学习如何远程控制电脑,还不如说是学习如何读取邮件。当然,上面的的流程只实现了远程控制电脑,而没实现对电脑的监控。而监控的操作可以以截图的方式来进行。
我们可以预设一个指令,当读取到邮件内容为grab时,我们就发送电脑截图。如何将电脑截图发送给手机邮箱,这样就达到了监控的效果。
关于如何发送邮件可以参考博客:如何用Python发送邮件?。这里就不再详细说了。下面我们看看如何读取邮件。
三、读取邮件
读取邮件需要使用到imbox模块,安装语句如下:
pipinstallimbox
读取邮件的代码如下:
fromimboximportImboxdefread_mail(username,password):withImbox('imap.163.com',username,password,ssl=True)asbox:all_msg=box.messages(unread=True)foruid,messageinall_msg:#如果是手机端发来的远程控制邮件ifmessage.subject=='RemoteControl':#标记为已读box.mark_seen(uid)returnmessage.body['plain'][0]
首先我们用with语句,打开邮箱。然后通过下面语句获取所有的未读邮件:
all_msg=box.messages(unread=True)
获取未读邮件后,对邮件进行遍历。将主题为“Reomte Control”的邮件标记为已读,并返回文本内容。
这里需要注意,因为我们筛选出了主题为“Remote Control”的邮件,因此我们在用手机发邮件的时候需要将主题设置为“Remote Control”,这样可以避免其它邮件的干扰。
四、截图
截图需要使用到PIL模块,安装如下:
pipinstallpillow
截图的代码很简单:
fromPILimportImageGrabdefgrab(sender,to):#截取电脑全屏surface=ImageGrab.grab()#将截屏保存为surface.jpgsurface.save('surface.jpg')#将截屏发送给手机send_mail(sender,to,['surface.jpg'])
其中send_mail的代码如下:
importyagmaildefsend_mail(sender,to,contents):smtp=yagmail.SMTP(user=sender,host='smtp.163.com')smtp.send(to,subject='RemoteControl',contentscontents=contents)
关于发送邮件的介绍可以参考上面提到的博客。
五、关机
关机的操作非常简单,我们可以用python来执行命令行语句即可。代码如下:
importosdefshutdown():#关机os.system('shutdown-s-t0')
除了关机,我们还可以执行很多操作。对于一些复杂的操作,我们可以预编写一些bat文件,这里就不演示了。
六、完整代码
上面我们编写了各个部分的代码,然后再来看看主体部分的代码:
defmain():#电脑用来发送邮件已经电脑读取的邮箱username='sockwz@163.com'password='********'#手机端的邮箱receiver='2930777518@qq.com'#读取邮件的时间间隔time_space=5#注册账户yagmail.register(username,password)#循环读取whileTrue:#读取未读邮件msg=read_mail(username,password)ifmsg:#根据不同的内容执行不同操作ifmsg=='shutdown':shutdown()elifmsg=='grab':grab(username,receiver)time.sleep(time_space)
其中:
yagmail.register(username,password)
会使用到keyring模块,安装如下:
pipinstallkeyring
后面我们可以根据自己的需求编写一些其它功能。下面是完整的代码:
importosimporttimeimportyagmailfromimboximportImboxfromPILimportImageGrabdefsend_mail(sender,to,contents):smtp=yagmail.SMTP(user=sender,host='smtp.163.com')smtp.send(to,subject='RemoteControl',contentscontents=contents)defread_mail(username,password):withImbox('imap.163.com',username,password,ssl=True)asbox:all_msg=box.messages(unread=True)foruid,messageinall_msg:#如果是手机端发来的远程控制邮件ifmessage.subject=='RemoteControl':#标记为已读box.mark_seen(uid)returnmessage.body['plain'][0]defshutdown():os.system('shutdown-s-t0')defgrab(sender,to):surface=ImageGrab.grab()surface.save('surface.jpg')send_mail(sender,to,['surface.jpg'])defmain():username='sockwz@163.com'password='你的授权码'receiver='2930777518@qq.com'time_space=5yagmail.register(username,password)whileTrue:#读取未读邮件msg=read_mail(username,password)ifmsg:ifmsg=='shutdown':shutdown()elifmsg=='grab':grab(username,receiver)time.sleep(time_space)if__name__=='__main__':main()
以上是“Python如何实现用手机监控远程控制电脑”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注恰卡编程网行业资讯频道!
推荐阅读
-
Python中怎么动态声明变量赋值
这篇文章将为大家详细讲解有关Python中怎么动态声明变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中变量的存储原理是什么
-
Python中怎么引用传递变量赋值
这篇文章将为大家详细讲解有关Python中怎么引用传递变量赋值,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文...
-
python中怎么获取程序执行文件路径
python中怎么获取程序执行文件路径,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的...
-
Python中如何获取文件系统的使用率
Python中如何获取文件系统的使用率,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴...
-
Python中怎么获取文件的创建和修改时间
这篇文章将为大家详细讲解有关Python中怎么获取文件的创建和修改时间,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读...
-
python中怎么获取依赖包
今天就跟大家聊聊有关python中怎么获取依赖包,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据...
-
python怎么实现批量文件加密功能
-
python中怎么实现threading线程同步
小编给大家分享一下python中怎么实现threading线程同步,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!...
-
python下thread模块创建线程的方法
本篇内容介绍了“python下thread模块创建线程的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来...