[Back to FILES SWAG index]  [Back to Main SWAG index]  [Original]

{
NORBERT IGL

> Anyone has got an idea on how to know if a drive is a real one or the
> result of a SUBST command Any help... welcome :-)

Well, DOS ( esp. COMMAND.COM ) has a undocumented Command
called TRUENAME, which takes wildcards also.
}

Program TrueName;

uses
  DOS;

function RealName(FakeName : String) : String;
Var
  Temp : String;
  Regs : Registers;
begin
  FakeName := FakeName + #0; { ASCIIZ }
  With Regs do
  begin
    AH := $60;
    DS := Seg(FakeName);
    SI := Ofs(FakeName[1]);
    ES := Seg(Temp);
    DI := OfS(Temp[1]);
    INTR($21, Regs);
    DOSERROR := AX * ((Flags And FCarry) shr 7);
    Temp[0] := #255;
    Temp[0] := CHAR(POS(#0, Temp) - 1);
  end;
  If DosError <> 0 then
    Temp := '';
  RealName := Temp;
end;

begin
  writeln(RealName(Paramstr(0)));
end.

[Back to FILES SWAG index]  [Back to Main SWAG index]  [Original]