【问题标题】:Program crashes when starting process.Start() at windows start upWindows 启动时启动 process.Start() 时程序崩溃
【发布时间】:2017-04-10 04:14:22
【问题描述】:

我有 2 个 exe,A.exe 和 B.exe。 A.exe 被添加到注册表的运行键中,以便它在 Windows 启动时启动。 在A的main里面,有这样的代码:

Process pr = new Process(); 
pr.StartInfo.FileName = "B.exe"; 
pr.StartInfo.Arguments = SomeArgs; 
pr.Start(); 

A 和 B 都在同一个目录中。如果我通过双击手动启动 A,它工作正常,B 启动正常。但是,当我尝试重新启动 Windows 以检查它在 Windows 启动时是否正常工作时,每次 A.exe 崩溃,因此 B.exe 从未启动。我认为这是 A 中的其他问题,也许系统加载某些依赖项的速度很慢,但是没有,当我删除上述部分代码时,Windows 启动时一切正常,A 不会崩溃但 B 没有启动。那么可能是什么问题或如何解决呢?

编辑:

使用了 try catch,结果出现了,但我不知道为什么会出现:

System.ComponentModel.Win32Exception: 系统找不到文件 指定于 System.Diagonstics.Process.StartWithShellExecuteEx(ProcessSt‌​artInfo startInfo) 在 System.Diagonostics.Process.Start() 在 System.Diagonostics.Process.Start(ProcessStartInfo startInfo) 在 System.Diagnostics.Process.Start(字符串文件名,字符串参数)在 ....

我什至尝试使用完整的文件路径仍然是同样的错误。但是,手动启动它不会导致错误并且工作得很好。只是这个窗口启动搞砸了。

【问题讨论】:

    标签: c# startup process.start


    【解决方案1】:

    试试那个

    Process pr = new Process(); 
    pr.StartInfo.FileName = Application.StartupPath+"/B.exe"; 
    pr.StartInfo.Arguments = SomeArgs; 
    pr.Start(); 
    

    【讨论】:

      【解决方案2】:

      我相信您可能遇到了安全错误。进程需要某些权限才能工作。请参阅此处的安全部分说明:

      Process Class

      找出记录问题的方法,看看这是否是您遇到的问题。

      【讨论】:

      • 使用了一个try catch,这个出现了,但我不知道为什么会出现:System.ComponentModel.Win32Exception:系统找不到在System.Diagonstics.Process.StartWithShellExecuteEx( ProcessStartInfo startInfo) 在 System.Diagonostics.Process.Start() 在 System.Diagonostics.Process.Start(ProcessStartInfo startInfo) 在 System.Diagnostics.Process.Start(String fileName, String arguments) 在 ....
      • 我什至尝试使用完整的文件路径仍然是同样的错误。但是,手动启动它不会导致错误并且工作正常。
      • 这本质上意味着可执行文件的路径是错误的。我知道你提到你尝试了完整的路径。您的路径是否包含空格?
      • 另外,您是否将文件放在系统目录中? (例如 C:\Windows)
      【解决方案3】:

      尝试指定工作目录:

      Process pr = new Process(); 
      pr.StartInfo.WorkingDirectory = @"C:\path\to";
      pr.StartInfo.FileName = "B.exe"; 
      pr.StartInfo.Arguments = SomeArgs; 
      pr.Start(); 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-06-01
        • 1970-01-01
        相关资源
        最近更新 更多