Windows 中python程序监控WM_CLOSE消息
时间: 2024-03-12 14:46:41 浏览: 146
在Windows中,可以使用Python的Win32 API扩展来监控WM_CLOSE消息。具体步骤如下:
1. 导入Win32 API扩展:`import win32con, win32api, win32gui`
2. 定义一个回调函数来处理消息:
```
def wndProc(hWnd, message, wParam, lParam):
if message == win32con.WM_CLOSE:
print("收到WM_CLOSE消息")
# 在这里编写处理代码
return True
return win32gui.DefWindowProc(hWnd, message, wParam, lParam)
```
3. 创建一个窗口并设置回调函数:
```
className = "PythonWin32"
wc = win32gui.WNDCLASS()
wc.lpfnWndProc = wndProc
wc.lpszClassName = className
hinst = wc.hInstance = win32api.GetModuleHandle(None)
classAtom = win32gui.RegisterClass(wc)
style = win32con.WS_OVERLAPPEDWINDOW
hwnd = win32gui.CreateWindow(classAtom, "PythonWin32", style,
0, 0, win32con.CW_USEDEFAULT, win32con.CW_USEDEFAULT,
0, 0, hinst, None)
```
4. 进入消息循环: `win32gui.PumpMessages()`
这样,当用户关闭窗口时,就会收到WM_CLOSE消息,并执行回调函数中的处理代码。注意,需要在消息循环中调用`win32gui.PumpMessages()`才能正常接收消息。
阅读全文