|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Как запустить консольное приложение и перехватить вывод?
Вот код (взял из dkrb):
Код:
procedure ExecCmdine(const CmdLine: string; CmdResult: TStrings); var Output: PIOFile; Buffer: PChar; TempString: string; Line: string; BytesRead: Integer; const BufferSize: Integer = 1000; begin Output := popen(PChar(CmdLine), 'D:\Проекты\©Сапунов Василий\Мега Калькулятор 23\Mega Calc v1\Console\Integer\IntegerPlus.exe'); GetMem(Buffer, BufferSize); if Assigned(Output) then try while feof(Output) = 0 do begin BytesRead := Libc.fread(Buffer, 1, BufferSize, Output); SetLength(TempString, Length(TempString)+BytesRead); memcpy(@TempString[length(TempString)-(BytesRead-1)], Buffer, BytesRead); while Pos(#10, TempString) > 0 do begin Line := Copy(TempString, 1, Pos(#10, TempString)-1); if CmdResult<>nil then CmdResult.Add(Line); TempString := copy(TempString, Pos(#10, TempString)+1, Length(TempString)); end; end; finally Libc.pclose(output); wait(nil); FreeMem(Buffer,BufferSize); end; end; Но вот тут какие-то ошибки: Помогите... http://forceway.ru/ |
#2
|
|||
|
|||
Проверь не достающие модули.
|