我目前正在通过发送鼠标和击键命令来用python控制游戏。我要做的是在游戏上方放置一个透明的Tkinter窗口,以提供一些信息,例如鼠标位置和像素颜色。
我熟悉更改窗口的alpha属性以使其透明,但不知道如何始终将窗口置于前面并让鼠标单击通过。
我目前控制游戏的方法包括在某些位置截屏并分析颜色内容。我还需要一些方法来做到这一点,而不会干扰Tkinter窗口。
Pyscreenshot用于屏幕截图win32api用于单击
谢谢,亚历克
您可以使用SetWindowLong
模块的win32gui
功能。如果您想要透明的点击后进入窗口,则仅在我们的窗口中应用GWL_EXSTYLE
。因此,您需要Window的windowhandle。
hwnd = win32gui.FindWindow(None, "Your window title") # Getting window handle
# hwnd = root.winfo_id() getting hwnd with Tkinter windows
# hwnd = root.GetHandle() getting hwnd with wx windows
lExStyle = win32gui.GetWindowLong(hwnd, win32con.GWL_EXSTYLE)
lExStyle |= win32con.WS_EX_TRANSPARENT | win32con.WS_EX_LAYERED
win32gui.SetWindowLong(hwnd, win32con.GWL_EXSTYLE , lExStyle )
如果要通过winapi更改窗口的透明度,请使用SetLayeredWindowAttributes
。