Python开发学习之Python实现用手机监控远程控制电脑

这篇具有很好参考价值的文章主要介绍了Python开发学习之Python实现用手机监控远程控制电脑。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

实现原理

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

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

用手机给电脑发送邮件

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

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

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

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

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

三、读取邮件

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

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]

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

all_msg = box.messages(unread=True)

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

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

四、截图

截图需要使用到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', contentscontents=contents)

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

五、关机

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

import os

def shutdown():

关机

os.system('shutdown -s -t 0')

除了关机,我们还可以执行很多操作。对于一些复杂的操作,我们可以预编写一些bat文件,这里就不演示了。

六、完整代码

上面我们编写了各个部分的代码,然后再来看看主体部分的代码:

def main():

电脑用来发送邮件已经电脑读取的邮箱

username = 'sockwz@163.com'  

password = '********'   

手机端的邮箱

receiver = '2930777518@qq.com'   

读取邮件的时间间隔

time_space = 5   

注册账户

yagmail.register(username, password)     

# 循环读取  

while True:  

    #读取未读邮件  

    msg = read_mail(username, password)  

    if msg:  

     #根据不同的内容执行不同操作  

        if msg == 'shutdown':  

            shutdown()

        elif msg == 'grab':  

            grab(username, receiver)  

    time.sleep(time_space)

其中:

yagmail.register(username, password)

会使用到keyring模块,安装如下:

pip install keyring

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

import os

import time

import yagmail

from imbox import Imbox

from PIL import ImageGrab

def send_mail(sender, to, contents):

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

smtp.send(to, subject='Remote Control', contentscontents=contents)  

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]  

def shutdown():

os.system('shutdown -s -t 0')  

def grab(sender, to):

surface = ImageGrab.grab()  

surface.save('surface.jpg')  

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

def main():

username = 'sockwz@163.com'  

password = '你的授权码'  

receiver = '2930777518@qq.com'

time_space = 5  

yagmail.register(username, password)  

while True:  

    #读取未读邮件  

    msg = read_mail(username, password)  

    if msg:  

        if msg == 'shutdown':  

            shutdown()  

        elif msg == 'grab':  

            grab(username, receiver)  

    time.sleep(time_space)  

if name == ‘main’:

main()  

文章来源:网络 版权归原作者所有

上文内容不用于商业目的,如涉及知识产权问题,请权利人联系小编,我们将立即处理文章来源地址https://www.toymoban.com/news/detail-570753.html

到了这里,关于Python开发学习之Python实现用手机监控远程控制电脑的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用图传设备实现yolov5的远程监控与控制(YOLOv5检测+jetson nano+无人机+无线图传+vnc)

    目前想把模型加速部署好的jetson nano,放在自制无人机上,飞至高空用于检测,而且地面可以监控检测效果。 我想的检测方案: 1、使用socket,手动建立一个发射端,一个接收端,这个配置只需要导入socket库,写好ip和端口号就可以了,再打开多线程,速度也应该挺快,但是需

    2024年01月19日
    浏览(52)
  • 怎么用手机远程控制电脑 远程控制怎么用

    怎么用手机远程控制电脑:远程控制怎么用 在这个科技日新月异的时代,远程控制电脑已经成为了很多人的需求。有时,我们可能在外出时突然需要访问家中的电脑,或者在工作中需要远程操控办公室的电脑。这时,如果能用手机远程控制电脑,那将是非常方便的。那么,怎

    2024年04月22日
    浏览(37)
  • 手机木马远程控制复现

    目录 前言 系列文章列表 渗透测试基础之永恒之蓝漏洞复现http://t.csdn.cn/EsMu2 思维导图 1,实验涉及复现环境    2,Android模拟器环境配置 2.1,首先从官网上下载雷电模拟器 2.2,安装雷电模拟器  2.3, 对模拟器网络进行配置 2.3.1,为什么要进行配置 2.3.2,进行配置  2.3.3,安装成功后

    2024年02月09日
    浏览(47)
  • AhMyth远程控制手机(实践)

    声明:本文仅限学习研究讨论,切忌做非法乱纪之事! 大家好,好久不见,今天简单聊聊AhMyth远控手机 AhMyth是一款能控制安卓手机的远程控制软件。 项目地址是在GitHub - AhMyth/AhMyth-Android-RAT: Android Remote Administration Tool 这是一个开源项目 里面有32位和64位自行选择  测试环境是

    2024年02月03日
    浏览(40)
  • 【物联网】Arduino Uno开发板连接阿里云实现云端远程控制LED灯开关

    1 思维图概览 需要实现的有 ESP8266通过wifi与阿里云进行通信 ESP8266与Arduino Uno开发板的通信 Arduino Uno开发板与LED灯的通信 2 阿里云—ESP8266 部分 参考昨天的文章 【阿里云】物联网平台配置ESP8266真实设备AT串口连接,支持MQTT协议通信 https://blog.csdn.net/qq_33957603/article/details/124575

    2024年02月03日
    浏览(56)
  • Scrcpy远程控制Andorid手机

            Scrcpy是免费的开源屏幕镜像应用程序,允许您在Windows、macOS或Linux桌面上控制Android设备。 github地址:https://github.com/Genymobile/scrcpy         Android设备必须至少支持API 21 (Android 5.0),确认设备已打开以进行ADB调试,某些设备还需要打开可通过鼠标和键盘控制的其他

    2024年02月09日
    浏览(52)
  • 手机远程控制之scrcpy(一)

    有线投屏 无线投屏 屏幕录制 常见问题 错误检查 ERROR: Exception on thread 投屏模糊 scrcpy 是免费开源的投屏软件,支持将安卓手机屏幕投放在 Windows、macOS、GNU/Linux 上,并可直接借助鼠标在投屏窗口中进行交互和录制。 市面上主流的多屏协同软件都是基于 scrcpy 开发,套层皮,

    2024年02月09日
    浏览(36)
  • 怎么使用手机远程控制Win10电脑?

    “近期,我将出差一段时间。问题是,我希望能够从很远的地方浏览家里电脑上的一些东西,但我不会一直随身携带笨重的笔记本电脑。我可以手机远程访问Windows电脑吗? ”          当然,您可以从任何地方使用手机远程访问Windows电脑。在这篇文章中,我们将介绍如何使

    2024年02月12日
    浏览(48)
  • 如何让两台手机相互远程控制?

    你的两台手机是什么系统的?如果你的两台手机都是安卓系统,而且都是安卓7.0及以上版本的系统,那么恭喜你,这两台手机可以相互远程控制! 你可以利用两个软件实现将两台手机相互远程控制的想法。为了避免混淆,下文将以【手机A】和【手机B】讲述两台手机相互远程

    2024年02月07日
    浏览(39)
  • 安科瑞智慧安全用电云平台【无人化数据监控 远程控制 运维管理】

    背景 在住宅火灾中,电气引发的居高不下,已查明原因的火灾中有52%系电气原因引起,尤其是各类家用电器、电动车、电气线路等引发的火灾越来越突出,仅电动自行车引发的较大火灾就有7起。这些事故暴露出电器产品生产质量、流通销售,建设工程电气设计、施工,电器

    2024年03月20日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包