На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: jack128, Rouse_, Krid
  
    > Выполнить команду в командной строке
      ExpandedWrap disabled
        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;


      Пример

      ExpandedWrap disabled
        procedure TForm1.Button1Click(Sender: TObject);
        begin
          ExecCommandLine('rd /S /Q "c:\test"'); // удаляем папку c:\test со всеми подпапками
        end;


      Автор: jack128
      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
      0 пользователей:


      Рейтинг@Mail.ru
      [ Script execution time: 0,0171 ]   [ 16 queries used ]   [ Generated: 2.05.24, 12:17 GMT ]