【发布时间】:2010-10-04 07:41:15
【问题描述】:
我的问题类似于Running a CMD or BAT in silent mode,但有一个额外的限制。
如果您在 vbscript 中使用 WshScript.Run,您将无法访问该进程的标准输入/错误/输出流。 WshScript.Exec 让您可以访问标准流,但您不能隐藏窗口。你怎么能有你的蛋糕(隐藏窗户)也吃它(直接访问控制台流)?
我目前正在考虑一个 C++ 可执行文件,它可以创建一个新的 Windows Station 和 Desktop(请参阅 MSDN)并在该新桌面中运行指定的脚本(我还不是 Window Stations 和 Desktops 方面的专家,所以这个想法可能会被推迟)。
这个想法大致基于Condor 的USE_VISIBLE_DESKTOP 功能,如果禁用该功能,则会在不可见的桌面上运行Condor 作业。我还没有完全弄清楚这是否需要提升特权。
这种方法的权衡是,如果您的脚本阻塞用户输入,它可能会消失在边缘。
有没有人有其他想法?或对上述方法的反馈?
编辑:
此外,我们脚本的目的是设置用户环境,因此作为另一个用户运行或作为系统计划任务运行并不是一个真正的选择(除非有我不知道的聪明技巧)。
【问题讨论】:
标签: scripting batch-file cmd