找回密码
 加入
搜索
查看: 3090|回复: 2

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

[复制链接]
发表于 2010-1-25 16:30:43 | 显示全部楼层 |阅读模式
如果是自己运行的控制台程序,可以获取到。
现想请教如果是其他已经运行的控制台程序,如何获取它的输出?
 楼主| 发表于 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不会定义。

请高手帮助一下。

谢谢
 楼主| 发表于 2010-1-29 16:50:37 | 显示全部楼层
有人能帮助吗?
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-29 17:32 , Processed in 0.076164 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表