How do I call a Windows shell command using VB6?

前端 未结 6 692
无人及你
无人及你 2020-11-30 10:31

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


        
相关标签:
6条回答
  • 2020-11-30 11:00

    Here's how you do it :

    Shell "cmd echo foo", vbNormalFocus 
    
    0 讨论(0)
  • 2020-11-30 11:00

    Only use double quotes: ""...""

    Example - send confirmation pass to make a task:

    shell (""echo pass|schtasks /create /TR "C:\folder\...\program.exe" /more_parameters"")
    

    because the first " are closed in "C:\... and the string would stop.

    0 讨论(0)
  • 2020-11-30 11:05

    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.

    0 讨论(0)
  • 2020-11-30 11:14

    Shell and ShellExecute?

    http://msdn.microsoft.com/en-us/library/aa242087.aspx

    Dim RetVal
    RetVal = Shell("C:\WINDOWS\CALC.EXE", 1)   ' Run Calculator.
    
    0 讨论(0)
  • 2020-11-30 11:24

    a combination of all

    Shell Environ("COMSPEC") & " /c echo foo", vbNormalFocus
    

    you should think in expanding COMSPEC environment variable if you wish to support earlier systems like windows 9x or me.

    You can also obtain the process id using

    pid = Shell(Environ("COMSPEC") & " /c echo foo", vbNormalFocus)
    
    0 讨论(0)
  • 2020-11-30 11:26
    Shell "cmd /c echo foo"
    
    0 讨论(0)
提交回复
热议问题