在 Delphi 中执行 Windows 命令行程序,你可以使用 TProcess 组件来实现。以下是一个简单的示例: uses System.SysUtils, System.Classes, Winapi.Windows, Winapi.ShellAPI; procedure ExecuteCommandLine(const ACommandLine: string); var ProcessInfo: TProcessInformation; StartupInfo: TStartupInfo; begin FillChar(StartupInfo, SizeOf(TStartupInfo), 0); StartupInfo.cb := SizeOf(TStartupInfo); StartupInfo.dwFlags := STARTF_USESHOWWINDOW; StartupInfo.wShowWindow := SW_HIDE; if CreateProcess(nil, PChar(ACommandLine), nil, nil, False, 0, nil, nil, StartupInfo, ProcessInfo) then begin // 等待命令行程序执行完成 WaitForSingleObject(ProcessInfo.hProcess, INFINITE); CloseHandle(ProcessInfo.hThread); CloseHandle(ProcessInfo.hProcess); end else RaiseLastOSError; end; // 示例用法 begin try ExecuteCommandLine('cmd.exe /C dir'); // 执行 dir 命令 except on E: Exception do ShowMessage('执行命令行程序失败: ' + E.Message); end; end. 在上面的示例中, ExecuteCommandLine 过程接受一个命令行字符串作为参数,并使用 CreateProcess API 执行该命令行。 TStartupInfo 结构用于配置新进程的启动信息,其中 wShowWindow 字段设置为 SW_HIDE ,以隐藏命令行窗口。使用 WaitForSingleObject 来等待命令行程序执行完成。 请注意,使用 CreateProcess 函数需要 Winapi.Windows 和 Winapi.ShellAPI 单元。另外,确保在执行命令时提供正确的命令行参数,并根据需要处理可能的异常情况。 |
|