接着上面的问题,如果我想跟踪的窗口不是浏览器窗口了,而是改为某个软件的工作窗口,是否可以实现?
时间: 2024-03-03 22:51:28 浏览: 11
是的,你可以修改上述代码,以便它能够跟踪任何一个软件窗口。具体地说,你需要找到你想要跟踪的软件窗口的句柄(handle),然后将这个句柄传递给 `get_window_rect` 函数来获取窗口的位置和大小。
下面是一个修改后的代码示例,它可以跟踪 Notepad++ 软件的工作窗口:
```python
import tkinter as tk
import pyautogui
import win32gui
class DesktopWindow:
def __init__(self, master):
self.master = master
self.master.overrideredirect(True)
self.master.geometry("+0+0")
self.master.attributes('-alpha', 0.5)
self.update_window()
def update_window(self):
try:
# 获取 Notepad++ 软件工作窗口的句柄
hwnd = win32gui.FindWindow(None, "Untitled - Notepad++")
if hwnd != 0:
rect = win32gui.GetWindowRect(hwnd)
x, y, w, h = rect
self.master.geometry(f"{w}x{h}+{x}+{y}")
except Exception as e:
print(e)
self.master.after(100, self.update_window)
if __name__ == '__main__':
root = tk.Tk()
desktop_window = DesktopWindow(root)
root.mainloop()
```
在这个示例代码中,我们使用了 `win32gui` 模块来获取 Notepad++ 软件工作窗口的句柄,并将其传递给 `GetWindowRect` 函数来获取窗口的位置和大小。然后,我们使用 `geometry` 方法来设置桌面窗口的位置和大小。
你可以根据自己的需要修改这个示例代码,以便它能够跟踪你想要的任何一个软件窗口。