Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I call a Windows shell command using VB6?

How exactly using VB6 can I can call any Windows shell command as you would from the command-line?

For example, something as trivial as:

echo foo
like image 846
Ray Avatar asked Nov 14 '08 18:11

Ray


2 Answers

Here's how you do it :

Shell "cmd echo foo", vbNormalFocus 
like image 196
dub Avatar answered Sep 25 '22 09:09

dub


I've always used the Run method of the wshShell object, which is available after you reference the Windows Script Host Object Model in your project:

Dim shell As wshShell
Dim lngReturnCode As Long
Dim strShellCommand As String

Set shell = New wshShell

strShellCommand = "C:\Program Files\My Company\MyProg.exe " & _
   "-Ffoption -Ggoption"

lngReturnCode = shell.Run(strShellCommand, vbNormalFocus, vbTrue)

You get the same functionality as the normal Shell statement, but the final parameter lets you decide whether to run the shelled program synchronously. The above call, with vbTrue, is synchronous. Using vbFalse starts the program asynchronously.

And, as noted in previous answers, you need to run the command shell with the "/c" switch to execute internal commands, like the "echo foo" from your question. You'd send "cmd /c echo foo" to the Run method.

like image 33
JeffK Avatar answered Sep 23 '22 09:09

JeffK