Ares
Ares
> pydirectinput 就我测试的情况来看 有个问题我没想通 我在windows上测试 游戏里面我使用pyautogui与pydirectinput去模拟按键都不行 如果作者是使用这两个库来模拟按键的话 按道理应该也不行 但是我用录制的点击游戏画面的时候 却能执行成功 这让我有点费解?
> > > pydirectinput > > > > > > 就我测试的情况来看 有个问题我没想通 我在windows上测试 游戏里面我使用pyautogui与pydirectinput去模拟按键都不行 如果作者是使用这两个库来模拟按键的话 按道理应该也不行 但是我用录制的点击游戏画面的时候 却能执行成功 这让我有点费解? > > 你测试作者的程序在游戏中能用吗? 作者代码里面Linux用的是pyautogui,Windows下用的是win32api,不过我测试QQ飞车是用不了。不过我不是很明白为什么Windows下没有选择用pydirectinput,不知道是不是代码在定位像素点或者其他方面遇到有问题。但是我自己写的windows下用pydirectinput在游戏中是可以使用,前提是你执行的时候要用管理员运行程序就没问题。所以你可以试试管理员权限运行,pydirectinput这个库应该是没问题的。 我特意对我的游戏再次测试 开启录制 - 鼠标点击游戏画面任务进行移动 - 结束录制 然后我启动脚本...
> > pyautogui和pydirectinput我都测试过不行 > > 奇怪,`PyAutoGUI`,`PyDirectInput`和`PyWin32`在Windows系统下底层都是通过调用系统api实现操作的吧,下面是我找到的一些资料: > > Windows相关的接口为[mouse_event](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mouse_event), [SendInput](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-sendinput), [keybd_event](https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-keybd_event) [PyAutoGUI](https://github.com/asweigart/pyautogui/blob/b4255d0be42c377154c7d92337d7f8515fc63234/pyautogui/_pyautogui_win.py#L466-L500)和[PyDirectInput](https://github.com/learncodebygaming/pydirectinput/blob/a585d044aed678576fefd24e7ad0c5945ab52366/pydirectinput/__init__.py#L279-L298)分别使用了`cpython`的`ctypes`库给出的`mouse_event, keybd_event`和`SendInput`系统接口 [PyWin32](https://github.com/mhammond/pywin32/blob/1e7016c00d7d888f036b359e83f2cb5dd2a9cbd0/win32/src/win32apimodule.cpp#L5763-L5803)使用了`mouse_event, keybd_event`系统接口 应该没错 windows平台下都是调用系统api实现 我测试的游戏 我发现只是对鼠标屏蔽 部分按键还是可以用 鼠标则当使用驱动级的调用就没问题