Windows 8上的.NET进程失败

时间:2012-05-07 11:57:07

标签: c# process windows-8

我在Windows 8上运行应用程序有两个奇怪的问题(在Windows 7上运行正常)

我正在运行外部“a.exe”应用。

第一个问题是当我使用Process运行“a.exe”时 - 我没有得到任何输出。 如果我运行一个执行“a.exe”并将输出写入文件的批处理文件 - 则有一个输出。

第二个问题是在两种情况下(批处理和处理)“a.exe”失败。但是从命令行开始它就可以了。

以下是代码:

 proc = new Process();
 proc.StartInfo.FileName = Path;
 proc.StartInfo.Arguments = args;
 proc.StartInfo.WorkingDirectory = GetDirectoryName(Path); 
 proc.StartInfo.CreateNoWindow = true;
 proc.StartInfo.RedirectStandardError = true;
 proc.StartInfo.RedirectStandardOutput = true;                
 proc.StartInfo.UseShellExecute = false;
 proc.StartInfo.Verb = "runas administrator";

 proc.OutputDataReceived += (sendingProcess, line) =>
 {
    string s = line.Data;
    if (!string.IsNullOrWhiteSpace(s))
    {
      _sbStdout.AppendLine(line.Data);
    }
 };


 proc.ErrorDataReceived += (sendingProcess, line) =>
 {
    string s = line.Data;
    if (!string.IsNullOrWhiteSpace(s))
    {
       _sbStderr.AppendLine(line.Data);
    }
 };    

 proc.Start();

 proc.BeginOutputReadLine();
 proc.BeginErrorReadLine();

// Wait for exit or timeout   
bool res = true;

if (timeout <= 0 || timeout == null)
   proc.WaitForExit(); 
else
   res = proc.WaitForExit((int)timeout);

ExitCode = proc.ExitCode;

有什么问题?

0 个答案:

没有答案