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', contents=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)

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

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', contents=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()

到此这篇关于Python实现用手机监控远程控制电脑的方法的文章就介绍到这了,更多相关Python 手机监控远程控制电脑内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python 通过邮件控制实现远程控制电脑操作

    0x00 思路 之前在博客上看到了使用python通过微信的接口,与微信交互的方式来控制电脑的摄像头.开关机等.但是这种方式需要首先在python上登录自己的微信才可以,同时微信端也会有已经在网页端登录的字样,很显眼.因此想到了另外一种交互方式,通过邮件进行交互. 通过邮件的方式不要求用户实时在线,只需要程序隔一段时间扫描一下邮箱的新邮件即可.这种交互方式更为方便.其次,这种方式也更为隐蔽,不会干扰微信的使用. 0x01 需要用到的库 主要是python的一些用于收发邮件的库 import sm

  • python编写微信远程控制电脑的程序

    今天来分享一个"高大上"的技术--使用python编写一个可以用微信远程控制电脑的程序! 先来分析一下控制的具体流程: 我们使用微信给特定的邮箱发送一封邮件,其中包含了我们想要电脑执行的命令,然后电脑上的python程序获取到这封邮件,然后解析其中的命令,再交付给电脑执行.可以看出,这其中主要的技术难点就是获取邮件了!但是!这没有任何问题,大家看到我的上一篇博客<python 收发邮件>就可以了! 下面给出使用python收发邮件并执行邮件命令的代码. # -*- codi

  • Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)

    0. 我们如何通过邮件系统完成远程控制电脑(关机.重启等)? 实现思路: 需要有两个邮箱:接收指令邮箱(A)发送指令邮箱(B) 被控制的电脑(查看 A 邮箱): 1. 每隔指定时间监听 A 邮箱 查看最近的邮件 2. 打开最近邮件,看是否是 B 邮箱地址发来的执行命令 3. 向 A 和 B 邮箱都发送 主题为:反馈 内容为:"目标计算机已收到指令!开始执行:xxx 指令!" 邮件 4. 执行指定邮箱发送的执行命令 远程人员操作: 登录 B 邮箱,向 A 邮箱发送 主题为:"目

  • python如何实现远程控制电脑(结合微信)

    不知道大家有没有这样一个烦恼,"自己的电脑总是被别人使用,又不好意思设置密码",所以利用python设计了一个程序来实现自由管控. 功能虽然简单,但大家可以通过其思路来实现更多的功能. 大致功能主要是两个部分, 一.电脑开机时,我的手机能收到通知. 二.可以通过手机发个特定的mail,就可以控制电脑关机. 第一个步骤:申请一个邮箱,使这个邮箱与你的手机号码绑定,然后你在这个邮箱中设定如果有新的邮件就发短信通知,这样开机时往这个邮箱发个mail,我手机就会收到短信通知了. 第二个步骤:通

  • python实现微信远程控制电脑

    首先,我们要先看看微信远程控制电脑的原理是什么呢? 我们可以利用Python的标准库控制本机电脑,然后要实现远程的话,我们可以把电子邮件作为远程控制的渠道,我们用Python自动登录邮箱检测邮件,当我们发送关机指令给这个邮箱的时候,若Python检测到相关的指令,那么Python直接发送本机的相关命令. 下面来分析一下该项目: 1.需求分析 1.范围:用Python开发一个远程操控电脑的项目. 2.总体要求: 2.1 总体功能要求:能够通过该软件远程控制该软件所在的电脑的重启或关机操作. 2.2

  • python实现远程控制电脑

    python远程控制电脑的具体代码,供大家参考,具体内容如下 ​ python拥有大量的第三方库,且语法简单.今天老杨就用python实现远程控制电脑 ​ 所谓,谋定而后动,在实现任何一个需求之前,我们需要先分析,捋清楚一个思路,远程控制电脑,无非就是接收远程的命令和根据命令去执行对应的操作.那这里,我们借助微信来接收命令,利用我们的一个itchat库实现远程控制电脑 ​ 按上所说,我们要完成需求,无非是把任务细分,首先,接收到消息指令,再根据对应的指令执行相对应的操作,其中我们需要考虑一个问题

  • Python3.4实现远程控制电脑开关机

    本文实例为大家分享了Python实现远程操控电脑的具体代码,供大家参考,具体内容如下 import poplib import sys import smtplib from email.mime.text import MIMEText import os from email.header import decode_header import email import time def check_email(): try: p = poplib.POP3('pop.163.com') p

  • Python实现用手机监控远程控制电脑的方法

    一.前言 很多时候,我们都有远程控制电脑的需求.比如正在下载某样东西,需要让电脑在下载完后关机.或者你需要监控一个程序的运行状况等. 今天我们就来用Python实现一个远程监控并控制电脑的小程序. 二.实现原理 听起来远程控制电脑好像很高级的样子,但是实现起来其实非常简单.实现原理如下: 运行程序,让程序不停地读取邮件 用手机给电脑发送邮件 判断是否读取到指定主题的邮件,如果有,则获取邮件内容 根据邮件内容,执行预设的函数 与其说是学习如何远程控制电脑,还不如说是学习如何读取邮件.当然,上面的的

  • Python实现控制手机电脑拍照并自动发送邮箱

    目录 介绍 本文思路 视频讲解 代码部分 介绍 兄弟们,这个是正经的教程,不要拿来乱用,可以自己用自己的电脑或者手机试,但是别搞别人,懂的都懂! 本文思路 1.通过opencv调用摄像头拍照保存图像本地 2.用email库构造邮件内容,保存的图像以附件形式插入邮件内容 3.用smtplib库发送邮件到指定邮箱 视频讲解 用python控制手机/电脑自动拍照并发送邮箱 代码部分 模块导入 import time import cv2 from email.mime.image import MIM

  • Python简单实现控制电脑的方法

    本文实例讲述了Python简单实现控制电脑的方法.分享给大家供大家参考,具体如下: 1.windows 下,CMD的一些命令: dir:列出当前的所有文件 time:打印当前的时间 tree:列出当前目录下的子结构 在cmd中进入了某种模式,退出可以尝试以下命令:q .exit().Ctrl+c.Ctrl+z 运行程序:在cmd里面直接输入程序名称.如:notepad.calc 按tab键可以补全名字 在一个文件夹下,想快速打开cmd: 按住shift键,在鼠标点击右键,可以看见命令. 想在cm

随机推荐