3

我一直在使用 win32api.MessageBox 发出警报,这适用于从交互式提示运行的应用程序和正常执行的代码,但是当我在触发 MessageBox 时构建 Python 服务时,我可以听到“哔”声,但盒子没有展示。是否可以显示来自服务的警报?

4

1 回答 1

5

不,Windows 服务在完全独立的隐藏桌面上运行,并且无法访问已登录用户的桌面。从服务开发人员的角度来看,这是无法解决的。

在以前的 Windows 版本中,可以将服务标记为“允许与用户桌面交互”,但在 XP 或 Vista 中删除了此选项(我忘了是哪个)。现在,服务无法与用户桌面交互。

您的问题的一种解决方案可能是拥有一个通过某种 IPC 方法与服务通信的桌面应用程序。当服务想要提醒用户某些情况时,它会通知桌面应用程序,然后桌面应用程序会显示一个常规消息框。

于 2008-10-15T08:48:06.653 回答