jump777 发表于 2010-1-25 16:30:43

关于获取其他CMD进程的控制台输出。

如果是自己运行的控制台程序,可以获取到。
现想请教如果是其他已经运行的控制台程序,如何获取它的输出?

jump777 发表于 2010-1-25 16:33:06

#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不会定义。

请高手帮助一下。

谢谢

jump777 发表于 2010-1-29 16:50:37

有人能帮助吗?
页: [1]
查看完整版本: 关于获取其他CMD进程的控制台输出。