例如,我知道像素的rgb代码。我想在这个像素上移动鼠标。我试图在pyautogui上这样做。我得到了x, y = pyautogui.position()
pyautogui.screenshot()
和pyautogui.getpixel()
的鼠标位置坐标,但在此之后我想将鼠标移动到这一点,如果鼠标位于远处...
此外,我试图用pyautogui.moveTo(pyautogui.center(pyautogui.locateOnScreen('一些图片'))在屏幕上找到目标,但是屏幕和屏幕截图分辨率存在问题。我家里有24英寸显示器,工作时有20英寸显示器,它们具有不同的分辨率。因此,我的脚本在屏幕截图上找不到对象并返回TypeError: 'NoneType' object is not subscriptable
它显示鼠标在屏幕上的位置。工作正常。
x, y = pyautogui.position()
print(x, y, end='')
在此之后我将鼠标移动到选定的绳索上。工作得很好。
pyautogui.moveTo(x, y, duration = random.randint(2,5))
在此之后我试图模仿leftclick或按键。但它不起作用。
pyautogui.click()
或
pyautogui.keyDown('F')
time.sleep(2)
pyautogui.keyUp('F')
这个方法
def clickleft(x,y):
win32api.SetCursorPos((x,y))
sleep(randint(2,5))
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
time.sleep(0.3)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)
clickleft(x, y)
和键盘
shell.SendKeys("F")
毕竟,我听说我需要DirectInput和硬件密钥代码。所以我试过了。
def PressKey(hexKeyCode):
extra = ctypes.c_ulong(0)
ii_ = Input_I()
ii_.ki = KeyBdInput( 0, hexKeyCode, 0x0008, 0, ctypes.pointer(extra) )
x = Input( ctypes.c_ulong(1), ii_ )
ctypes.windll.user32.SendInput(1, ctypes.pointer(x), ctypes.sizeof(x))
def ReleaseKey(hexKeyCode):
extra = ctypes.c_ulong(0)
ii_ = Input_I()
ii_.ki = KeyBdInput( 0, hexKeyCode, 0x0008 | 0x0002, 0, ctypes.pointer(extra) )
x = Input( ctypes.c_ulong(1), ii_ )
ctypes.windll.user32.SendInput(1, ctypes.pointer(x), ctypes.sizeof(x))
while (True):
PressKey(0x11)
time.sleep(1)
ReleaseKey(0x11)
time.sleep(1)
但我没有结果。它在记事本中工作正常,但在我刚刚启动游戏后,脚本在游戏和记事本中都不起作用。来自Razer或Bloody老鼠的宏工作得很好。但是脚本必须使用
在屏幕上找到一些对象pyautogui.locateOnScreen('C:\\picture.PNG')
可能是python可以...整合鼠标的宏。所以我可以将简单的代码与宏结合起来?我已经安装了Nacro Py,MCPY和其他人,但他们没有文档,我不知道这正是我需要的。