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

Leo
Leo
发布时间:2026-10-14| 4人浏览过
原创

本文介绍如何使用Python通过邮件实现手机对电脑的远程控制与监控。核心原理包括利用imbox模块读取指定主题邮件,根据邮件内容执行关机或截图操作。文章详细讲解了读取邮件、使用PIL模块截图发送以及执行系统命令的具体代码实现,帮助开发者快速搭建简易远程管理工具。

一、前言

在许多场景下,我们需要对电脑进行远程操作。例如,当电脑正在下载文件时,希望下载完成后自动关机;或者需要实时监控某个程序的运行状态等。

本文将使用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手机监控远程控制电脑的相关内容,请搜索本站历史文章或继续浏览后续文章。感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。