python - 为什么 pyautogui 不会在绘图软件中突出显示和使用键盘动作?(这可以解决吗)
问题描述
我正在使用像素工作室来制作一些动画。我能够自动化它。但是,pyautogui 按键和鼠标拖动交互不起作用。点击有效,但拖动以突出显示和键盘箭头按键无效。我在我的桌面上测试了代码——点击和键盘移动和拖动以突出显示所有工作正常,但是一旦我进入绘图系统,只有点击可以。是什么导致了这个问题,有没有办法解决它?谢谢!(代码如下所示供参考)
# auto twitch animation for da rest of it
import pyautogui as pag
import keyboard
# failsafe pls dont mess up
while True:
if keyboard.is_pressed("q"):
break
else:
pag.sleep(3)
# click gear 2355 50
pag.leftClick(2355, 50)
pag.sleep(1)
# clone frame 1131 1039
pag.leftClick(1131, 1039)
pag.sleep(1)
# click layer 2 twice 242 1387
pag.leftClick(242, 1387)
pag.sleep(1)
pag.leftClick(242, 1387)
pag.sleep(1)
# highlight clouds - two right 582 109 - 2414 494 leftClick, dragTo left (x,y,t,button="left)
pag.moveTo(582, 109)
pag.sleep(1)
pag.mouseDown(button="left")
pag.moveTo(2414, 494, 1)
pag.mouseUp(button="left")
pag.sleep(1)
pag.press("right")
pag.sleep(1)
pag.press("right")
pag.sleep(1)
# highlight bottom cloud - two left 1013 973 - 111 803
pag.moveTo(1013, 973)
pag.sleep(1)
pag.mouseDown(button="left")
pag.moveTo(111, 803, 1)
pag.mouseUp(button="left")
pag.sleep(1)
pag.press("left")
pag.sleep(1)
pag.press("left")
pag.sleep(1)
# plane four left 1029 474 - 112 622
pag.moveTo(1029, 474)
pag.sleep(1)
pag.mouseDown(button="left")
pag.moveTo(112, 622, 1)
pag.mouseUp(button="left")
pag.sleep(1)
pag.press("left")
pag.sleep(1)
pag.press("left")
pag.sleep(1)
pag.press("left")
pag.sleep(1)
pag.press("left")
pag.sleep(1)
# plane four right 1450 656 - 2402 821
pag.moveTo(1450, 656)
pag.sleep(1)
pag.mouseDown(button="left")
pag.moveTo(2402, 821, 1)
pag.mouseUp(button="left")
pag.sleep(1)
pag.press("right")
pag.sleep(1)
pag.press("right")
pag.sleep(1)
pag.press("right")
pag.sleep(1)
pag.press("right")
pag.sleep(1)
解决方案
使用 pydirectinput 库。如果其他人有这个问题 - 这是由于 pyautogui 模拟按键和鼠标按钮的旧系统。它使其不适用于某些游戏和程序,尤其是较新的游戏和程序。安装 pydirectinput 库,将其输入到代码中,并将 pyautogui 前缀替换为 pydirectinput。
import pyautogui
import pydirectinput
### instead of pyautogui.press("left") use
pydirectinput.press("left")
推荐阅读
- jquery - 我无法在 jquery 的每个函数中显示多个图像
- typescript - Typescript - 如何访问通过命名空间声明的类?
- node.js - 使用节点的智能合约部署不起作用
- java - Java 中的 Google Sheets API 共享权限
- angular - 角 | 使用生产环境变量启动测试服务器
- ionic-framework - 实用程序 CLI 意外关闭(退出代码 1):Ionic
- notifications - 锁屏通知抖动
- shell - Makefile 没有检测到 Python
- python - 如何更改 Dash (Plotly) 中的语言/区域设置或 Plotly 工具栏的标签?
- google-chrome - 如何正确向 Chrome 提供模拟网络摄像头视频?