从Visual Basic 6向控制台程序发送命令

时间:2010-04-26 02:42:58

标签: vb6 process console-application command-line-interface

我在 windows curl 命令行的编译版本)上有一个控制台程序,您可以在其中编写命令并返回。如何将命令发送到此控制台应用程序并将结果返回给VB6?我知道你可以使用带有 Windows脚本宿主的DOS命令来执行此操作,但正如您所看到的那样,我想要运行的命令不在command.exe中

谢谢!

4 个答案:

答案 0 :(得分:2)

您可以使用Microsoft.XMLHTTP ActiveX对象发出HTTP请求,如下所示:

Set request = CreateObject("Microsoft.XMLHTTP")
request.open "POST", url, false
request.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
request.send postData
response = request.responseText

答案 1 :(得分:0)

您应该能够将此curl事件作为子进程运行,将其标准I / O流重定向到匿名管道。但是,VB6中没有任何内容可以直接支持它。

一种方法是通过添加对Windows脚本宿主对象模型的引用来使用与WSH脚本相同的内容。另一种不产生控制台窗口的清洁方法涉及许多API调用,用于创建子进程,管理它,以及读取/写入VB6程序中的匿名管道。如果您尚未创建组件,那么这项工作就更有用了。

答案 2 :(得分:0)

多明戈 -

好吧,我假设你提到它,你知道如何使用WSH库。您需要的唯一其他信息是执行所需命令的字符串。您可以在Windows 95/98 / Me中使用此字符串运行DOS命令:

Dim sMyCommandLine As String

sMyCommandLine = "command.exe /c MYCOMMAND"

但是,您似乎更有可能使用基于NT的操作系统,如Windows NT,2000,XP,Vista或7,在这种情况下,您应该使用:

sMyCommandLine = "cmd.exe /c MYCOMMAND"

答案 3 :(得分:0)

您可以使用Shell函数启动控制台应用程序,但不会返回子进程的结果 - 批处理脚本中所谓的Errorlevel

对于Shell的阻止替换,您可以check out ShellWait function posted here