4

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

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

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

4

4 回答 4

6
 Process.Start("C:\Program Files\APS2PP\keyl2000.exe")

有人编辑了你的问题,意外地修正了你的错误。使用双反斜杠或在字符串前面放一个@。

 Process.Start(@"C:\Program Files\APS2PP\keyl2000.exe");
于 2011-02-08T18:22:24.753 回答
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")来消除对转义字符的需求

于 2011-02-08T17:52:41.183 回答
0

有关异常的任何详细信息?

根据: http: //msdn.microsoft.com/en-us/library/system.componentmodel.win32exception.aspx这个异常有一个内部异常代码,所以你可以谷歌它,看看到底发生了什么。

于 2011-02-08T17:25:25.987 回答
0

当我尝试将参数放在与可执行文件名称相同的字符串中时,我遇到了同样的错误,即相当于:

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

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

于 2018-08-30T04:21:10.480 回答