Windows 中python程序监控WM_CLOSE消息
时间: 2023-03-05 09:33:35 浏览: 109
在 Windows 中,如果您想要监视 Python 程序是否接收到 `WM_CLOSE` 消息,可以使用 Python 的 `win32api` 模块和 `win32gui` 模块。这些模块提供了 Windows API 的 Python 绑定。
下面是一个简单的示例程序,该程序监视指定窗口句柄是否接收到 `WM_CLOSE` 消息:
```python
import win32api
import win32con
import win32gui
def wndproc(hwnd, msg, wparam, lparam):
if msg == win32con.WM_CLOSE:
print("Received WM_CLOSE message")
return win32gui.DefWindowProc(hwnd, msg, wparam, lparam)
hwnd = win32gui.FindWindow(None, "Window Title")
if hwnd == 0:
print("Window not found")
else:
win32gui.SetWindowLong(hwnd, win32con.GWL_WNDPROC, wndproc)
while True:
try:
win32gui.PumpWaitingMessages()
except KeyboardInterrupt:
break
```
此示例程序在 Windows 上查找标题为 "Window Title" 的窗口句柄,然后将 `wndproc` 函数设置为窗口过程。 `wndproc` 函数检查消息是否为 `WM_CLOSE`,如果是,则打印一条消息。然后,程序使用 `win32gui.PumpWaitingMessages()` 进入一个消息循环,等待消息被发送到窗口过程。
当您关闭窗口时,`WM_CLOSE` 消息将被发送到窗口过程并被检测到,程序将打印一条消息。
请注意,此示例程序仅适用于在 Windows 上运行的 Python 程序。如果您在 Linux 或 macOS 上运行 Python,则需要使用不同的模块和代码来监视窗口消息。