运行通过WindowService执行GUI相关任务的批处理文件

时间:2013-01-31 11:58:28

标签: c# session powershell batch-file windows-services

我知道Windows服务无法运行与GUI相关的任务,因为它不会在操作系统ui sesssion上运行。

我有一个执行PowerShell脚本的批处理文件,此脚本会打开PowerShell控制台等。

当我尝试使用Windows服务运行批处理文件时,没有任何反应。当我尝试使用exe运行此批处理时,它可以工作。如何获得运行此类任务的服务?

1 个答案:

答案 0 :(得分:0)

要详细说明@Henrik的建议,您可以直接从C#执行批处理文件中的命令,这可能有效。

Process cmd = new Process();
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "cmd.exe";
info.RedirectStandardInput = true;
info.UseShellExecute = false;
cmd.StartInfo = info;
cmd.Start();
using (StreamWriter sw = cmd.StandardInput)
{
    sw.WriteLine("echo command1");
    sw.WriteLine("echo command2");
    sw.WriteLine("echo command3");
}