Tkinter透视窗口不受鼠标点击的影响

问题描述 投票:1回答:1

我目前正在通过发送鼠标和击键命令来用python控制游戏。我要做的是在游戏上方放置一个透明的Tkinter窗口,以提供一些信息,例如鼠标位置和像素颜色。

我熟悉更改窗口的alpha属性以使其透明,但不知道如何始终将窗口置于前面并让鼠标单击通过。

我目前控制游戏的方法包括在某些位置截屏并分析颜色内容。我还需要一些方法来做到这一点,而不会干扰Tkinter窗口。

Pyscreenshot用于屏幕截图win32api用于单击

谢谢,亚历克

python tkinter controls mouse alpha-transparency
1个回答
1
投票

您可以使用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

© www.soinside.com 2019 - 2024. All rights reserved.