Отправка команд в консольную программу из Visual Basic 6 - PullRequest
0 голосов
/ 26 апреля 2010

У меня есть консольная программа на windows (скомпилированная версия curl командной строки), в которой вы можете писать команды и получать возврат. Как я могу отправить команды в это консольное приложение и вернуть результат в VB6? Я знаю, что вы можете сделать это с помощью команд DOS с Windows Script Host , но, как вы видите, команды, которые я хочу выполнить, не находятся в command.exe

Спасибо!

Ответы [ 4 ]

2 голосов
/ 26 апреля 2010

Вы можете использовать объект 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
0 голосов
/ 29 апреля 2010

Вы можете использовать функцию Shell для запуска консольного приложения, но оно не будет возвращать результат дочернего процесса - так называемый Errorlevel в пакетных сценариях.

Для замены блокировки Shell вы можете проверить ShellWait функцию, размещенную здесь .

0 голосов
/ 26 апреля 2010

Доминго -

Ну, я предполагаю, что, поскольку вы упомянули об этом, вы знаете, как использовать библиотеку WSH. Единственная другая часть информации, которая вам нужна, это строка для выполнения нужной вам команды. Вы можете запускать команды DOS с этой строкой в ​​Windows 95/98 / Me:

Dim sMyCommandLine As String

sMyCommandLine = "command.exe /c MYCOMMAND"

Тем не менее, более вероятно, что вы будете использовать операционную систему на базе NT, такую ​​как Windows NT, 2000, XP, Vista или 7, и в этом случае вы должны использовать:

sMyCommandLine = "cmd.exe /c MYCOMMAND"
0 голосов
/ 26 апреля 2010

Вы должны иметь возможность запускать этот curl как дочерний процесс, перенаправляя его стандартные потоки ввода / вывода в анонимные каналы. Однако в VB6 нет ничего, что могло бы поддерживать это напрямую.

Один из способов - использовать то же самое, что и в сценарии WSH, добавив ссылку на объектную модель хоста сценария Windows. Другой более чистый подход, который не создает окно консоли, включает в себя несколько вызовов API для создания дочернего процесса, управления им и чтения / записи анонимных каналов в вашей программе VB6. Это больше работы, если вы еще не создали компонент для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...