Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не читает вывод из консоли [D7]


Страницы:   1 2 3

mamedovvms ©   (2009-08-25 08:45:00) 

nit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Memo1: TMemo;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}
procedure RunDosInMemo(DosApp:String;AMemo:TMemo) ;
const
  ReadBuffer = 512;
var
l:boolean;

Security : TSecurityAttributes;
ReadPipe,WritePipe : THandle;
start : TStartUpInfo;
ProcessInfo : TProcessInformation;
Buffer : Pchar;
BytesRead : DWord;
Apprunning : DWord;
x : Integer;
MyStr : String;
begin

  x := 0;
  With Security do
  begin
   Security.nlength := SizeOf(TSecurityAttributes) ;
   Security.binherithandle := true;
   Security.lpsecuritydescriptor := nil;
  end;

  if Createpipe (ReadPipe, WritePipe,
                 @Security, 0) then
  begin
    Buffer := AllocMem(ReadBuffer + 1) ;
    FillChar(Start,Sizeof(Start),#0) ;
    start.cb := SizeOf(STARTUPINFO) ;
    start.hStdOutput := WritePipe;
    start.hStdInput := ReadPipe;
    start.dwFlags := STARTF_USESTDHANDLES ;
    start.wShowWindow := SW_SHOW;

    if CreateProcess(nil,
          PChar(DosApp),
          @Security,
          @Security,
          true,
          NORMAL_PRIORITY_CLASS,
          nil,
          nil,
          start,
          ProcessInfo)
    then
    begin
    CloseHandle(WritePipe) ;
        WaitForSingleObject(ProcessInfo.hProcess, INFINITE);

        BytesRead := 0;
        l:=ReadFile(start.hStdInput,Buffer[0],ReadBuffer,BytesRead,nil) ;

        ShowMessage(Buffer);
        Buffer[BytesRead]:= #0;
        OemToAnsi(Buffer,Buffer) ;

        AMemo.Lines.Add(MyStr);
        AMemo.Refresh;
        Application.ProcessMessages;

      FreeMem(Buffer) ;
      CloseHandle(ProcessInfo.hProcess) ;
      CloseHandle(ProcessInfo.hThread) ;
      CloseHandle(ReadPipe) ;

    end;

  end;

 end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  RunDosInMemo('c:\cons.exe',memo1) ;
end;

end.
что сделано не так??? может кто знает???
да к стати консольная программа cons.exe просто выводит на экран строку 12345678910, написана на pascal может я что то не понял и нельзя так делать????


X-Fire   (2009-11-27 11:22:00) [1]

Удалено модератором


Leonid Troyanovsky   (2009-08-26 13:21:00) [2]

Удалено модератором


mamedovvms   (2009-08-26 13:15:00) [3]

Удалено модератором


mamedovvms   (2009-08-26 13:13:00) [4]

Удалено модератором


Сергей М.   (2009-08-26 13:11:00) [5]

Удалено модератором


Leonid Troyanovsky   (2009-08-26 13:08:00) [6]

Удалено модератором


mamedovvms   (2009-08-26 13:08:00) [7]

Удалено модератором


Сергей М.   (2009-08-26 13:07:00) [8]

Удалено модератором


mamedovvms   (2009-08-26 13:06:00) [9]

Удалено модератором


Сергей М.   (2009-08-26 13:04:00) [10]

Удалено модератором


mamedovvms   (2009-08-26 12:58:00) [11]

Удалено модератором


Leonid Troyanovsky   (2009-08-26 12:49:00) [12]

Удалено модератором


Leonid Troyanovsky   (2009-08-26 12:43:00) [13]

Удалено модератором


mamedovvms   (2009-08-26 12:43:00) [14]

Удалено модератором


Leonid Troyanovsky   (2009-08-26 12:38:00) [15]

Удалено модератором


mamedovvms   (2009-08-26 12:36:00) [16]

Удалено модератором


Сергей М.   (2009-08-26 12:31:00) [17]


> не надо лишних комментариев


Не надо брать на слабо.
Так что мешает ?


mamedovvms   (2009-08-26 12:26:00) [18]

не надо лишних комментариев, вы тоже не асы во всем


Сергей М.   (2009-08-26 12:17:00) [19]


> что так трудно ответить


Что, так трудно заглянуть в справку к ф-ции Format() ?
А заодно и к WaitForSingleObject ?


mamedovvms   (2009-08-26 12:08:00) [20]

лучше не знать к чему привыкли мои руки, что так трудно ответить или просто или вы просто не падете так низко что бы нормально ответить что и где как создать ???? неужели так сложно, или просто ваш профессионализм не позволяет???


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо