Win32Exception参数不正确

时间:2011-02-08 17:21:11

标签: c# process.start win32exception

exe文件使用Process.Start(),但它抛出“Win32Exception参数不正确”。

Process p = new Process();
Process.Start("C:\Program Files\APS2PP\keyl2000.exe");

我可以通过命令提示符成功运行此文件。

4 个答案:

答案 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");

我没有意识到它们需要用单独的字符串提供。