0
我想從我的Vb.Net應用程序運行批處理文件。 VS 2010 targetting .Net 4.從.Net調用的批處理文件不運行
它在Windows XP下正常工作。
在Windows 8下,我按預期得到了UAC提示,並且我看到命令窗口會短暫出現,但它會立即消失,批處理文件中的任何命令似乎都不會執行。
我試着用一個pause
命令替換批處理文件,但是窗口仍然沒有等待輸入而消失。 這裏是我的代碼:
processStartInfo = New System.Diagnostics.ProcessStartInfo()
processStartInfo.FileName = Script ' batch file name
If My.Computer.Info.OSVersion >= "6" Then ' Windows Vista or higher
' required to invoke UAC
processStartInfo.Verb = "runas"
End If
processStartInfo.Arguments = Join(Parameters, " ")
processStartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal
processStartInfo.UseShellExecute = True
process = System.Diagnostics.Process.Start(processStartInfo)
將「暫停」添加到.bat文件的末尾,以便您可以閱讀錯誤消息。永遠不要忘記檢查Process.ExitCode,以便診斷完整的故障。 – 2014-09-18 16:34:30
@Hans正如我在問題中所述,我用單個暫停命令替換了整個批處理文件,但該窗口立即消失。 我也許可以嘗試查看Process.ExitCode,但我假設正在顯示命令窗口(儘管非常簡短),該過程看起來開始OK。我不希望我的代碼等待進程完成,儘管我可能暫時爲了調試目的而這樣做。 – 2014-09-18 16:42:25
如果您重命名.bat以使其找不到,那麼Process.Start應拋出「找不到文件」異常。這是否發生? – 2014-09-18 17:02:00