我有一个python程序,当我使用win32api.py发出警报时,正在运行的程序暂停,即使警报启动,如何使它继续运行?
这是代码示例:
time.sleep(3)
win32api.MessageBox(0,'hello','text')
time.sleep(3)
os.system("TASKKILL /F /IM program.exe")
现在,当涉及到win32api.Mes ...部分时,它将暂停程序,直到我单击“确定”为止,如何防止其暂停?
谢谢!
答案 0 :(得分:0)
如MSDN文档所述,MessageBox
:
显示一个模式对话框,其中包含系统图标,一组按钮以及特定于应用程序的简短消息,例如状态或错误信息。该消息框返回一个整数值,该整数值指示用户单击了哪个按钮。
A modal dialog box旨在阻止您的程序,直到程序被处理为止。这就是它的意思:它将程序置于特殊的“等待用户”模式。
此外,它显然无法返回用户单击的内容,除非等到用户单击某些内容为止。
如果您确实想使用MessageBox
,则可以将其余工作推到另一个线程上,如下所示:
def background():
time.sleep(3)
os.system("TASKKILL /F /IM program.exe")
t = threading.Thread(target=background)
t.start()
time.sleep(3)
win32api.MessageBox(0,'hello','text')
或者,您可以create a modeless dialog,但是这需要将程序的其余部分与win32api事件循环集成。