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