【问题标题】:Win32Api Python .SetCursorPos(x,y) how works?Win32Api Python .SetCursorPos(x,y) 是如何工作的?
【发布时间】:2015-12-20 11:41:17
【问题描述】:

你好,我有这个代码

import win32api
from tkinter import *

def Cursor():
    win32api.SetCursorPos(10,10)

root = Tk()
root.geometry("500x500")
root.title("")
root.configure(background="#262626")

PlayButton = Button(root, text="Cursor", command=Cursor ).pack()


root.mainloop()

他给了我这个错误

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python34\lib\tkinter\__init__.py", line 1533, in __call__
   return self.func(*args)
File "C:\Users\filippo\Desktop\Win32.py", line 5, in Cursor
   win32api.SetCursorPos(10,10)
TypeError: SetCursorPos() takes exactly 1 argument (2 given)

为什么?他告诉我我必须输入 1 个参数,但 x 和 y 轴应该是 2

【问题讨论】:

  • 您的错误在第 4 行,win32api.SetCurPos 采用一个元组而不是两个整数。

标签: python windows python-3.x pywin32


【解决方案1】:

将坐标作为元组传递:

def Cursor():
    win32api.SetCursorPos((10,10))

【讨论】:

    【解决方案2】:
    import win32api, win32con
    
    pos_x = 1000
    pos_y = 600
    for x in range(pos_x):
        subt = int(pos_x/50)
        win32api.mouse_event(win32con.MOUSE_MOVED, 2, 0)
        if (x+1) == pos_x - subt:
            break
    
    for x in range(pos_y):
        subt = int(pos_y/50)
        win32api.mouse_event(win32con.MOUSE_MOVED, 0, 2)
        if (x+1) == pos_y - subt:
            break
    

    在 win32api 中,如果您的屏幕尺寸为 1366x768,则位置是不同的,因此在 win32api 中,尺寸为 3000x1687。我尝试使用 win32api 将光标放在给定位置。我使用 win32api 是因为我们可以在 Minecraft 等游戏上控制光标。警告:- 此代码在这里不是 100% 准确 1-2px 加减。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-25
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多