exe文件使用Process.Start()
,但它抛出“Win32Exception参数不正确”。
Process p = new Process();
Process.Start("C:\Program Files\APS2PP\keyl2000.exe");
我可以通过命令提示符成功运行此文件。
exe文件使用Process.Start()
,但它抛出“Win32Exception参数不正确”。
Process p = new Process();
Process.Start("C:\Program Files\APS2PP\keyl2000.exe");
我可以通过命令提示符成功运行此文件。
Process.Start("C:\Program Files\APS2PP\keyl2000.exe")
有人编辑了你的问题,意外地修正了你的错误。使用双反斜杠或在字符串前面放一个@。
Process.Start(@"C:\Program Files\APS2PP\keyl2000.exe");
来自: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"
)来消除对转义字符的需求
有关异常的任何详细信息?
根据: http: //msdn.microsoft.com/en-us/library/system.componentmodel.win32exception.aspx这个异常有一个内部异常代码,所以你可以谷歌它,看看到底发生了什么。
当我尝试将参数放在与可执行文件名称相同的字符串中时,我遇到了同样的错误,即相当于:
Process p = new Process();
Process.Start("C:\Program Files\APS2PP\keyl2000.exe /t keyfile.dat");
我没有意识到它们需要以单独的字符串提供。