python控制鼠标_如何用python实现真实的鼠标移动?

可以尝试用pyautogui库

import pyautogui

pyautogui.moveTo(x, y, duration=1)

其中moveTo方法将鼠标移动到屏幕上(x, y)坐标,duration参数是移动的时间,比如duration=1就是用一秒时间移动到x, y坐标

其实pyautogui也可以实现其它很多有意思的操作,具体的可以参考官方文档:Welcome to PyAutoGUI’s documentation!​pyautogui.readthedocs.io

希望可以帮上忙!

更新!关于如何在定位屏幕上的内容:

比如我们要实现知乎模拟点赞的效果,首先需要将点赞按钮截图(只能截不带数字的那一半,因为数字会变),然后保存为bmp格式。

随后将截图放在与脚本同目录下,输入下面的代码

import pyautogui

coo = pyautogui.locateCenterOnScreen("agree.bmp")

pyautogui.click(coo[0], coo[1])

其中locateCenterOnScreen函数查找传入图片在屏幕上的坐标,并返回图片的中心坐标值。若屏幕上有多个匹配,这个函数只返回第一个找到的图片坐标,如果没有找到,返回None。所以为了稳妥,还应该加上if语句判断一下。随后利用坐标就可以实现点击了。

当然如果需要找到屏幕上所有的目标,可以使用locateAllOnScreen函数。

import pyautogui

coos = pyautogui.locateAllOnScreen("agree.bmp")

for i in coos:

print(i)

返回值:

(242, 398, 77, 34)

(242, 839, 77, 34)

返回值前两个是图片左上角的xy坐标,后两个值是图片x和y轴长度

这样直接全屏幕搜索效率往往会很低,但若我们知道目标对象所在屏幕的大致区域,可以先用截屏函数截取相应区域,再用区域搜索函数找到目标,代码如下:

import pyautogui

area = pyautogui.screenshot(region=(214, 382, 1033, 649))

coo = pyautogui.locate("agree.bmp", area)

print(coo)

结果:

(28, 16, 77, 34)

解释一下:screenshot函数支持屏幕截屏,并把截图赋值到area上。定义了region参数后,可以实现区域截图。region的前两个参数是截图区域左上角坐标,后两个参数是区域右下角坐标。

locate函数接受两个参数,第一个是我们需要找的目标图片,第二个是寻找目标的范围图片。若找到目标,会返回目标在范围图片上的相对坐标,结果中的(28, 16)就是点赞按钮在区域截图上的坐标。

所以为了获得目标的真实屏幕坐标,需要在x和y上分别加截图区域左上角的坐标xy值

x, y = coo[0] + 214, coo[1] + 382

print(x, y)

结果:

242 398

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/244499.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js与c语言效率_JavaScript控制流及关键字与C语言之比较

学习JavaScript控制流及关键字概念前,对有过C语言学习经验的同学来说,那么关键字,控制语句概念并不陌生。我们先来看看C语言吧:C语言的32个关键字和9种控制语句9种控制语句:if、if-else、while、do-while、for、switch…

大学计算机用的笔记本,推荐一款大学生用笔记本电脑

现在的大学生,基本上都会购买一台适合适合自己的电脑。但是市面上那么多品牌,要怎么选择呢?下面是小编整理的详细内容,一起来看看吧!大学生用笔记本电脑推荐一、惠普ENVY 13这款惠普笔记本电脑只有13英寸,外…

数字图像处理技术详解程序_大学专业详解系列135——数字媒体技术(工学学士)...

数字媒体技术(工学学士)毕业生应具备的知识和能力(1)系统掌握数字媒体技术专业的基本理论、基础知识和基本技能;(2)掌握数字影视技术、数字影视制作技术的理论与方法,能熟练运用拍摄、编辑、特效制作等技巧创作数字影视作品;(3)掌握网络传播的…

乐高收割机器人_乐高圣诞45002作品来啦!——驯鹿拉雪橇、圣诞树、圣诞棒棒糖...

圣诞节快乐圣诞系列作品第五弹来袭大家好我是zfeng老师,今天我们继续来圣诞节系列作品吧!有粉丝朋友留言说希望出一起用百变工程系列积木搭建的圣诞主题作品,今天它来了,wedo、ev3的作品也已经安排接下来会陆续更新。闲话不多说啦…

w7系统关闭打印服务器,w7打印后台处理程序服务总是自动停止如何解决【照片】...

今天我要向您介绍的是,此w7打印后台处理程序服务始终会自动停止. 怎么解决呢?如何解决此问题,我将向您介绍具体的解决方案.计算机系统推荐下载: 雨林木风win7系统下载具体解决方案:1. 打印机服务启动设置开始打印服务要启动和查看打印服务&am…

python下载文件加上日期_python拷贝文件夹中特定日期内的文件

需求:遍历一个文件夹,将其中修改日期在2015-02-01——2015-02-20之间的文件拷贝出来,并且拷贝出来的文件要保持原来的目录结构。 实现代码(python3.3): # encoding: utf-8 import os import shutil import time time0 "2015…

