最近心血来潮回归赛尔号(十年铁皮常不请自来)

做剧情任务的时候有个小游戏,拖动黄色的按钮到达终点,白色的是存档点,途中如果碰到墙壁需要对战野怪,打赢了可以从存档点出发,但是由于刚回归,精灵跟不上时代,野怪打不过导致一旦失误只能从头再来

连续试了十几次之后屡屡碰壁,但又舍不得那个体力上限药剂

感谢赛尔号让我知道我有帕金森的预兆_(:з」∠)_

那么有没有一种办法,让鼠标一次只移动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自动化 | 通过键盘控制鼠标来玩赛尔号相关推荐

  1. mfc键盘控制移动鼠标光标_如何在Windows中使用键盘控制鼠标光标

    mfc键盘控制移动鼠标光标 If you're stuck without a mouse temporarily, don't worry-you can still use your PC. Yo ...

  2. python键盘控制_python实现键盘控制鼠标移动

    玩QQ桌球游戏时,有时候用鼠标控制鼠标指针的微小移动比较费劲儿,所以想写个程序,可以用键盘的上下左右键来控制鼠标的移动,每次只移动一个像素. 本脚本依赖pywin32.pyHook和pymouse这两 ...

  3. python的pynput模块控制鼠标、键盘和监听鼠标、键盘事件

    前言 本来在做图形界面时想用监听键盘的方式来实现,快捷键功能的.运用多线程一个线程是运行图形界面,另一个线程监听键盘的动作.可使用的时候发现不太协调,两个进程虽然都能运行但是图形界面会有时卡住,看了文 ...

  4. c++用键盘按键控制光标移动_如何在Windows10中用键盘控制鼠标光标

    如果你的鼠标突然坏掉了,此时找不到替代鼠标,或者你使用的鼠标是电池供电的,此时电量耗尽,那么你可以将键盘配置为鼠标暂时缓解燃眉之急. 设置步骤 键盘鼠标控制功能内置于Windows10中.首先进入设置 ...

  5. win10 java模拟鼠标_[pc玩家]如何在Windows10中用键盘控制鼠标光标

    如果你的鼠标突然坏掉了,此时找不到替代鼠标,或者你使用的鼠标是电池供电的,此时电量耗尽,那么你可以将键盘配置为鼠标暂时缓解燃眉之急. 设置步骤 键盘鼠标控制功能内置于Windows10中.首先进入设置 ...

  6. AHK 键盘控制鼠标点击屏幕不同位置

    按键控制鼠标点击屏幕特定位置 按键控制重设屏幕点击位置 按键显示当前鼠标在屏幕上的位置 V1.0代码功能: 按 A 和 D 分别对应点击两个单独的屏幕坐标 按 Q 和 E分别对应重新设置两个单独的屏幕 ...

  7. python控制鼠标_如何使用Python在Mac中控制鼠标?

    尝试this page的代码.它定义了几个函数,mousemove和mouseclick,它们融合了Apple与Python平台的Quartz库之间的集成. 这段代码适用于10.6,我在10.7上使用 ...

  8. python在mac模拟鼠标点击_如何使用Python在Mac中控制鼠标?

    请尝试this page处的代码.它定义了两个函数mousemove和mouseclick,这两个函数连接到了苹果在Python和平台的Quartz库之间的集成中. 这段代码在10.6上运行,我在10 ...

  9. linux keynav 鼠标可以扔掉了键盘控制鼠标

    我是一个vim用户,喜欢使用键盘操作大部分的事情.无奈现在很多软件从设计之初就是为了鼠标设计的.就导致有些时候不得不使用鼠标.那么退一步讲,能否使用键盘临时控制一下鼠标呢?这样就可以进一步减少鼠标的使 ...

最新文章

  1. Java源码详解五:ArrayList源码分析--openjdk java 11源码
  2. float布局设置同一行行高一样_布局思想:大事化小、先行后列、见缝插针
  3. 【推荐系统】五个工业风满满的 Look-alike 算法
  4. boost::breadth_first_search用法的测试程序
  5. Visual Studio Code设置断点时出现Unverified breakpoint该咋办
  6. 碰撞与鲜血:人类与自动驾驶的坎坷摩擦
  7. HLG 数字去重和排序II【二叉排序树】
  8. STM32 CAN波特率计算程序
  9. SQL 日期函数的使用方法
  10. 汽车故障检测仪计算机教程,如何使用汽车故障诊断仪进行汽车维修
  11. Matter over Wi-Fi: Raspberry Pi 4开发环境设置
  12. OK6410移植UBOOT
  13. 互联网广告行业(01)------ 初识了解DSP、SSP、ADX
  14. 文字生成图片html,根据文字生成图片
  15. CSS——制作三角形
  16. 最全LaTeX 数学公式、字母符号、上下标、列表矩阵、公式注释、分数二进制数、分割字符、逻辑集合论、否定符号等
  17. RT-Thread Nano入门学习笔记(1)
  18. torch.squeeze和torch.unsqueeze
  19. 没有经验该如何转行做产品经理?
  20. Keil uVision5软件的操作与编写基础(入门)

热门文章

  1. Leetcode 006. Z 字形变换 | 每日一题
  2. 使用Pulseview软件辅助verilog数字设计仿真协议解码
  3. Golang实现IP地址匹配
  4. 深度学习分析--TextCNN算法原理及分类实现
  5. 关于注册时验证邮箱,并实现类似安卓的吐丝效果
  6. 这个英文语法校正插件很赞!可以校正邮件,也可以校正论文
  7. 微信小程序修改制作生成头像——校庆头像制作小程序
  8. 当机械人也开始拥有感情‧谁来定义什么才是人类?
  9. [附源码]java毕业设计咖啡销售管理系统-
  10. 峰值电流检测电路设计/自己备忘