【问题标题】:Win32Exception the parameter is incorrectWin32Exception 参数不正确
【发布时间】: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


    【解决方案1】:
     Process.Start("C:\Program Files\APS2PP\keyl2000.exe")
    

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

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

    【讨论】:

      【解决方案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") 来消除对转义字符的需求

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

        • 似乎您的程序拒绝运行,因为没有给出参数:S
        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-05-23
          • 2015-05-27
          • 2012-06-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-10-25
          相关资源
          最近更新 更多