?在 Delphi 中執(zhí)行 Windows 命令行程序,你可以使用 TProcess 組件來實現(xiàn)。以下是一個簡單的示例: 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 // 等待命令行程序執(zhí)行完成 WaitForSingleObject(ProcessInfo.hProcess, INFINITE); CloseHandle(ProcessInfo.hThread); CloseHandle(ProcessInfo.hProcess); end else RaiseLastOSError; end; // 示例用法 begin try ExecuteCommandLine('cmd.exe /C dir'); // 執(zhí)行 dir 命令 except on E: Exception do ShowMessage('執(zhí)行命令行程序失敗: ' + E.Message); end; end. 在上面的示例中, ExecuteCommandLine 過程接受一個命令行字符串作為參數(shù),并使用 CreateProcess API 執(zhí)行該命令行。 TStartupInfo 結(jié)構(gòu)用于配置新進(jìn)程的啟動信息,其中 wShowWindow 字段設(shè)置為 SW_HIDE ,以隱藏命令行窗口。使用 WaitForSingleObject 來等待命令行程序執(zhí)行完成。 請注意,使用 CreateProcess 函數(shù)需要 Winapi.Windows 和 Winapi.ShellAPI 單元。另外,確保在執(zhí)行命令時提供正確的命令行參數(shù),并根據(jù)需要處理可能的異常情況。 |
|