cStdIO 标准输入输出组件
概述
cStdIO 是 VBMAN 框架提供的命令行执行组件,用于在 VB6 中执行外部命令行程序并捕获其标准输出。支持超时控制、工作目录设置和进程退出码获取。
特性
- 捕获输出 - 完整捕获命令行的标准输出(STDOUT)
- 隐藏窗口 - 后台执行,不显示命令行窗口
- 超时控制 - 可设置执行超时时间,防止进程卡死
- 工作目录 - 支持指定命令执行的工作目录
- 退出码获取 - 获取进程退出代码,判断执行结果
快速开始
简单执行命令
vb
Dim StdIO As New cStdIO
Dim Output As String
Dim ExitCode As Long
' 执行命令并获取输出
Output = StdIO.ExecuteCommand("ipconfig /all", 5000, "", ExitCode)
Debug.Print "输出:" & Output
Debug.Print "退出码:" & ExitCode执行并检查退出码
vb
Private Sub RunGitStatus()
Dim StdIO As New cStdIO
Dim Result As String
Dim ExitCode As Long
Result = StdIO.ExecuteCommand("git status", 10000, "D:\\MyProject", ExitCode)
If ExitCode = 0 Then
Debug.Print "Git 状态:" & vbCrLf & Result
Else
Debug.Print "命令执行失败,退出码:" & ExitCode
End If
End Sub超时处理
vb
Private Sub RunWithTimeout()
Dim StdIO As New cStdIO
Dim Result As String
Dim ExitCode As Long
On Error GoTo ErrorHandler
' 设置 5 秒超时
Result = StdIO.ExecuteCommand("long-running-task.exe", 5000, "", ExitCode)
Debug.Print Result
Exit Sub
ErrorHandler:
If InStr(Err.Description, "执行超时") > 0 Then
MsgBox "命令执行超时!", vbExclamation
End If
End Sub典型应用场景
| 场景 | 示例命令 |
|---|---|
| 系统信息 | ipconfig /all, systeminfo |
| Git 操作 | git status, git log --oneline |
| 文件操作 | dir /s, findstr "keyword" *.txt |
| 网络检测 | ping 8.8.8.8, tracert baidu.com |
| 编译构建 | msbuild MyProject.sln |
注意事项
- 超时时间 - 单位为毫秒,默认 10 秒
- 窗口隐藏 - 命令行窗口自动隐藏,后台执行
- 编码问题 - 输出文本编码取决于系统默认编码
- 大数据量 - 输出内容过大时可能占用较多内存