Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 669

•  TDictionary Custom Sort  5 800

•  Fast Watermark Sources  5 603

•  3D Designer  8 215

•  Sik Screen Capture  5 913

•  Patch Maker  6 388

•  Айболит (remote control)  6 378

•  ListBox Drag & Drop  5 237

•  Доска для игры Реверси  94 551

•  Графические эффекты  6 570

•  Рисование по маске  5 643

•  Перетаскивание изображений  4 759

•  Canvas Drawing  5 135

•  Рисование Луны  4 863

•  Поворот изображения  4 411

•  Рисование стержней  3 116

•  Paint on Shape  2 360

•  Генератор кроссвордов  3 228

•  Головоломка Paletto  2 551

•  Теорема Монжа об окружностях  3 328

•  Пазл Numbrix  2 200

•  Заборы и коммивояжеры  2 849

•  Игра HIP  1 820

•  Игра Go (Го)  1 740

•  Симулятор лифта  2 072

•  Программа укладки плитки  1 798

•  Генератор лабиринта  2 240

•  Проверка числового ввода  1 925

•  HEX View  2 225

•  Физический маятник  1 911

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Запустить консольное приложение и получить его стандартный вывод



- Что делать, если мышь уже дошла до края коврика, а курсор еще не дошел до края экрана?
Возможные ответы:
- перестать пользоватся мышью
- выбросить такой маленький коврик
- купить новый "экран"
- осторожно придерживая большим пальцем курсор мыши, двигать монитор
- прогнать драйвер мыши под отладчиком
- Windows СУКС, этот Билли даже мышь нормальную не может сделать, Linux forever!
- запустить антивирус!
- да у тебя просто руки кривые!
- сколько раз можно задавать один и тот же вопрос, предлагаю внести его в FAQ
- Е...! про мышей - это не к нам


{ 
This function runs a program (console or batch) and adds its output 
to Memo1 
} 

{....} 
  private 
    function RunCaptured(const _dirName, _exeName, _cmdLine: string): Boolean; 
     
{....} 

function TForm1.RunCaptured(const _dirName, _exeName, _cmdLine: string): Boolean; 
var 
  start: TStartupInfo; 
  procInfo: TProcessInformation; 
  tmpName: string; 
  tmp: Windows.THandle; 
  tmpSec: TSecurityAttributes; 
  res: TStringList; 
  return: Cardinal; 
begin 
  Result := False; 
  try 
    { Setze ein Temporares File } 
    { Set a temporary file } 
    tmpName := 'Test.tmp'; 
    FillChar(tmpSec, SizeOf(tmpSec), #0); 
    tmpSec.nLength := SizeOf(tmpSec); 
    tmpSec.bInheritHandle := True; 
    tmp := Windows.CreateFile(PChar(tmpName), 
           Generic_Write, File_Share_Write, 
           @tmpSec, Create_Always, File_Attribute_Normal, 0); 
    try 
      FillChar(start, SizeOf(start), #0); 
      start.cb          := SizeOf(start); 
      start.hStdOutput  := tmp; 
      start.dwFlags     := StartF_UseStdHandles or StartF_UseShowWindow; 
      start.wShowWindow := SW_Minimize; 
      { Starte das Programm } 
      { Start the program } 
      if CreateProcess(nil, PChar(_exeName + ' ' + _cmdLine), nil, nil, True, 
                       0, nil, PChar(_dirName), start, procInfo) then 
      begin 
        SetPriorityClass(procInfo.hProcess, Idle_Priority_Class); 
        WaitForSingleObject(procInfo.hProcess, Infinite); 
        GetExitCodeProcess(procInfo.hProcess, return); 
        Result := (return = 0); 
        CloseHandle(procInfo.hThread); 
        CloseHandle(procInfo.hProcess); 
        Windows.CloseHandle(tmp); 
        { Die Ausgaben hinzufugen } 
        { Add the output } 
        res := TStringList.Create; 
        try 
          res.LoadFromFile(tmpName); 
          Memo1.Lines.AddStrings(res); 
        finally 
          res.Free; 
        end; 
        Windows.DeleteFile(PChar(tmpName)); 
      end 
      else 
      begin 
        Application.MessageBox(PChar(SysErrorMessage(GetLastError())), 
          'RunCaptured Error', MB_OK); 
      end; 
    except 
      Windows.CloseHandle(tmp); 
      Windows.DeleteFile(PChar(tmpName)); 
      raise; 
    end; 
  finally 
  end; 
end; 
// Example: 

procedure TForm1.Button1Click(Sender: TObject); 
begin 
  RunCaptured('C:\', 'cmd.exe', '/c dir'); 
end;





Похожие по теме исходники

Консольное DOS приложение

A Star (нахождение кратчайшего пути)

Нахождение кратчайшего пути

Облако тегов

 

Дейкстра: поиск кратчайшего пути




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте