Python中的服务警报弹窗
我一直在用win32api.MessageBox来做提醒,这在从交互式命令行运行的应用程序和正常执行的代码中都能正常工作。不过,当我创建了一个Python服务时,触发MessageBox时我能听到“嘟”的一声,但对话框却没有显示出来。请问服务中能显示提醒吗?
1 个回答
5
不,Windows服务是在一个完全独立且隐藏的桌面上运行的,它无法访问当前登录用户的桌面。从服务开发者的角度来看,这是没有办法解决的。
在早期的Windows版本中,服务可以被设置为“允许与用户桌面互动”,但这个选项在XP或Vista中被去掉了(我记不清是哪一个了)。现在,服务无法与用户桌面进行互动。
解决你问题的一个办法可能是创建一个桌面应用程序,通过某种进程间通信(IPC)方法与服务进行交流。当服务想要提醒用户某种情况时,它会通知这个桌面应用程序,然后应用程序就会显示一个普通的消息框。