2013-03-29 2 views
0

я могу открыть командную строку и введитеVB6 Shell с параметрами

devenv m:\myproject.sln /build Release 

Это прекрасно работает.

Теперь я хотел вызвать командную строку из VB6 и выполнить ту же команду.

Но это не работает. Я не уверен, что что-то пропустил.

Вот мой код:

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

Командная строка открывает, но сама команда ("Devenv м: \ myproject.sln/построить Release") не выполняется.

Кто-нибудь видит, почему?

+0

Что вы видите на консольном выходе при запуске одного и того же кода, но с vbNormalFocus (= 1) вместо vbHide (= 0) в качестве второго параметра для Shell()? Вы также можете использовать ProcessExplorer или аналогичный инструмент для проверки аргументов командной строки, которые были переданы созданному экземпляру cmd.exe. –

ответ

2

Вам не нужно вводить CMD внутри команды SHELL. Попробуйте это:

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 = Shell (Имя файла & "" & параметров, vbHide) иначе Shell Имя файла & "" & параметров, vbHide