core webapi缩略图_netcore 图片缩略图

2019-05-09 10:27:01,330 线程ID:[80] 日志级别:ERROR 出错类:WebApp.HttpGlobalExceptionFilter property:[(null)] - 错误描述:System.TypeInitializationException: The type initializer for System.DrawingCore.GDIPlus threw an except…

域服务器怎么修改管理员密码,域服务器更改客户端管理员的密码

域服务器更改客户端管理员的密码 内容精选换一换管理员应定期修改Kerberos管理员“kadmin”的密码,以提升系统运维安全性。修改此用户密码将同步修改OMS Kerberos管理员密码。已在集群内的任一节点安装了客户端,并获取此节点IP地址。cd /opt/hadoopclien…

.classpath文件有什么用_干货分享:Windows目录结构剖析,C盘目录常见文件夹都有什么用?...

我们天天和文件夹打交道,但是有好多的碍眼的文件夹我们能不能删除呢,来看看今天的文章。先问一个问题,你对你电脑的文件系统了解多少?很多人只管用,但是有些时候,想要自己清理一下文件的时候,不…

zbrush常用笔刷_【建模】新手入门必学,ZBrush中常用笔刷简介!

原标题:【建模】新手入门必学,ZBrush中常用笔刷简介!单击左托盘的笔刷图标,弹出一个笔刷库,其中有许多常用笔刷,这也是许多初学者所头疼的问题,zbrush的笔刷非常多,而且功能很强大&a…

手机型号云服务器,手机型号查询接口

手机型号查询接口 内容精选换一换通过调用云手机服务提供的接口,您可以完整地使用云手机的所有功能。例如查询云手机列表、重启云手机、为云手机推送文件。华为云帮助中心,为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问…

python counter_教你Python的collections.Counter类型

collections.Counter 类型可以用来给可散列的对象计数,或者是当成多重集合来使用 —— 多重集合就是集合里的元素可以出现多次1。collections.Counter 类型类似于其它编程语言中的 bags 或者 multisets2。(1)基本用法counter collections.Counter([生物, 印记, 考古…

华为云classroom应用_华为任正非:将来所有应用都会长在云土地上,但现在还不是...

IT之家1月1日消息 昨日,华为心声社区公开了任正非 11 月 4 日在企业业务及云业务汇报会上的讲话。任正非表示,将来所有应用都会长在云土地上,但现在还不是,如何建成 “黑土地”是华为努力的任务,应一步一步来。IT之家了…

关闭文件夹或打印机共享服务器,局域网共享打印机好用,但文件夹不能访问

(1)NWlink IPX/SPX/NetBIOS Compatible Transport Protocol协议。本协议已经安装就绪,没有问题。(2)开启guest账号:右击我的电脑\管理\用户有个guest,双击之去掉“账户已停用”前面的勾。本设置最初没有开启,将其开启。(3)统一各计…

java不同进程的相互唤醒_Java线程生命周期与状态切换

前提最近有点懒散,没什么比较有深度的产出。刚好想重新研读一下JUC线程池的源码实现,在此之前先深入了解一下Java中的线程实现,包括线程的生命周期、状态切换以及线程的上下文切换等等。编写本文的时候,使用的JDK版本是11。Java线…

32查运行内存的map文件_linux内存管理

概念先行先理解内存管理中的几个概念:内存,主存,缓存,外存,虚拟内存,物理内存,虚拟地址,物理地址外存:计算机的外部存储,比如硬盘(机械硬盘、固态硬盘、混合硬盘)&#x…

react usecontext_鬼才!我居然把 Vue3 的原理用到了 React 上?

前言vue-next是Vue3的源码仓库,Vue3采用lerna做package的划分,而响应式能力vue/reactivity被划分到了单独的一个package中。如果我们想把它集成到React中,可行吗?来试一试吧。使用示例话不多说,先看看怎么用的解解馋吧…

微信多开txt_在电脑上怎么实现微信多开的效果

现在越来越多的年轻人在电脑办公的时候,不止有一个微信号,由于工作、家庭等各方面因素,想自己能在一个电脑上打开多个微信怎么办?下面小编就把自己的所学分享给大家一.首先在电脑桌面上新建一个txt文本文件,把这个文档…

vue slot scope使用_20、slot插槽的用法

重点:单个插槽、具名插槽、作用域插槽的用法;访问插槽的方法。其实本小白对插槽理解的还不深,哪些场景会经常用到插槽也不了解。但是本着“大胆猜测”的理念,我的猜测如下:假设有 父组件A,有 子组件B、子组…

python工作目录_如何使用python 3获取当前工作目录?

When I run the following script in IDLE import os print(os.getcwd()) I get output as D:\testtool but when I run from cmd prompt, I get c:\Python33>python D:\testtool\current_dir.py c:\Python33 How do I get same result which I got using IDLE ? 解决方案 …