exe文件使用Process.Start()
,但它抛出“Win32Exception参数不正确”。
Process p = new Process();
Process.Start("C:\Program Files\APS2PP\keyl2000.exe");
我可以通过命令提示符成功运行此文件。
答案 0 :(得分:5)
Process.Start("C:\Program Files\APS2PP\keyl2000.exe")
有人编辑了你的问题,意外地修正了你的错误。使用双反斜杠或在字符串前放一个@。
Process.Start(@"C:\Program Files\APS2PP\keyl2000.exe");
答案 1 :(得分:2)
来自:http://msdn.microsoft.com/en-us/library/53ezey2s.aspx
Win32Exception - 打开相关文件时出错。
1)如果您要使用Process.Start(String)
的静态方法,则不需要声明Process
个对象。
//Use...
Process p = new Process();
p.StartInfo = new ProcessStartInfo(filename);
p.Start();
//Or...
Process.Start(filename);
2)异常基本上是说由于某种原因无法打开该文件。你确定路径是正确的吗?您是否尝试手动打开该文件?
3)确保在更有条理的地方定义文件路径。比如设置文件。这也有助于消除逃避角色的需要。但是,如果你坚持要将该字符串保留为内联,至少需要使用@符号(@"C:\Program Files\SomeFile.exe"
)
答案 2 :(得分:0)
有关例外的任何细节?
根据:http://msdn.microsoft.com/en-us/library/system.componentmodel.win32exception.aspx此异常有一个内部异常代码,因此您可以对其进行google并查看确切的结果。
答案 3 :(得分:0)
当我尝试将参数放在与可执行文件名称相同的字符串中时,也遇到了相同的错误,即:
Process p = new Process();
Process.Start("C:\Program Files\APS2PP\keyl2000.exe /t keyfile.dat");
我没有意识到它们需要用单独的字符串提供。