【问题标题】:Starting process (one console application from another)启动进程(一个控制台应用程序来自另一个)
【发布时间】:2012-05-04 06:55:28
【问题描述】:

有谁知道为什么我在尝试从另一个控制台应用程序启动一个控制台应用程序时会收到此错误(不是每次但有时)。 错误:

System.ComponentModel.Win32Exception (0x80004005):未知错误 (0xffffffffe) 在 System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) 在 System.Diagnostics.Process.Start()

这是我的代码:

System.Diagnostics.Process myProc = new System.Diagnostics.Process();
try
{
    myProc.StartInfo.FileName = @"C:\MyFolder\MyExecutableApplication.exe";
    myProc.Start();
    myProc.WaitForExit();
    procesResult = myProc.ExitCode;
}
catch (Exception ex)
{
    cLog.WriteLog("problem", ex.ToString(), myConfig.LogPath);
}
finally
{
    if (myProc != null)
    {
        myProc.Close();
    }
}

谢谢

【问题讨论】:

  • 您确定 MyExecutableApplication.exe 工作正常吗?它需要一些参数还是从特定的工作文件夹开始?
  • 它不需要任何参数,当我手动启动它时一切正常,使用此代码也可以正常工作,但有时我会收到上面的错误:(

标签: c# visual-studio-2010


【解决方案1】:

我猜是权限问题。 试试这个

myProc.StartInfo.UseShellExecute = false;
myProc.StartInfo.RedirectStandardOutput = true;
myProc.StartInfo.RedirectStandardError = true;

来自comments的参考

【讨论】:

    【解决方案2】:

    这似乎是一个权限提升问题(虽然我不知道您有时会收到错误的原因);尝试添加;

    myProc.StartInfo.Verb = "runas";
    

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。尝试关闭UAC 并将异常添加到windows defender(或其他安全工具)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-10-24
        • 2023-04-02
        • 1970-01-01
        • 1970-01-01
        • 2019-01-30
        • 1970-01-01
        相关资源
        最近更新 更多