2013-03-29 91 views
0

我可以打開命令行,然後鍵入VB6外殼採用參數

devenv m:\myproject.sln /build Release 

這個偉大的工程。

現在我想從VB6調用命令行並執行相同的命令。

但這並不奏效。我不確定我是否錯過了一些東西。

這裏是我的代碼:

dim lRet& 
lRet = Shell("cmd /k devenv m:\myproject.sln /build Release", 0) 

命令行打開了,但命令本身( 「devenv的M:\ myproject.sln /建釋放」)不執行。

有人明白爲什麼嗎?

+0

在運行相同代碼時,在控制檯輸出中看到什麼,但是使用vbNormalFocus(= 1)而不是vbHide(= 0)作爲Shell()的第二個參數?您還可以使用ProcessExplorer或類似的工具來檢查已傳遞到創建的cmd.exe實例的命令行參數。 –

回答

2

您不需要在SHELL命令中輸入CMD命令。試試這個:

dim lRet& 
lRet = Shell("devenv m:\myproject.sln /build Release", 0) 
0
Dim Parameter As String 
Dim Res As Long 
Dim Filename As String 
    Filename = "C:\myfolder\myfile.exe" 'Check file is here first 
If Dir(Filename) = "" Then 
    MsgBox Filename & " not found with parameter " & Parameter, vbInformation 
Else 
    Res = Shell(Filename & " " & Parameter, vbHide) 
End If 

如果你期待一個返回值使用 RES =殼牌(文件名& 「」 &參數,vbHide) 否則 殼牌名& 「」 &參數,vbHide