用python控制键盘_【python黑科技-pyautogui】教你用python控制滑鼠与键盘

今天来聊聊python中非常酷炫的功能,

控制滑鼠与键盘,

理论上,如果你程序功力非常强的话,

甚至可以用这个模组写出一个「游戏插件」,

让程序操控你的滑鼠与键盘帮你玩游戏

本文测试环境: anaconda, spyder, python3.7

安装

pyautogui并非内建模组,

需要用pip install pyautogui安装

注意事项

由于你把滑鼠与键盘交给电脑控制,

程序逻辑需小心撰写,

避免自己不小心就无法控制自己的滑鼠

安全措施:

在程序内加上

pyautogui.PAUSE = 3

使程序每次使用pyautogui的函数前暂停三秒再执行,

在暂停三秒的期间快速移动滑鼠关掉程序

一、滑鼠篇

取得滑鼠座标

import pyautogui

import time

width, height = pyautogui.size() # 取得萤幕宽度、高度

print(width, height)

#每隔一段时间取得滑鼠座标

for i in range(20):

time.sleep(1) # 暂停一秒

xloc, yloc = pyautogui.position() # 获得滑鼠游标

print(xloc,yloc, end='\r', flush= True)

程序的意思是先取得自己电脑的萤幕宽度、高度,

然后在for迴圈中,

每隔一秒钟印出你现在的滑鼠座标

移动滑鼠

要移动滑鼠有moveTo和moveRel两种方法,

分别指定滑鼠是以「绝对位置」还是「相对位置」

两个实例(duration参数设置移动的时间):

绝对位置

"""

程序功能: 让滑鼠移到指定位置

"""

import pyautogui

x,y = 300,300

for i in range(3):

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

pyautogui.moveTo(x+1200,y,duration=0.5)

pyautogui.moveTo(x+1200,y+400,duration=0.5)

pyautogui.moveTo(x,y+400,duration=0.5)

相对位置

"""

程序功能: 让滑鼠移动某个位移

"""

import pyautogui

for i in range(3):

pyautogui.moveRel(300,0,duration=0.5)

pyautogui.moveRel(0,300,duration=0.5)

pyautogui.moveRel(-300,0,duration=0.5)

pyautogui.moveRel(0,-300,duration=0.5)

按下滑鼠

用click()可以让滑鼠按下再放开,

基础语法为:click(x, y, button='xxx')(xxx可以是left, middle, 或right,若不指定预设按滑鼠左键)

举例来说:

import pyautogui

pyautogui.click(300, 400, button='right', duration=1)

这个指令可以让滑鼠花一秒钟移动到座标(300, 400)的位置,

然后按下滑鼠右键

click()可以让滑鼠按下再放开的动作,

如果要拆解成「按下」和「放开」两个动作,

可以用mouseDown()和mouseUp()

拖曳滑鼠

若是想要「拖曳滑鼠」(按住滑鼠左键不放,移动滑鼠直到目的地再放开),

可以用dragTo/dragToRel指令,

概念与moveTo/moveRel差不多

二、键盘篇

基础输入的指令为typewrite()(注意不能输出中文),

首先执行程序:

import pyautogui

import time

print("请在5秒内打开记事本并设为焦点视窗")

time.sleep(5) #程序暂停五秒,让你有时间打开记事本

pyautogui.typewrite(['H','e','l','l','o'],0.1) #每隔0.1秒输出一个字

然后打开你电脑上的记事本,

便可以用每隔0.1秒输出一个字的速度打出Hello了

就先简介到这边啦,读者如有兴趣深究,首推参考资料的这本书,

相信应该写的比小马更详细

参考资料

(书本) Python入门迈向高手之路王者归来/ 出版社:深石/ 作者: 洪锦魁

推荐:

okteto终极玩法-改造为"VPS"教程

qqq409640976大佬: 继上一帖子,的初级玩法:https://www.hostloc.com/thread-666705-1-1.html 此教程,可以在okteto上搭建一个接近VPS的c…

【心得】无瑕的程序码

大师说的 BjarneStroustrup 我喜欢我的程序优雅又有效率。 逻辑直截了当,使的错误无处可躲。 尽量降低程序的相依性,以减轻维护上的功夫。 Booch Clean Code是简单又直接明了…

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

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

相关文章

ulimit限制 新系统_Linux查看及修改系统的资源限制命令ulimit

在Linux,查看系统对资源使用的显示可以使用命令ulimit,其中参数-a会列出所有的资源使用限制。[demoserver ~]$ ulimit -acore file size (blocks, -c) 0data seg size (kbytes, -d) unlimitedscheduling priority (-e) 0file size (blocks, -f) unlimite…

华为策略路由加等价路由_华为——防火墙——策略路由配置及思路

华为——策略路由(校园网配置)作用:通过分析数据报的源地址和目标地址,按照策略规则选择不同的网关,进行数据转发。提供冗余,负载,但是还是单线路的速度。只是提供了不同的方向,并没有进行合并线路。拓扑图…

简述数学建模的过程_中文字幕乱码文字2020_MDTM-198加勒比中文字幕合集 - 第5页...

Well, you won’t get one from me.Nah, I never let a lady treat.I try to ease away and create a larger space cushion, but he steps toward me again. I don’t feel threatened by him, however. He’s a big guy, but not menacing. He isn’t trying to bully me wit…

头条自己提问的问题在哪看_在头条的这三十天

文、图:书海履痕今天入头条三十天,按民间俗语,满月了。 三十个日子,真得是感慨万千。特别是昨日的文章,经头条君和各位友友们的厚爱,让我经历了过山车的感觉,各种滋味存于心底,在此谢…

c可以 char* 赋值但是c++不可以_雷佳音的妻子完全可以女团C位出道,这么有气质的女人,谁能不爱...

