python - 我使用 pyautogui 为 CS:GO 创建了一个 python 绑定,但它不起作用
问题描述
我创建了一个简单的绑定脚本。它适用于 IDLE Python,但不适用于 CS:GO。你知道为什么吗?
也许它必须在后台才能工作?
import keyboard
import pyautogui
import time
def EventListen():
while True:
try:
if keyboard.is_pressed('n'):
pyautogui.press('`')
pyautogui.typewrite('say EZ')
pyautogui.press('enter')
pyautogui.press('`')
EventListen()
except:
EventListen()
EventListen()
解决方案
我认为没有必要使用pyautogui
,因为您已经在使用keyboard
它足以执行您需要的任务。我对您的代码进行了一些更改
import time
import keyboard
def EventListen():
while True:
try:
if keyboard.is_pressed('n'):
keyboard.press('`')
keyboard.write('say EZ')
keyboard.press('enter')
keyboard.press('`')
elif keyboard.is_pressed('/'): #add something to end the process
break
except:
EventListen()
time.sleep(0.001)
EventListen()
无需在 while 循环中调用该函数,因为它无论如何都会无限执行,除非您终止该进程。我不明白为什么脚本不会在后台运行,事实上我正在输入这个
n`say EZ
`
使用脚本。可能的情况是您之前的程序连续运行,导致 CPU 使用率过高,这可能与游戏的需求竞争。我建议您在 while 循环的每次迭代之前添加一个小延迟,在这种情况下,我添加了 1 毫秒的延迟,这将导致 CPU 使用率显着降低。我不确定这是否解决了您的问题,因为我无法重现您的确切情况,如果有帮助,请告诉我。
编辑:我忘了提,我添加了另一个绑定,它将使程序跳出循环,因此在按下键keyboard.is_pressed('/')
时终止它。/
您可以根据需要更改此设置。如果您不想要任何其他绑定(我不推荐),那么您可以依靠手动终止任务。
推荐阅读
- python - 如何将python3程序转换成python2.7程序
- c# - 在Android中解密从.net生成的RSA加密值
- angular - 保存表单数据后缺少文件文档附件
- python - 如何使用 monkeypatch 测试没有返回的函数
- css - 在 Blazor 中为主题设置“深度”CSS 变量
- excel - 如何使用单元格的值(字符串)作为 Excel 中公式的一部分(不在宏中)?
- php - Facebook Webhook Url 验证在 botman studio 上返回附加字符串
- c# - 在 Xamarin.Forms 应用程序中嵌入 PowerBI 报告
- python - 如何在 PYTHON 中打开文件并使用正则表达式修改其内容以查找/匹配/替换模式
- ruby-on-rails - 对于 CVE-2021-22885,是否只对数组内容有危险?