PING命令显示执行过程和获取结果[已解决]
本帖最后由 wingking84 于 2012-6-25 17:40 编辑需求:ping 1.1.1.1,
要能看到PING的过程
要根据输出中有没有0%判断PASS,FAIL
用Run(@ComSpec & " /c " & $cmd, "", @SW_MAXIMIZE)能看到过程,获取不到输出(stdout)
用$a = Run($cmd, "", @SW_MAXIMIZE, $STDERR_CHILD + $STDOUT_CHILD)只能打开一个黑窗口,看不到命令和结果,但StdoutRead可以获取到结果。
求解。 论坛搜,有现成的例子 搜“CMD”显示三页,没看到合适的。
有个在控件里显示CMD的,似乎复杂,刚才跳过了,再看下吧。 本帖最后由 afan 于 2012-6-12 19:52 编辑
Opt('GUIOnEventMode', 1)
GUICreate('Ping…')
GUISetOnEvent(-3, '_Exit')
Local $iInput = GUICtrlCreateInput('ping 1.1.1.1', 2, 5, 396, 20)
Local $iEdit = GUICtrlCreateEdit('请输入命令后回车', 2, 26, 396, 350, 0x200000)
Local $iLb = GUICtrlCreateLabel('等待执行… ', 10, 380, 300, 12)
GUISetState()
GUIRegisterMsg(0x0111, '_WMCOMMAND')
While 1
Sleep(100)
WEnd
Func _WMCOMMAND($hWnd, $iMsg, $wParam)
#forceref $hWnd, $iMsg
If BitAND($wParam, 0x0000FFFF) = 1 And Not BitShift($wParam, 16) Then Return _Run_CMD()
EndFunc ;==>_WMCOMMAND
Func _Run_CMD()
GUICtrlSetData($iEdit, '')
GUICtrlSetData($iLb, '正在执行命令并回显…')
Local $iPid, $Error, $sLine, $ts = TimerInit()
$iPid = Run(@ComSpec & ' /c ' & GUICtrlRead($iInput), '', 0, 3)
While 1
$sLine = StdoutRead($iPid)
$Error = @error
GUICtrlSetData($iEdit, $sLine, 1)
If $Error Or Not ProcessExists($iPid) Then ExitLoop
Sleep(1)
WEnd
GUICtrlSetData($iLb, '命令完成,回显结束。耗时 ' & Round(TimerDiff($ts)) & ' 毫秒')
EndFunc ;==>_Run_CMD
Func _Exit()
Exit
EndFunc ;==>_Exit
回复 4# afan
#forceref $hWnd, $iMsg
If BitAND($wParam, 0x0000FFFF) And Not BitShift($wParam, 16)
第一行多了个小 i .
第二行? 求解释一下两下呗? 老板? 模拟DOS窗口? 回复afan
#forceref $hWnd, $iMsg
If BitAND($wParam, 0x0000FFFF) And Not Bi ...
user3000 发表于 2012-6-12 19:18 http://www.autoitx.com/images/common/back.gif
刚觅食回~
具体含义不清楚,只是一直这么用…… 以下仅做参考:
BitAND($iwParam, 0xFFFF) ;(low id) 低id - 在Input控件回车时其值为1
BitShift($wParam, 16) ;通知 - 在回车时其值为0 学习了。版大的分享。 这样模拟 不如 直接 发包 収包 回显简单 难道用自带的DOS就实现不了了? 难道用自带的DOS就实现不了了?
wingking84 发表于 2012-6-13 22:01 http://www.autoitx.com/images/common/back.gif
可以,复制。 除了STDOUT,还有什么方法获取PING的输出内容? 回复 12# wingking84
直接CMD 'ping 127.1 > c:\ping.txt'
然后读取该文件的内容! 学习了,不错{:face (427):} 学习了,谢谢分享
页:
[1]