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