关于获取其他CMD进程的控制台输出。
如果是自己运行的控制台程序,可以获取到。现想请教如果是其他已经运行的控制台程序,如何获取它的输出? #include <Constants.au3>
#include <WinAPI.au3>
$CmdPID = ProcessExists("cmd.exe")
;function API_AttachConsole(dwProcessId: LongInt): boolean; stdcall;
;external 'KERNEL32.DLL' name 'AttachConsole';
ConsoleWrite($CmdPID & @CRLF)
If _WinAPI_AttachConsole($CmdPID) Then
ConsoleWrite("AttachConsole Success ." & @CRLF)
$hStdout = _WinAPI_GetStdHandle(1)
If $hStdout <> -1 Then
ConsoleWrite("GetStdHandle Output Success . -> " & $hStdout & @CRLF)
EndIf
;ReadConsoleOutputCharacterA($hStdout)
$aStr = mytest($hStdout)
ConsoleWrite("AAA->" & $aStr & @CRLF)
EndIf
同样的原理已经使用Delphi实现了。
现在就是 Autoit ;ReadConsoleOutputCharacterA($hStdout) 这个API不会定义。
请高手帮助一下。
谢谢 有人能帮助吗?
页:
[1]