Au3如何返回Dos窗口的输出信息?
如题,用Au3运行某DOS程序如何在Au3中返回Dos窗口的输出信息?用Wingettext似乎不行
请各位大侠帮忙~~
[ 本帖最后由 simxinzi 于 2008-8-9 23:23 编辑 ] 我也想知道呢 我的笨方法:
命令直接输出到文本文件中:
dir *.exe > c:\a.txt
之后打开c:\a.txt ;注意:回显截取只支持Run而不是RunWait
#include <Constants.au3>
Opt("MustDeclareVars",1)
_test()
Func _test()
Local $foo,$line,$lines
$foo = Run(@ComSpec & " /c sc query Alerter", @SystemDir, @SW_HIDE, $STDOUT_CHILD)
$lines = ""
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
$lines &= $line
Wend
MsgBox(0,"test",$lines)
EndFunc 原帖由 runningwater 于 2008-7-24 16:05 发表 http://www.autoitx.com/images/common/back.gif
;注意:回显截取只支持Run而不是RunWait
#include
Opt("MustDeclareVars",1)
_test()
Func _test()
Local $foo,$line,$lines
$foo = Run(@ComSpec & " /c sc query Alerter", @SystemDir, @SW_HIDE, $STDOUT_C ...
我觉得说得不是非常正确
楼主可以运行这样的语句
RunWait(@ComSpec & ' /c netstat -ano > ' & @TempDir & '\NetSOT.tmp', "", @SW_HIDE)
然后你去TempDir & '\NetSOT.tmp看看这个文件的内容(用记事本打开)
其实这个NetSOT.tmp文件就是你要的回显内容了
接着就先读取行数,然后显示出来
if _FileReadToArray(@TempDir & '\NetSOT.tmp', $DataArray) <> 0 Then
For $I = 5 To $DataArray - 1
这个代码来自
AutoIt 版本: 3.2.5.0(第一版)
脚本作者: allenmou
Email: allenmou@163.com
QQ/TM: 402090001
脚本功能: 本机开放端口查看
[ 本帖最后由 ken0137 于 2008-7-26 14:54 编辑 ]
发个例子给需要的人
#include <Constants.au3>$foo = Run(@ComSpec, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
ProcessWaitClose($foo)
$text=StdoutRead($foo)
MsgBox(0, "STDOUT read:", $text) 原帖由 ken0137 于 2008-7-26 14:53 发表 http://www.autoitx.com/images/common/back.gif
我觉得说得不是非常正确
楼主可以运行这样的语句
RunWait(@ComSpec & ' /c netstat -ano > ' & @TempDir & '\NetSOT.tmp', "", @SW_HIDE)
然后你去TempDir & '\NetSOT.tmp看看这个文件的内容(用记事本打开)
...
你说的根本就不是一回事, 就提供的方法技术而言, 人家的更高一筹,不用临时文件的才更简洁 条条大道通罗马。。。看个人的喜好的了。 #include
$foo = Run(@ComSpec, @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
ProcessWaitClose($foo)
$text=StdoutRead($foo)
MsgBox(0, "STDOUT read:", $text)
kakinkgb 发表于 2008-7-26 21:04 http://www.autoitx.com/images/common/back.gif
太谢谢了,这个例子非常好 试了一下..好像无返回结果 回显截取只支持Run而不能RunWait 不错这几天的研究正需要 支持下,学习学习 学习了,很好,很强大 搜索资料到这儿,谢谢楼上各位!
页:
[1]
2