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

Перенапрвление потоков   Найти похожие ветки 

← →
Lelik   (2004-12-23 07:52) [0]

Всем привет есть такой кусок начала функции:
function TMainForm.Raschet(infile:string):boolean ;
var
f:TextFile;
j:integer;
si:_STARTUPINFOA;
pi:_PROCESS_INFORMATION;
info : TOSVersionInfo;
ClassName : string;
Title : string;
begin
AssignFile(f,"in");
Rewrite(f);
WriteLn(f,trim(infile)+".dat");
WriteLn(f,"n");WriteLn(f,"n");WriteLn(f,"1");WriteLn(f,"1");WriteLn(f,"2");WriteLn(f,"3");WriteLn(f,"4");WriteLn(f,"5");
CloseFile(f);
GetDir(0,s);
if not CreateProcess(nil,"trakt < in > out",nil,nil,false,0,nil,nil,si,pi) then
begin
Exception.Create("Ошибка при запуске");
end else begin      

Трабла: как сделать так, чтобы trakt (досовская прога) смог просматривать файл in как если бы мы сделали это в командной строке например far’a?


← →
Dolt ©   (2004-12-23 09:18) [1]

1) Создать пайп
 with SecAttr do
 begin
   nlength              := SizeOf(TSecurityAttributes);
   binherithandle       := true;
   lpsecuritydescriptor := nil;
 end;
 if Createpipe (hReadPipe, hWritePipe, @SecAttr, 0) then
 .....  
2) Заполнить TStartUpInfo
   FillChar(StartupInfo, Sizeof(StartupInfo), #0);
   StartupInfo.cb          := SizeOf(StartupInfo);
   StartupInfo.hStdOutput  := hWritePipe;
   StartupInfo.hStdInput   := hReadPipe;
   StartupInfo.dwFlags     := STARTF_USESTDHANDLES +
                              STARTF_USESHOWWINDOW;
   StartupInfo.wShowWindow := SW_HIDE;
3) Запустить процесс



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

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



Память: 0.45 MB
Время: 0.022 c
3-1102433875
NikeOLD
2004-12-07 18:37
2005.01.09
Работа с БД посредством DLL


6-1098204378
Pat
2004-10-19 20:46
2005.01.09
Расшаривание виртуального диска в Win2k с правами пользователя


1-1103620841
Cosinus
2004-12-21 12:20
2005.01.09
Assigned &amp; Dispose. Что не так?


1-1103795423
TUser
2004-12-23 12:50
2005.01.09
Как может оптимизатор пропускать такое?


14-1103568792
Profi
2004-12-20 21:53
2005.01.09
Возможно ли сделать на Pascal е




   Наверх