如何使用VB6调用Windows shell命令?

如何正确使用VB6,我可以调用任何Windowsshell命令,你会从命令行

例如,像以下这样微不足道的东西:

echo foo 

Solutions Collecting From Web of "如何使用VB6调用Windows shell命令?"

以下是你如何做到这一点:

 Shell "cmd echo foo", vbNormalFocus 

我一直使用wshShell对象的Run方法,在您的项目中引用Windows Script Host对象模型后可以使用该方法:

 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) 

您可以获得与普通Shell语句相同的功能,但最终参数可以让您决定是否同步运行带壳程序。 上面的调用与vbTrue是同步的。 使用vbFalse异步启动程序。

而且,正如在以前的答案中指出的那样,您需要使用“/ c”开关运行命令shell来执行内部命令,如问题中的“echo foo”。 你会发送“cmd / c回声富”到运行方法。

Shell和ShellExecute?

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

 Dim RetVal RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' Run Calculator. 

所有的组合

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

如果你想支持像Windows 9x或者我之前的系统,你应该考虑扩展COMSPEC环境变量。

您也可以使用获取进程ID

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

只能用双引号: ""...""

示例 – 发送确认通过以完成任务:

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

因为第一个" "C:\...关闭"C:\... ,字符串将停止。


Ahora explico enEspañol
独奏美国doble comillas: ""...""

Ejemplo-mando un pass para confirmar la creacion de la tarea:

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

la causa es que la primera comillas " se cierra con las comillas de la ruta "C:\... y se pierde la cadena String。

🙂 Espero先生和buena suerte