【发布时间】:2011-11-17 23:13:15
【问题描述】:
嗯,我试图从 Windows 服务产生的线程内部产生一个进程。目标是读取输出并打印到焦点窗口 - 光标所在的位置。可能是个坏主意,我不知道我不是 C# 程序员
当我调用函数本身时,生成进程的任何人都可以工作,但在正在运行的服务中调用它时则不行。是否可以在服务内启动进程?
Process proc = new Process();
proc.StartInfo.FileName = @"C:\file.bat";
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();
String outputMessage = proc.StandardOutput.ReadToEnd();
proc.WaitForExit();
【问题讨论】:
-
这可能与运行该服务的用户的权限有关。这段代码在服务中运行会发生什么你得到任何类型的错误
-
没有错误,它开始正常。什么都没有发生。
-
进程在服务中运行后的 outputMessage 变量中的内容。
-
@stefan,该设置在 Windows Vista 及更高版本上不再存在。服务现在在自己的桌面上运行,无法访问用户桌面。
-
是的,我现在看到了。这一切都进入了XP!谢谢