回复 4# afan #include <AutoItConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 615, 438, 192, 124)
$Button1 = GUICtrlCreateButton("点击测试", 272, 96, 75, 25)
$Edit1 = GUICtrlCreateEdit("", 8, 200, 601, 137)
GUICtrlSetData(-1, "这里实现控制台显示")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
Local $sFilePath = @ScriptDir ; 搜索当前脚本目录.
Local $test = Example($sFilePath)
;~ MsgBox(0, "", $test)
;~ ConsoleWrite($test)
ControlSetText($Form1, "", $Edit1, $test)
EndSwitch
WEnd
Func Example($sFilePath); 递归显示目录的文件列表.
Local $sFilter = "*.*" ; 搜索当前目录的所有文件. 关于有效的通配符列表,使用"通配符"搜索帮助文档.
If Not StringInStr(FileGetAttrib($sFilePath), "D") Then
Return SetError(1, 0, 0)
EndIf
$sFilePath = StringRegExpReplace($sFilePath, "[\\/]+\z", "") & ""
Local $iPID = Run(@ComSpec & ' /C DIR "' & $sFilePath & $sFilter & '" /B /A-D /S', $sFilePath, @SW_HIDE, $STDOUT_CHILD)
ProcessWaitClose($iPID)
; 读 Run() 返回 PID 的 Stdin 流. 也可以在 while 循环中完成. 参考 StderrRead() 示例.
Local $sOutput = StdoutRead($iPID)
MsgBox(0, "读取流显示到本程序", $sOutput)
Return $sOutput
EndFunc ;==>Example
A大实在搞不懂这个控制台样式如何实现的,不是一行一行写入,不够装B的样子。能再说一下吗? |