Вниз
Скачать: CL | DM;

Зауск DOS приложения в фрейме своей программы   Найти похожие ветки 

← →
Николай1984   (2008-03-04 10:21) [0]

Уважаемые Мастера, подскажите пожалуйста каким образом можно заустить DOS приложения в фрейме своей программы
Например как это делает Console 2.0 от nMarko Bozikovic.


← →
Dimaxx ©   (2008-03-04 10:44) [1]

Запустить его через CreateProcess и перенаправить консоль на Мемо...


← →
Palladin ©   (2008-03-04 11:52) [2]

Procedure NaprimerKakEtoDelaetConsole20otnMarkoBozikovic(Const App:String;AMemo:TMemo);
Const
 ReadBuffer = 2400;
Var
 Security            : TSecurityAttributes;
 ReadPipe,WritePipe  : THandle;
 start               : TStartUpInfo;
 ProcessInfo         : TProcessInformation;
 Buffer              : PChar;
 BytesRead           : DWord;
 Apprunning          : DWord;

Begin
 AMemo.Lines.Add("");
 Security.nLength:=SizeOf(TSecurityAttributes);
 Security.bInheritHandle:=True;
 Security.lpSecurityDescriptor:=Nil;

 If Createpipe(ReadPipe,WritePipe,@Security,0) Then
  Begin
   GetMem(Buffer,ReadBuffer+1);
   ZeroMemory(@Start,Sizeof(Start));
   start.cb          :=SizeOf(start);
   start.hStdOutput  :=WritePipe;
   start.hStdInput   :=ReadPipe;
   start.dwFlags     :=STARTF_USESTDHANDLES+STARTF_USESHOWWINDOW;
   start.wShowWindow :=SW_HIDE;

   If CreateProcess(nil,PChar(App),@Security,@Security,True,NORMAL_PRIORITY_CLASS,Nil, PChar(vtvTempPath+"$DS2\"),start,ProcessInfo) Then
    Begin
     Repeat
      Apprunning:=WaitForSingleObject(ProcessInfo.hProcess,100);
      Application.ProcessMessages;
     Until (Apprunning<>WAIT_TIMEOUT);
     Repeat
      BytesRead:=0;
      ReadFile(ReadPipe,Buffer[0],ReadBuffer,BytesRead,Nil);
      Buffer[BytesRead]:=#0;
      OemToAnsi(Buffer,Buffer);
      AMemo.Text:=AMemo.Text+String(Buffer);
     Until (BytesRead<ReadBuffer);
    End;
  FreeMem(Buffer);
  CloseHandle(ProcessInfo.hProcess);
  CloseHandle(ProcessInfo.hThread);
  CloseHandle(ReadPipe);
  CloseHandle(WritePipe);
 End;
End;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.01 c
3-1213687134
Бульбаш
2008-06-17 11:18
2009.01.25
Передача редактируемого значения в редактор


2-1228910713
rhammer
2008-12-10 15:05
2009.01.25
OnKeyDown при динамическом TPageControl


2-1229183526
gulya
2008-12-13 18:52
2009.01.25
база данных в Delphi


2-1228893500
Mefis
2008-12-10 10:18
2009.01.25
Как информацию с формы переместить в ячейку таблицы.


2-1228835429
Илья_
2008-12-09 18:10
2009.01.25
Вопрос по таблице ASCII и отображению символа "минус"




   Наверх