2013-03-29 55 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