基于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写过什么黑魔法?
用python的itchat模块写过一个手机远程控制pc的小程序,微信发命令实现pc打开制定网页或关机的功能。是不是很有趣。代码很简单。点我头像可看到具体实现。用p...
请问学习JAVA软件开发要安装什么软件?
今天我们来详细盘点一下Java开发一般都会用到哪些开发工具。一.开发编程工具1.Eclipse官网地址Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其...
Java编程软件有哪些?你怎么看?
今天我们来详细盘点一下Java开发一般都会用到哪些开发工具。一.开发编程工具1.Eclipse官网地址Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其...
使用PyCharm联接树莓派远程编程-ZOL问答
在使用PyCharm连接树莓派远程编程时,可以采用以下步骤:首先需要在树莓派上安装并配置好SSH服务,并确保在本地的网络设置中能够正常访问到树莓派。2.在PyChar...
想学习黑客技术,在哪里能找到教程?
而且python也是数据分析的第一语言,早点接触是好事。最后,本地安装一个系统环境,请安装好虚拟机,在虚拟机里,你就可以进行攻防演练了。不得不提一句,黑客...同...
谁能给我说一下,网络推广软件真的好用吗?,网络推广效果好...
[回答]免费IP代理真的“免费”吗?哪个网络加速器好用哪款网络加速器好用哪个加速器比较好用内网ip与外网ip有什么...哪个网络加速器好用哪款网络加速器好...
是不是所有的网络摄像头都有可能被黑客控制?
我告诉你肯定答案:黑客不能控制所有的网络摄像头的。黑客想远程控制摄像头有两个前提条件(能物理接触的极客不算):1、摄像头IP地址暴露在公网里,能远程访问...
nao机器人是哪个国家的?
NAO机器人是由法国阿尔德机器人公司研发的,该公司于2016年被软银收购,并更名为SoftBankRobotics。NAO机器人是世界上最著名的人形机器人之一,被广泛应用于教...
易建物联网消防工程师..._消防考试_帮考网
其主要岗位职责如下:-参与物联网消防系统的设计与实施;-对消防设备进行远程监控与维护;-分析和处理消防系统运行数据,优化系统性能;-为客户提供...
斯福赛特:勒索病毒究竟是什么?我们要怎么预防?中了勒索病毒还...
智能控制系统和产品数据、设备数据、研发数据、运营管理数据紧密互联成一个智能网络的新模式,一个全新的安全需求正在产生。1、一、概述勒索病毒并不是什么新鲜...