0

我已经能够使用 Python 并按照本教程创建 Windows 服务: http ://ryrobes.com/python/running-python-scripts-as-a-windows-service/

但是,我尝试在其中实现一个脚本,通过 COM 打开一个新的 Outlook 邮件。该脚本在服务之外工作,但我似乎已将问题追溯到这一行:

obj = win32com.client.Dispatch("Outlook.Application")

进一步研究这一点,Vista 和 Windows 7 中的 UAC 似乎阻止了与用户交互的服务。更多信息 - http://msdn.microsoft.com/en-us/library/windows/desktop/ms683502%28v=vs.85%29.aspx

所以我的问题是:最好的解决方法是什么?我有一个 python 脚本可以在我确保打开它时工作,但是在启动目录中保留一个批处理/cmd 文件似乎有点错误。

提前感谢您的任何想法!

Windows 7 x64(我也受企业组策略的约束。我只有本地管理员权限)

4

1 回答 1

0

您的“更多信息”链接描述了两种可能可以实现的技术:

  • “使用 WTSSendMessage 函数在用户会话中显示一个对话框”
  • “创建一个单独的隐藏 GUI 应用程序并使用 CreateProcessAsUser 函数在交互式用户的上下文中运行该应用程序。...”

但正如这些 答案Simon Mourier的评论中所提到的,最直接的解决方案可能是服务 + 用户会话中的后台进程 + IPC。

此外,如果您尝试通过 Outlook 创建新电子邮件,您可能希望/需要在用户会话中运行的某些内容以获得适当的上下文。

于 2014-06-06T22:42:39.847 回答