百科狗-知识改变命运!
--

如何让Python实现远程控制电脑

是丫丫呀1年前 (2023-11-21)阅读数 26#技术干货
文章标签邮件

一、前言

很多时候,我们都有远程控制电脑的需求。比如正在下载某样东西,需要让电脑在下载完后关机。或者你需要监控一个程序的运行状况等。

今天我们就来用Python实现一个远程监控并控制电脑的小程序。

二、实现原理

听起来远程控制电脑好像很高级的样子,但是实现起来其实非常简单。实现原理如下:

1.运行程序,让程序不停地读取邮件。

2.用手机给电脑发送邮件。

3.判断是否读取到指定主题的邮件,如果有,则获取邮件内容。

4.根据邮件内容,执行预设的函数。

与其说是学习如何远程控制电脑,还不如说是学习如何读取邮件。当然,上面的的流程只实现了远程控制电脑,而没实现对电脑的监控。而监控的操作可以以截图的方式来进行。

我们可以预设一个指令,当读取到邮件内容为grab时,我们就发送电脑截图。如何将电脑截图发送给手机邮箱,这样就达到了监控的效果。

关于如何发送邮件可以参考博客:如何用Python发送邮件?。这里就不再详细说了。下面我们看看如何读取邮件。

三、读取邮件

读取邮件需要使用到imbox模块,安装语句如下:

pipinstallimbox

读取邮件的代码如下:

fromimboximportImbox

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]

首先我们用with语句,打开邮箱。然后通过下面语句获取所有的未读邮件:

all_msg=box.messages(unread=True)

获取未读邮件后,对邮件进行遍历。将主题为“ReomteControl”的邮件标记为已读,并返回文本内容。

这里需要注意,因为我们筛选出了主题为“RemoteControl”的邮件,因此我们在用手机发邮件的时候需要将主题设置为“RemoteControl”,这样可以避免其它邮件的干扰。

四、截图

截图需要使用到PIL模块,安装如下:

pipinstallpillow

截图的代码很简单:

fromPILimportImageGrab

defgrab(sender,to):

#截取电脑全屏

surface=ImageGrab.grab()

#将截屏保存为surface.jpg

surface.save('surface.jpg')

#将截屏发送给手机

send_mail(sender,to,['surface.jpg'])

其中send_mail的代码如下:

importyagmail

defsend_mail(sender,to,contents):

smtp=yagmail.SMTP(user=sender,host='smtp.163.com')

smtp.send(to,subject='RemoteControl',contents=contents)

关于发送邮件的介绍可以参考上面提到的博客。

五、关机

关机的操作非常简单,我们可以用python来执行命令行语句即可。代码如下:

importos

defshutdown():

#关机

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)

我们可以根据自己的需求编写一些其它功能。下面是完整的代码:

importos

importtime

importyagmail

fromimboximportImbox

fromPILimportImageGrab

defsend_mail(sender,to,contents):

smtp=yagmail.SMTP(user=sender,host='smtp.163.com')

smtp.send(to,subject='RemoteControl',contents=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):

如何让Python实现远程控制电脑

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=5

yagmail.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相关知识,请关注IT培训机构:开发教育。http://www.baikegou.com/

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)