【发布时间】: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(ProcessStartInfo startInfo) 在 System.Diagonostics.Process.Start() 在 System.Diagonostics.Process.Start(ProcessStartInfo startInfo) 在 System.Diagnostics.Process.Start(字符串文件名,字符串参数)在 ....
我什至尝试使用完整的文件路径仍然是同样的错误。但是,手动启动它不会导致错误并且工作得很好。只是这个窗口启动搞砸了。
【问题讨论】:
标签: c# startup process.start