基于Python远程控制电脑
现在很多人手机不离身,手机如何远程控制电脑呢?本文我们通过Python来实现手机远程启动并登陆电脑上的QQ客户端。需要用到几个库(模块):subprocess,pyautogui,smtp以及poplib。subprocess模块用来打开电脑上的应用,pyautogui用来控制鼠标以及发送字符串等,smtp库用来发送邮件,poplib用来收取邮件。
看到这里可能大家可能猜到需要用电子邮件作为手机与电脑建立连接的桥梁,总的来说分为两个步骤,首先用Python实现计算机本地启动打开应用,然后再考虑电子邮件的实现形式。
电脑本地自动启动QQ应用程序并自动登陆
怎么使用Python来实现自动启动电脑上的某个应用呢?平时我们在电脑上登陆QQ需要三个操作步骤:打开QQ客户端,输入账号密码,点击登陆按钮;这三个步骤的实现就用到了Python中的subprocess以及pyautogui模块。利用subprocess模块的Popen()函数可以启动电脑上的应用,首先import该模块,没有安装该模块则需先使用pip安装,在Popen函数中传入应用程序的路径即可启动应用:
打开了QQ之后就需要填写账号密码来登陆了,这里需要用到pyautogui模块。通过观察可以发现,每次打开QQ客户端其登陆界面都是显示在电脑屏幕的固定位置,因此可以这么做:确定账号、密码文本框以及登陆按钮在电脑屏幕中的像素坐标,确定好之后编写Python代码,让Python程序在账号、密码文本框中填入信息,最后点击登陆,这样就实现了自动登陆登陆。
首先需要获取QQ登陆界面中账号,密码文本框的像素坐标,pyautogui中的position方法可以实现获取鼠标所在位置的像素坐标的功能,并以元组的形式返回。由于程序执行很快,为了能有时间将鼠标移动到QQ的账号密码输入框,设置了1秒延时。执行过程如下:
可以看到账号文本框的像素坐标为(881,559),密码文本框的像素坐标为(869,602),除了这种方法还可以通过截图软件FSCapture来获取像素坐标。确定了接收账号密码的位置之后,接下来就是键入信息,使用pyautogui的typewrite()函数发送虚拟按键,在发送前应该先在文本入框执行一次鼠标点击以获取焦点,鼠标点击事件使用click()函数,需要传入点击的像素坐标,默认点击鼠标左键。实现如下:
手机远程控制
接下来实现手机远程控制电脑启动QQ,需要用到poplib库收取邮件以及smtp模块发送邮件(主要做提醒用途)。这里用到popblib模块的POP3_SSL类登陆邮箱管理邮件:
用到smtp模块发送邮件来提醒手机端,QQ已成功启动:
在这期间需要有段程序不断检测最新的邮件,如果邮件主题为启动QQ的关键字(自行设置,这里为startqq),则执行第一部分的代码,同时删除最新邮件防止误执行;如果没有符合的邮件则继续检测,这也是整个程序的核心:
在QQ邮箱发送主题为“startqq”的邮件即可自动启动并登陆QQ:
实现效果如下:
以上为手机远程控制电脑启动应用程序的简单体验,有兴趣获取源码的看官可点击关注后私信“远程控制”获取。
如何用Python远程控制自己的电脑?其实用邮件就可以做到这一点
开发工具
Python版本: 3.6.4
相关模块:
PIL模块;
email模块;
以及一些Python自带的模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
原理简介
一. 思路
电脑每隔一段时间查看指定邮箱中是否收到了新的邮件,若未收到,则不进行任何操作,若收到了,则判断发件人的身份,若发件人为合法的控制者,则解析发件人的邮件,执行解析结果,否则忽略该邮件。
二. 具体实现
(1)收发邮件
我们利用POP3协议来收取邮件,利用SMTP协议来发送邮件,python内置对着两个协议的支持,因此具体实现起来十分简单轻松。
注1:
此处推荐廖雪峰的Python教程,里面有关于收发邮件的详细介绍,我就不搬砖了。
注2:
电脑端邮箱本人使用了新浪邮箱,手机端邮箱本人使用了QQ邮箱。
(2)查看电脑状况
直接利用PIL模块的ImageGrab.grab()函数对电脑进行截屏,然后通过邮件把电脑截屏发送到手机上。
如果想查看模型运行的情况,走之前把模型训练界面显示在桌面上就可以啦~
(3)可扩展性
除了查看电脑状况外,目前仅支持利用cmd命令控制电脑,若需要添加其他功能,可在下图所示的位置上添加:
(4)易用性
cmd命令太长手机上打起来不方便或者记不住怎么办?你可以在word2cmd.json中设置快捷命令语:
(5)FAQ
① 电脑端发送邮件失败?
解决方案:
若电脑端发送的邮件被识别为垃圾邮件使得手机端无法查看电脑状况时,可用手机登陆电脑端使用的邮箱,查看被退回的邮件,这样就可以在手机上查看电脑运行状况了。
注3:
若为手机端邮箱拒收,可以设置一下白名单。
② 电脑端无法登陆邮箱?
解决方案:
你需要开启SMTP和POP3服务:
密码应为客户端授权密码,而非登陆密码。当然新浪邮箱的登录密码即为客户端授权密码。
That's All.
完整源代码请自行参考相关文件。
使用演示
Step1:修改配置文件
必须修改的配置文件为:
config.json。
作用:
设置电脑端和手机端邮箱的信息。手机端邮箱的信息用于验证发信人是否为合法控制电脑者,电脑端邮箱的信息用于电脑端接收和发送邮件。
若需要加密SMTP会话,请设置enable_ssl为true,并设置正确的端口号。
选择修改的配置文件为:
word2cmd.json。
作用:
设置快捷命令语。
Step2:运行Server.py文件
发送指令:
执行指令:
结果:
相关问答
Python怎么样卸载?-ZOL问答
如果d:\的先安装,先将c:\的删除,然后查看系统的环境变量,将环境变量改到d:\python就可以了。要是闲改环境变量麻烦,就直接删除c:\的后,重新安转一下...
java开发用哪种开发工具比较多?
今天我们来详细盘点一下Java开发一般都会用到哪些开发工具。一.开发编程工具1.Eclipse官网地址Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其...
大家编程都用什么编辑器?vim是程序员必学的吗?
摘要:在我认识的所有程序员里,每个人几乎都有专属于自己的常用工具和相关资源,今天给大家奉上数十个程序员硬核工具,我相信这里总有一款工具是属于你的!程...其...
谁能给我说一下,网络推广软件真的好用吗?,网络推广效果好...
[回答]免费IP代理真的“免费”吗?哪个网络加速器好用哪款网络加速器好用哪个加速器比较好用内网ip与外网ip有什么...哪个网络加速器好用哪款网络加速器好...
是不是所有的网络摄像头都有可能被黑客控制?
我告诉你肯定答案:黑客不能控制所有的网络摄像头的。黑客想远程控制摄像头有两个前提条件(能物理接触的极客不算):1、摄像头IP地址暴露在公网里,能远程访问...
esp开发板可以干什么?
1.无线通信:ESP开发板支持Wi-Fi和蓝牙通信,可以用于构建各种无线通信应用,例如远程控制、数据传输等。2.物联网设备连接:ESP开发板可以作为物联网设备,与...
nao机器人是哪个国家的?
NAO机器人是由法国阿尔德机器人公司研发的,该公司于2016年被软银收购,并更名为SoftBankRobotics。NAO机器人是世界上最著名的人形机器人之一,被广泛应用于教...
19年笔记本电脑推荐,价格一万二以内,本人做软件测试工作,以后想从事python或Java开发工作,有什么好的建议吗?
Windows阵营选ThinkPad,Mac阵营没啥好说的。如果想我一样追求极致性能买游戏本,标压i7加1060ti或者2060的显卡,内存一般能扩到32g,硬盘位充足,最好nvme固态...
监理工程师网课有哪些软件..._监理工程师_帮考网
监理工程师网课需要使用的软件包括:1.视频会议软件:如Zoom、Skype、微信、钉钉等,用于远程教学和在线交流。2.屏幕共享软件:如TeamViewer、AnyDes...
学习Java需要安装什么工具?
今天我们来详细盘点一下Java开发一般都会用到哪些开发工具。一.开发编程工具1.Eclipse官网地址Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其...