2011-07-18 122 views
3

這樣一直在竊聽我6個小時Win32Exception「系統找不到指定的文件」

如何解決它。我希望程序運行資源和應用程序路徑(即bin/debug和/ release)的批處理文件(IP)。

,批處理文件工作時雙自身點擊...

我在做什麼錯?這是我的代碼。我曾嘗試在互聯網上的一切......

**Private Sub Button3_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click 
Dim OK = MessageBox.Show("Are you sure you want to renew the computer's IP?", "IP Renew?", MessageBoxButtons.OKCancel) 
If OK = DialogResult.OK Then 
Dim IP As New ProcessStartInfo 
IP.FileName = Application.StartupPath & "\IP.bat" 
IP.WindowStyle = ProcessWindowStyle.Hidden 
Process.Start(IP) 
End If 
End Sub** 

這是異常詳細信息:

System.ComponentModel.Win32Exception was unhandled 
ErrorCode=-2147467259 
Message=The system cannot find the file specified 
NativeErrorCode=2 
Source=System 
StackTrace: 
at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) 
at System.Diagnostics.Process.Start() 
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo) 
at Internet_Connection_Availability.Form1.Button3_Click_1(Object sender, EventArgs e) Form1.vb:line 228 
at System.Windows.Forms.Control.OnClick(EventArgs e) 
at System.Windows.Forms.Button.OnClick(EventArgs e) 
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 
at System.Windows.Forms.Control.WndProc(Message& m) 
at System.Windows.Forms.ButtonBase.WndProc(Message& m) 
at System.Windows.Forms.Button.WndProc(Message& m) 
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) 
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) 
at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) 
at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) 
at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData) 
at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) 
at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) 
at System.Windows.Forms.Application.Run(ApplicationContext context) 
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() 
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() 
at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) 
at Internet_Connection_Availability.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81 
at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) 
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
at System.Threading.ThreadHelper.ThreadStart() 
InnerException: 

有人告訴我,這個論壇是最好的一個在那裏

+0

系統無法找到該文件指定我敢打賭,如果你能看到什麼IP.FileName是你可以弄明白。嘗試在設置後立即放置MessageBox.Show(IP.FileName ...)。 – Skrymsli

+0

嘗試使用SysInternal的ProcMon監視進程運行。將顯示你的進程到底在哪裏尋找'IP.bat'。知道這可能會讓你更容易解決問題。 – eran

+0

它實際上是顯示文件的正確位置,所以它不是問題的文件! –

回答

1

更改以下行

Process.Start(IP) 

Process.Start("""" & IP & """") 

我曾在Application.StartupPath造成文件夾名稱的空間同樣的問題

相關問題