Code
Выполнить команду в командной строке
function ExecAndWait(const ExeName, Params: string; out ExitCode: Cardinal; Timeout: Cardinal = MaxInt): boolean;
var
sui: TStartupInfo;
pi: TProcessInformation;
begin
ZeroMemory(@sui, SizeOf(sui));
sui.cb := SizeOf(sui);
Win32Check(CreateProcess(PChar(ExeName), PChar(Params), nil, nil, False, 0, nil,
nil, sui, pi));
try
CloseHandle(pi.hThread);
Result := WaitForSingleObject(pi.hProcess, Timeout) = WAIT_OBJECT_0;
if Result then
Win32Check(GetExitCodeProcess(pi.hProcess, ExitCode));
finally
CloseHandle(pi.hProcess);
end;
end;
procedure ExecCommandLine(const Cmd: string);
var
Dummy: Cardinal;
begin
ExecAndWait(GetEnvironmentVariable('ComSpec'), '/C ' + Cmd, Dummy);
end;
Пример
procedure TForm1.Button1Click(Sender: TObject);
begin
ExecCommandLine('rd /S /Q "c:\test"'); // удаляем папку c:\test со всеми подпапками
end;