根据这些文档,pythoncom.PumpMessages():
泵送当前线程的所有消息,直到WM_QUIT消息.
因此,停止收集消息的一种方法是使用ctypes库将WM_QUIT消息发送到消息队列以调用PostQuitMessage:
ctypes.windll.user32.PostQuitMessage(0)
Run Code Online (Sandbox Code Playgroud)
以下是使用计时器线程退出应用程序的示例:
import win32api
import win32con
import pythoncom
from threading import Timer
main_thread_id = win32api.GetCurrentThreadId()
def on_timer():
win32api.PostThreadMessage(main_thread_id, win32con.WM_QUIT, 0, 0);
t = Timer(5.0, on_timer) # Quit after 5 seconds
t.start()
pythoncom.PumpMessages()
Run Code Online (Sandbox Code Playgroud)
PostQuitMessage()将仅从主线程工作,但然后主线程被阻止,所以它本身不是很有用.只有在将自己的自定义消息处理挂钩到消息循环中时,才能使用它.
| 归档时间: |
|
| 查看次数: |
5219 次 |
| 最近记录: |