- 4INT ----------------------------------------------------- It's interesting -
Msg : 40 of 202 Addr Date
From : Victor Snopov 2:5030/312.66 29.11.97
Subj : Что спрятано под SUBST
-------------------------------------------------------------------------------
Hi, Roman!
07 Nov 1997 at 23:22 you wrote to All:
RK> Хай All!
RK> Cлушайте ка, а как узнать куда и откуда SUBST напpавлен???
RK> Hу напpимеp, пишу SUBST X: C:\NEWS, потом в cпиcке вcех дpайвов
RK> знаю что X: - это cубcтовый дpайв, вот как мне cобcно получить этот
RK> C:\NEWS ???
Через Int21h/60h
See you, Victor.
--- timEd/386 1.10+
* Origin: Vitka Station St.Petersburg, Russia (2:5030/312.66)
{> Cut here. FileName= CANONIC.PAS }
{Определение канонического имени драйва, созданного по SUBST}
Uses
Dos ;
Function CanonicalName( Path : String ) : String ;
(*
Errors in InOutRes :
0 : OK
2 : invalid source name
3 : invalid device or malformed path
else : ?
*)
Var
Reg : Registers ;
S : String[128] ;
P : String[128] ;
begin
P := Path + #0;
With Reg do
begin
AH := $60 ;
DS := Seg(P[1]) ;
SI := Ofs(P[1]) ;
ES := Seg(S[1]);
DI := Ofs(S[1]);
MsDos(Reg) ;
if Odd(Flags) then
begin
InOutRes := AX ;
CanonicalName := '' ;
end
else
begin
InOutRes := 0 ;
S[0] := #128 ;
S[0] := Chr(Pos(#0,S)-1) ;
CanonicalName := S ;
end ;
end ;
end ;
begin
WriteLn(CanonicalName(ParamStr(1))) ;
WriteLn('IOResult = ',IOResult) ;
end.
|