找回密码
 加入
搜索
查看: 3600|回复: 5

为什么StdoutRead第一次读取是空白?

  [复制链接]
发表于 2008-9-28 18:15:09 | 显示全部楼层 |阅读模式
下面是帮助的第一次,第一次循环的时候,msgbox显示的是空字符串,第二次才读出来?请教一下能不能第一次就读出来?

; Demonstrates StdoutRead()
#include <Constants.au3>

Local $foo = Run(@ComSpec & " /c dir foo.bar", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
Local $line
While 1
    $line = StdoutRead($foo)
    If @error Then ExitLoop
    MsgBox(0, "STDOUT read:", $line)
Wend
发表于 2008-9-28 18:29:22 | 显示全部楼层
读取速度大于执行速度,
发表于 2008-9-28 19:02:22 | 显示全部楼层
啊,不要循环读,等他运行完毕,一次就能读出来
 楼主| 发表于 2008-9-28 19:08:21 | 显示全部楼层
各位试验一下,根本不是你们说的那么会事,就算你用runwait
发表于 2008-9-28 19:50:40 | 显示全部楼层
#include <Constants.au3>
$run = Run(@ComSpec & " /c label", @SystemDir, @SW_HIDE,$STDOUT_CHILD)
ProcessWaitClose($run)
$text=StdoutRead($run)
MsgBox(0, "STDOUT read:", $text)

评分

参与人数 1金钱 +30 收起 理由
lsq726 + 30 学习了。

查看全部评分

发表于 2008-9-28 21:18:17 | 显示全部楼层
原帖由 itljl 于 2008-9-28 19:08 发表
各位试验一下,根本不是你们说的那么会事,就算你用runwait


是不能用RunWait()的,要不然就什么都不会回显
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-11-16 00:41 , Processed in 0.075989 second(s), 24 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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