导读:雷佳音的妻子完全可以女团C位出道,这么有气质的女人,谁能不爱各位点开这篇文章的朋友们,想必都是很高的颜值吧,我们真的是很有缘哦,小编每天都会给大家带来不一样的汽车资讯,如果对小编的文…

【加解密学习笔记:第一天】操作系统基础知识

加解密相关系统基础知识 Unicode编码格式 Unicode编码中使用2字节对字符进行编码,对ASCLL码的支持通过愿为不变,高位补零实现一个字有2字节,Intel在存入储存器时低位入低地址,高位入高地址(Little-endian&#xff09…

oracle sequence 不同 会话 不连续_序列 Sequence

Sequence是一个数据库对象,多个用户可以从中生成唯一的整数,可以使用序列自动生成主键值。生成序列号时,序列号将递增,独立于事务提交或回滚;如果两个用户同时递增同一序列,因为序列号是由另一个用户生成的&#xff0c…

【加解密学习笔记:第二天】动态调试工具OllyDbg使用基础介绍

首先说一下OllyDbg的界面,如下图所示 下面依次介绍: 反汇编面板:有四列,从左到右依次为:地址(Address),机器码(Hex dump),反汇编代码&#xff08…

dmp只导数据不导结构_今日头条快消食品推广CVR为何高达4.40%?原来DMP定向这么好...

摘要:据艾媒报告显示,当前快消品消费在中国居民消费的比重已经占到34.6%,无疑是一支重要力量。虽然消费者的消费能力在不断提升,但快消行业的推广仍多受制于传统模式,应该怎么寻找出路呢?一、企业介绍客户L…

【加解密学习笔记:第三天】OllyDbg断点介绍

INT 3 断点 常用断点,使用“F2”快捷键设置的就是 INT 3 断点。这类断点采用修改机器码的方式,将设断处的代码更改为 “CC”,当程序运行至设断处时,会抛出一个异常,OllyDbg会捕捉到这个异常,使得程序暂停&a…

c# 十六进制转为字节_C# 16进制与字符串、字节数组之间的转换

1.请问c#中如何将十进制数的字符串转化成十六进制数的字符串//十进制转二进制Console.WriteLine("十进制166的二进制表示: "Convert.ToString(166, 2));//十进制转八进制Console.WriteLine("十进制166的八进制表示: "Convert.ToString(166, 8));//十进制转…

SHA-1算法详解和C++实现

SHA-1算法详解和C实现 背景介绍 SHA-1算法也称安全散列算法1,可以将一个最大264−12^{64}-1264−1的数据生成一个160位的数据摘要。尽管SHA-1算法已经被认为不再安全,但仍有部分应用使用SHA-1算法验证文件。 算法原理 类型定义 在介绍算法原理之前&…

python的socket模块_python模块:socket模块

1.Socket类型socket(family,type[,protocal]) 使用给定的地址族,套接字类型,协议编号(默认是0)来创建套接字socket类型描述socket.AF_UNIX只能够用于单一的Unix系统进程间通信socket.AF_INET服务器之间网络通信socket.AF_INET6IPv6socket.SOCK_STREAM流式socket , for TCPs…

完整性校验用到常见的算法_校验数据的完整性,校验数据完整性,使用MD5/SHA算法校...

校验数据的完整性,校验数据完整性,使用MD5/SHA算法校使用MD5/SHA算法校验数据的完整性package cn.itcast.gz;import java.io.File;import java.io.FileInputStream;import java.security.DigestInputStream;import java.security.MessageDigest;/** * 主要用于验证数…

python超市买苹果_官网购买的iPhone12pro还没发货?试着用Python快速入手

引言​iPhone12pro有望成为2020年末真香机,动辄3000元的溢价让不少消费者选择了等待官网调货。除了官方与电商线上平台,苹果还采用了线下预约制提货。但每天少的可怜的出货量,和不到一秒钟就抢空的预约名额让“老年人”手速的各位望而却步。传…

server多列转行 sql_sql server 行转列及列转行的使用

在我们使用的数据库表中经常需要用到行列互相转换的情况,使用sql 的关键词 UNPIVOT(列转行)和PIVOT(行转列)可轻松实现行列转换。一、列转行:员工月份排班表存储是采用1号~31号作为列的方式进行存储的现通过 UNPIVOT 将每天的班次用行进行展示&#xff0…

git 拉取远程其他分支代码_git切换远程分支并拉取远程分支代码

Git一般有很多分支,我们clone到本地的时候一般都是master分支,那么如何切换到其他分支呢?主要命令如下:1. 查看远程分支$ git branch -a我在mxnet根目录下运行以上命令:~/mxnet$ git branch -a* master可以看到&#x…

python登录豆瓣_python登录豆瓣,发帖

学习了urllib、urllib2及cookielib常用方法的使用登录豆瓣,由于有验证码,采取的办法是将验证码图片下载到同目录下,查看图片后输入验证码即可登录、发帖帖子内容写死在代码中了[Python]代码# -- coding:gbk --import sys, time, os, reimport…

ios 代码设置控件宽高比_ios-自动布局以保持视图大小比例

我正在努力实现以下目标:我的xib中有2个视图,需要使边缘(两侧和顶部)保持20像素需要调整大小的2个视图的大小不同它们必须相隔20像素它们的宽度需要相对于父视图的宽度保持不变我阅读了有关执行此操作的教程,但是它的工作原理是,它…

echarts 在两点之间画一条线_树的手绘很难画?分步骤教你画,简单易学,收藏起来临摹学习...

前景树——半树、角树画法半树与角树,在建筑手绘中常处于前景位置,其表现需尽量写意,形体概括,对比强烈,进而更好地引导与突出中景。(1)半树半树,顾名思义只需画出单棵树从树冠中下部…