From: "Ruslan R. Nurislamov" <hornet@civt.kazan.su>
Organization: Computer Center of the Kazan State University
Не знаю то ли нужно, но вот, шлю.
Кстати - это я уже высылал - в TPU-шке A_DESIGN оная весч была ...
---
My adresses :
RELCOM : hornet@civt.kazan.su
INTERNET : hornet@alpha.ksu.ras.ru
{> Cut here. FileName= EXENOCON.PAS }
{ Вызов программы с перенаправлением вывода в файл }
Procedure ExecNoCon(Prog,Param,ToOut : String);
Var NDir : Array[1..80] of Byte;
SSt : String;
I : Integer;
F : Text;
Reg : Registers;
Desc,
OldDisc : Word;
Begin
Sst:=ToOut;
Sst:=Sst+#0;
For I:=1 To Length(Sst) Do
Ndir[I]:=Ord(Sst[I]);
Assign(F,ToOut); { сие для создания файла нулевой длины }
Rewrite(F);
Close(F);
{Open File}
Reg.AH:=$3D; { открытие файла средствами DOS, дальше все прозрачно }
Reg.AL:=2;
Reg.DS:=Seg(Ndir);
Reg.DX:=Ofs(Ndir);
MsDos(Reg);
Desc:=Reg.AX;
{Duplicate Discriptor}
Reg.AH:=$45;
Reg.BX:=1;
MsDos(Reg);
Olddisc:=Reg.AX;
{ReDirect Discriptor}
Reg.AH:=$46;
Reg.BX:=Desc;
Reg.CX:=1;
MsDos(Reg);
{Close File}
Reg.AH:=$3E;
Reg.BX:=Desc;
MsDos(Reg);
{Execute File}
SwapVectors;
Exec(Prog,Param);
SwapVectors;
{Stay Old Descriptor}
Reg.AH:=$46;
Reg.BX:=Olddisc;
Reg.CX:=1;
MsDos(Reg);
{Close Olddisc}
Reg.AH:=$3E;
Reg.BX:=Olddisc;
MsDos(Reg);
End;
|