任务计划程序不显示MsgBox

时间:2015-07-24 18:33:33

标签: windows vbscript

我有一个vbscript,我想在用户登录时使用任务调度程序运行。该任务设置为使用SYSTEM帐户运行脚本(我必须使用它,因为UAC已经结束)。

脚本运行正常,但脚本中没有显示消息框。我认为这是因为它在SYSTEM帐户下运行而不是登录用户。

这里有人征服过这个问题吗?我需要脚本在SYSTEM帐户下运行,但我还需要脚本中的MsgBox才能显示。

1 个答案:

答案 0 :(得分:1)

在服务中启用Interactive Services Detection。确保您的任务在其属性中是交互式的。现在,当服务桌面出现一个对话框时,您将看到一个对话框,告诉您要查看。

在以后的操作系统http://blogs.msdn.com/b/patricka/archive/2010/04/27/what-is-interactive-services-detection-and-why-is-it-blinking-at-me.aspx

中似乎略有不同

还可以尝试将0x00200000添加到消息框的标志中。这允许Windows根据“帮助”按预期弹出对话框。这不需要交互式。

  

通过使用MB_SERVICE_NOTIFICATION调用MessageBox函数来显示消息框。建议用于显示简单状态消息。不要在服务初始化期间或从HandlerEx例程调用MessageBox,除非您从单独的线程调用它,以便您及时返回SCM。

#if (_WIN32_WINNT >= 0x0400)
#define MB_SERVICE_NOTIFICATION          0x00200000L
#else
#define MB_SERVICE_NOTIFICATION          0x00040000L
#endif