2013-05-21 178 views
3

我被卡在了這一行上。在vb.net中這很簡單,但是如何在vb6中做到這一點?試圖從谷歌搜索幾個小時,什麼都沒有。感覺幾乎鼓舞人心。什麼是Process.Start的VB 6等價物?

這是代碼。 (.NET)

Process.Start("runme.exe", " -parameter1 " & "-parameter2 " & "-parameter3") 

我想使用參數從程序所在的目錄運行EXE。我確信有一些非常簡單的解決方案,但我無法實現。任何幫助,將不勝感激。

+0

歡迎來到Stackoverflow。雖然這個問題可能對你有用,但對於更廣泛的社區來說,它並不是真的有用。請重新填寫問題,否則它有可能被封閉爲過於本地化。 – Deanna

+2

我不認爲這個問題本身有什麼問題,它只是迫切需要一個更好的標題。我不認爲它太局部化了。我可以想象很多人想知道如何從VB 6啓動外部進程。 –

回答

3

只需致電殼牌,參數也應通過與.exe文件名的字符串,像這樣:

Call Shell("""runme.exe"" ""-parameter1 "" ""-parameter2""", vbNormalFocus) 

PS:引號有所作爲,不要忽略它:)

+0

我有這樣的語法錯誤:Shell(」「」runme.exe「」「」--parameter1「」「」 - 參數2「」「,vbNormalFocus):S – user2404495

+3

它是括號。當VB6看到它們時,它期望返回值。要麼丟失括號,要麼使用'Call'關鍵字,'Call Shell(「」「runme.exe」「」「--parameter1」「」「-parameter2」「」,vbNormalFocus)' – jac

+0

你是對的,我是一個VB6開發了幾年,但它已經有一段時間了,所以我忘了使用Call,謝謝:) –

0

可以使用的ShellExecute這個:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long 

ShellExecute 0, "open", App.Path & "\runme.exe", "-parameter1 -parameter2 -parameter3", vbNullString, vbNormalFocus 

我發現,使用殼牌導致在調用程序等待返回值的延遲,而ShellExecute的沒有。

相關問題