XP环境下C# 调用Pocess.start()时提示文件找不到的错误解决办法

时间:2022-06-01 18:51:24

错误提示如下:

System.ComponentModel.Win32Exception (0x80004005): 系统找不到指定的文件。

在 System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   在 System.Diagnostics.Process.Start()
   在 SmallScene.Login.Login_Load(Object sender, EventArgs e)

 在 System.Windows.Forms.Form.OnLoad(EventArgs e)
   在 System.Windows.Forms.Form.OnCreateControl()
   在 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   在 System.Windows.Forms.Control.CreateControl()
   在 System.Windows.Forms.Control.WmShowWindow(Message& m)
   在 System.Windows.Forms.Control.WndProc(Message& m)
   在 System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   在 System.Windows.Forms.ContainerControl.WndProc(Message& m)
   在 System.Windows.Forms.Form.WmShowWindow(Message& m)
   在 System.Windows.Forms.Form.WndProc(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

解决办法:

1.对所有的路径加双引号,,防止空格的出现。例如Process.start("\"C:\\Program Files\\WinRar.exe\"");

2.所有的路径都用绝对路径,坚决杜绝出现相对路径。(因为XP调用时会出错)