【发布时间】:2011-06-23 14:19:33
【问题描述】:
使用Process.Start()的exe文件,但它抛出“Win32Exception参数不正确”。
Process p = new Process();
Process.Start("C:\Program Files\APS2PP\keyl2000.exe");
我可以通过命令提示符成功运行这个文件。
【问题讨论】:
标签: c# process.start win32exception
使用Process.Start()的exe文件,但它抛出“Win32Exception参数不正确”。
Process p = new Process();
Process.Start("C:\Program Files\APS2PP\keyl2000.exe");
我可以通过命令提示符成功运行这个文件。
【问题讨论】:
标签: c# process.start win32exception
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");
我没有意识到它们需要在单独的字符串中提供。
【讨论】: