[Back to REDIRECT SWAG index] [Back to Main SWAG index] [Original]
{
> When pkzip executes... it Writes to the screen and scrolls my
> screen up. Is there a way in which I can prevent pkzip from writing
> to the screen.
This thread comes up a bunch. Here's a tried and tested solution :
}
Unit Redir;
{ Redirect input, output, and errors }
Interface
Procedure RedirectInput (TextFile : String);
Procedure RedirectOutput (TextFile : String);
Procedure StdInput;
Procedure StdOutput;
Implementation
Uses
Dos;
Const
STDin = 0;
STdoUT = 1;
STDERR = 2;
Procedure Force_Dup (Existing, { Existing handle }
Second : Word); { Handle to place it to }
Var
R : Registers;
begin
r.AH := $46;
r.BX := Existing;
r.CX := Second;
MSDos (R);
if (r.Flags and FCarry) <> 0 then
Writeln ('Error ', r.AX, ' changing handle ', Second);
end;
Procedure RedirectInput (TextFile : String);
Var
TF : Text;
begin
Assign (TF, TextFile);
Reset (TF);
Force_Dup (TextRec (TF).Handle, STDin);
end;
Procedure RedirectOutput (TextFile : String);
Var
TF : Text;
begin
Assign (TF, TextFile);
ReWrite (TF);
Force_Dup (TextRec (TF).Handle, STdoUT);
Force_Dup (TextRec (TF).Handle, STDERR);
end;
Procedure StdInput;
begin
Assign (Input, '');
Reset (Input);
end;
Procedure StdOutPut;
begin
Assign (Output, '');
ReWrite (Output);
end;
end.
{------ cut here ------}
{
In your Program :
Uses Redir;
begin
RedirectOutput ('LOGFile.OUT');
Exec ('PKZIP.EXE', '');
StdOutPut;
end.
}
[Back to REDIRECT SWAG index] [Back to Main SWAG index] [Original]