任务调度程序不显示MsgBox



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

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

有人解决了这个问题吗?我需要脚本在SYSTEM帐户下运行,但我也需要脚本中的MsgBox来显示。

In services打开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添加到消息框的标志中。这允许窗口弹出对话框,如您所期望的根据帮助。这并不需要交互式

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

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

最新更新