python自动按键脚本

1. pyautogui介绍:

​ pyautogui是一个python第三方库,其可以实现自动操作鼠标、键盘等操作,算是一个很装逼的库吧。

​ 安装方法很简单:

pip install pyautogui

2. 基于应用场景的学习:

​ 平时,我打游戏的时候,偶尔会需要不停的点击某个按键,这时候如果可以自动点击这个键,那么我的操作会更加丝滑,因此,我大致学习了一下这个库,这也是我学习这个库的重要原因。除此之外,对于一些重复性的工作,我们也可以写出相应的程序来帮我们解决问题。

​ 另外,由于是基于目的而学习的,因此也不需要其它花里胡哨的功能,能实现需求就是我们的目标。

3. 键盘操作:

​ 主要涉及的三个函数为:

pyautogui.keyDown() : 模拟按键按下

pyautogui.keyUp() : 模拟按键释放

pyautogui.press() : 相当于先按下再释放

​ 这三个函数根据大家自己的需要来选择,这里我选择press,因为按一次游戏会释放一个子弹。

​ 这里,我简单的写了一个代码:

import pyautogui
import time

key = input('请输入需要不停按下的键:')
while True:
    pyautogui.press(key)
    time.sleep(0.5)

​ 结果如下:

在这里插入图片描述

​ 其实,代码是非常容易实现的,但是经过我自己的测试,想要把这个程序在游戏上完美运行,还是很有难度的,可能会遇到多种多样的问题。

​ 由于,我电脑目前只有一个grounded的游戏,我测试了一下按键为a,即要求它自己想左移动,这里失效了,我尝试了用管理员的身份去运行程序也不行。

在这里插入图片描述

​ 我思考了下,觉得是不是我的按键间隔太快,所以没反应,于是我改变了一下程序:

import pyautogui
import time

key = input('请输入需要不停按下的键:')
while True:
    pyautogui.keyDown(key)
    time.sleep(3)
    pyautogui.keyUp(key)

​ 将程序变成了按下一个键一定时间,然后松开,我再尝试一下:

在这里插入图片描述

​ 可以,居然成功了。

​ 于是,我又换了一个游戏,这个游戏是由python语言开发的:

在这里插入图片描述

​ 也成功了。

​ 至此,我们的目的也实现了,以后再遇到类似的情景,我们就可以凭借短短几行代码成功开发一个简易脚本。

### PyAutoGUI 实现鼠标按键自动化 #### 导入模块并初始化安全机制 为了确保在执行自动化过程中可以随时终止程序,建议启用PyAutoGUI的安全失败保护功能。这允许用户通过将鼠标移至屏幕左上角来立即停止任何正在进行的操作。 ```python import pyautogui pyautogui.FAILSAFE = True # 启用Failsafe机制[^4] ``` #### 基础鼠标操作 下面是一个简单的例子展示如何利用`pyautogui`来进行基本的鼠标动作,比如移动到指定位置以及模拟点击行为: ```python def perform_basic_mouse_actions(): position_x, position_y = (100, 100) # 定义目标坐标的X轴和Y轴数值 pyautogui.moveTo(position_x, position_y, duration=0.5) # 移动鼠标指针到(x,y),duration参数定义动画时间长度 pyautogui.click(button='left') # 执行一次左键单击操作[^2] perform_basic_mouse_actions() ``` #### 获取当前屏幕尺寸 了解显示器的实际分辨率对于准确定位元素至关重要。可以通过以下方式查询系统的屏幕大小: ```python screen_width, screen_height = pyautogui.size() # 返回一个元组形式表示宽度与高度 print(f'Screen resolution is {screen_width}x{screen_height}') # 输出屏幕解析度信息 ``` #### 创建更复杂的交互流程 除了基础的功能外,还可以构建更加复杂的应用场景,如响应特定热键组合启动或暂停任务、编写完整的自动化测试套件或是辅助性质的小工具等[^3]。 例如,这里有一个简单版本的任务调度器概念验证代码片段,它能够监听全局快捷键,并据此触发不同的处理逻辑: ```python from pynput.keyboard import Listener as KeyboardListener import threading class TaskScheduler: def __init__(self): self.running = False def start_task(self): print('Task started.') while self.running: pass # 这里放置实际的工作负载 def stop_task(self): print('Task stopped.') self.running = False def toggle_state(self, key=None): if not hasattr(key, 'char'): return char_lower = str.lower(getattr(key, 'char', '')) if char_lower == 'a' and self.running: self.stop_task() elif char_lower == 's': self.running = True thread = threading.Thread(target=self.start_task) thread.daemon = True thread.start() scheduler = TaskScheduler() with KeyboardListener(on_press=scheduler.toggle_state) as listener: try: listener.join() except KeyboardInterrupt: scheduler.stop_task() ``` 此段代码展示了怎样结合`pynput`库捕捉键盘事件,并依据这些输入改变内部状态以控制后台线程的行为模式。请注意,这段代码仅作为一个教学案例存在;真实环境中应当考虑更多细节因素,像多线程同步问题、异常捕获等等。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值