我有一个vbscript,我想在用户登录时使用任务调度程序运行。该任务设置为使用SYSTEM帐户运行脚本(我必须使用它,因为UAC已经结束)。
脚本运行正常,但脚本中没有显示消息框。我认为这是因为它在SYSTEM帐户下运行而不是登录用户。
这里有人征服过这个问题吗?我需要脚本在SYSTEM帐户下运行,但我还需要脚本中的MsgBox才能显示。
答案 0 :(得分:1)
在服务中启用Interactive Services Detection
。确保您的任务在其属性中是交互式的。现在,当服务桌面出现一个对话框时,您将看到一个对话框,告诉您要查看。
还可以尝试将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