Тема: VBS:Как при помощи VBS получить текст из окна консольного приложения?
Нужно из VBScript получить текст из окна консольного приложения, назовём его "abcd.exe" (старая 16-бит DOS программа).
Пробую с помощью DynamicWrapperX и функций WinAPI: GetStdHandle и ReadConsoleOutputCharacter:
Set ws = WScript.CreateObject("WScript.Shell")
Set DX = CreateObject("DynamicWrapperX")
DX.Register "kernel32.dll", "ReadConsoleOutputCharacter","i=hSlpL", "r=l"
DX.Register "kernel32.dll", "GetStdHandle", "i=l", "r=h"
ws.Run("abcd.exe") :WScript.Sleep 2000
sh = DX.GetStdHandle(-11)
n = 100
s = Space(n)
coord = Space(2)
DX.NumPut 0, coord, 0, "n"
DX.NumPut 0, coord, 2, "n"
res = DX.ReadConsoleOutputCharacter(sh, s, n, coord, n)
msgbox(s)Но GetStdHandle возвращает 0, т. е. не удаётся получить указатель на буфер экрана окна консоли. Дело тут не в программе "abcd.exe", пробовал и с cmd.exe, результат тот же.
Соответственно, ReadConsoleOutputCharacter возвращает False.
Смущает, что у GetStdHandle нет среди аргументов указателя на окно или процесс.
Также пробовал запускать программу "abcd.exe" с помощью Exec, чтобы потом прочитать её StdOut. Но она открывается, и сразу закрывается ![]()
Есть идеи?

