[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]