Python自动化 | 通过键盘控制鼠标来玩赛尔号
最近心血来潮回归赛尔号(十年铁皮常不请自来)
做剧情任务的时候有个小游戏,拖动黄色的按钮到达终点,白色的是存档点,途中如果碰到墙壁需要对战野怪,打赢了可以从存档点出发,但是由于刚回归,精灵跟不上时代,野怪打不过导致一旦失误只能从头再来
连续试了十几次之后屡屡碰壁,但又舍不得那个体力上限药剂
感谢赛尔号让我知道我有帕金森的预兆_(:з」∠)_
那么有没有一种办法,让鼠标一次只移动1-2个像素,来一点一点地移动,避免撞墙失误呢?
随后想起来可以用Python写一个键盘控制鼠标移动的程序,来进行“微操”
而PyAutoGUI这个库可以比较方便地实现这个功能
推荐阅读→PyAutoGUI——自动化控制鼠标和键盘操作
一、环境配置
IDE:Pycharm
第三方库:pynput、PyAutoGUI
二、按键监听
既然要用键盘操控鼠标,那么就要知道键盘按下了什么键,可以使用pynput这个库里的listener模块
(其实pynput也可以实现对键盘和鼠标的控制,但PyAutoGUI可以根据鼠标的相对位置来移动,比较方便一些
那么一个简单的键盘监听功能就写好了
from pynput.keyboard import Listenerdef press(key):print(key) #输出键位def start_listen():with Listener(on_press=press) as listener:listener.join()#监听键盘按键if __name__ == '__main__':start_listen()
运行后就能输出当前按下的键位了
三、鼠标控制
初步要实现的功能:
1.通过键盘的上下左右键来移动鼠标位置
在pyautogui中通过以下方式来实现移动鼠标位置
pyautogui.moveRel(x,y,duration = t) #相对于当前位置移动光标,#这里的x,y不再是目标位置的坐标,而是偏移量,#如,pyautogui.moveRel(100,0,duration=0.25)#表示光标相对于当前所在位置向右移动100个像素#duration指定鼠标光标移动到目标位置#所需要的秒数,t可以为整数或浮点数,省略duration参数表示#立即将光标移动到指定位置(在PyAutoGUI函数中,所有的duration#关键字参数都是可选的)
2.点击Ctrl键实现拖拽功能(左键保持点击
pyautogui.mouseDown() #按下鼠标按键(左键)
3.点击Alt键释放左键(左键点击后
pyautogui.mouseUp() #释放鼠标按键(左键)
4.通过Esc键终止程序
最终代码:
import pyautogui
from pynput.keyboard import Listener#保护措施,避免失控
pyautogui.FAILSAFE = True
#为所有的PyAutoGUI函数增加延迟。默认延迟时间是0.1秒。
pyautogui.PAUSE = 0def press(key):print(str(key))K = str(key)if(K == 'Key.esc'):exit()elif(K == 'Key.ctrl_l'):pyautogui.mouseDown()elif (K == 'Key.alt_l'):pyautogui.mouseUp()elif (K == 'Key.up'):pyautogui.moveRel(0,-2, duration=0.0)elif (K == 'Key.down'):pyautogui.moveRel(0,2, duration=0.0)elif (K == 'Key.left'):pyautogui.moveRel(-2,0, duration=0.0)elif (K == 'Key.right'):pyautogui.moveRel(2,0, duration=0.0)def startListener():with Listener(on_press = press) as listener:listener.join()if __name__ == '__main__':startListener()
一通小心翼翼的操作之后,终于过去了。。
后续预告:PyQt5实现GUI界面 ,同时将键鼠控制功能以及连点器加入进去(咕
Python自动化 | 通过键盘控制鼠标来玩赛尔号相关推荐
- mfc键盘控制移动鼠标光标_如何在Windows中使用键盘控制鼠标光标
mfc键盘控制移动鼠标光标 If you're stuck without a mouse temporarily, don't worry-you can still use your PC. Yo ...
- python键盘控制_python实现键盘控制鼠标移动
玩QQ桌球游戏时,有时候用鼠标控制鼠标指针的微小移动比较费劲儿,所以想写个程序,可以用键盘的上下左右键来控制鼠标的移动,每次只移动一个像素. 本脚本依赖pywin32.pyHook和pymouse这两 ...
- python的pynput模块控制鼠标、键盘和监听鼠标、键盘事件
前言 本来在做图形界面时想用监听键盘的方式来实现,快捷键功能的.运用多线程一个线程是运行图形界面,另一个线程监听键盘的动作.可使用的时候发现不太协调,两个进程虽然都能运行但是图形界面会有时卡住,看了文 ...
- c++用键盘按键控制光标移动_如何在Windows10中用键盘控制鼠标光标
如果你的鼠标突然坏掉了,此时找不到替代鼠标,或者你使用的鼠标是电池供电的,此时电量耗尽,那么你可以将键盘配置为鼠标暂时缓解燃眉之急. 设置步骤 键盘鼠标控制功能内置于Windows10中.首先进入设置 ...
- win10 java模拟鼠标_[pc玩家]如何在Windows10中用键盘控制鼠标光标
如果你的鼠标突然坏掉了,此时找不到替代鼠标,或者你使用的鼠标是电池供电的,此时电量耗尽,那么你可以将键盘配置为鼠标暂时缓解燃眉之急. 设置步骤 键盘鼠标控制功能内置于Windows10中.首先进入设置 ...
- AHK 键盘控制鼠标点击屏幕不同位置
按键控制鼠标点击屏幕特定位置 按键控制重设屏幕点击位置 按键显示当前鼠标在屏幕上的位置 V1.0代码功能: 按 A 和 D 分别对应点击两个单独的屏幕坐标 按 Q 和 E分别对应重新设置两个单独的屏幕 ...
- python控制鼠标_如何使用Python在Mac中控制鼠标?
尝试this page的代码.它定义了几个函数,mousemove和mouseclick,它们融合了Apple与Python平台的Quartz库之间的集成. 这段代码适用于10.6,我在10.7上使用 ...
- python在mac模拟鼠标点击_如何使用Python在Mac中控制鼠标?
请尝试this page处的代码.它定义了两个函数mousemove和mouseclick,这两个函数连接到了苹果在Python和平台的Quartz库之间的集成中. 这段代码在10.6上运行,我在10 ...
- linux keynav 鼠标可以扔掉了键盘控制鼠标
我是一个vim用户,喜欢使用键盘操作大部分的事情.无奈现在很多软件从设计之初就是为了鼠标设计的.就导致有些时候不得不使用鼠标.那么退一步讲,能否使用键盘临时控制一下鼠标呢?这样就可以进一步减少鼠标的使 ...
最新文章
- Java源码详解五:ArrayList源码分析--openjdk java 11源码
- float布局设置同一行行高一样_布局思想:大事化小、先行后列、见缝插针
- 【推荐系统】五个工业风满满的 Look-alike 算法
- boost::breadth_first_search用法的测试程序
- Visual Studio Code设置断点时出现Unverified breakpoint该咋办
- 碰撞与鲜血:人类与自动驾驶的坎坷摩擦
- HLG 数字去重和排序II【二叉排序树】
- STM32 CAN波特率计算程序
- SQL 日期函数的使用方法
- 汽车故障检测仪计算机教程,如何使用汽车故障诊断仪进行汽车维修
- Matter over Wi-Fi: Raspberry Pi 4开发环境设置
- OK6410移植UBOOT
- 互联网广告行业(01)------ 初识了解DSP、SSP、ADX
- 文字生成图片html,根据文字生成图片
- CSS——制作三角形
- 最全LaTeX 数学公式、字母符号、上下标、列表矩阵、公式注释、分数二进制数、分割字符、逻辑集合论、否定符号等
- RT-Thread Nano入门学习笔记(1)
- torch.squeeze和torch.unsqueeze
- 没有经验该如何转行做产品经理?
- Keil uVision5软件的操作与编写基础(入门)