[Back to NETWORK SWAG index] [Back to Main SWAG index] [Original]
{
±i'm trying to find a method by which i can, from within a TP Program,
±detect whether or not the NetWare shell has been loaded (Net3, NetX, or
±whatever); i've figured out how to determine if IPX is running, but
±can't seem to nail down the shell; the general idea is to detect IPX,
±detect the shell, determine whether or not the user is logged in, and if
±not, give them the oppurtUnity to do so; i've got most of the rest
±figured out, but can't find the shell; any help would be greatly
±appreciated
Try Interrupt 21h, Function EAh, GetShellVersion;
}
Uses
{$IFDEF DPMI}
WinDos;
{$ELSE}
Dos;
{$endIF}
Var
vOS,
vHardwareType,
vShellMajorVer,
vShellMinorVer,
vShellType,
vShellRevision : Byte;
{$IFDEF DPMI}
vRegs : tRegisters;
{$ELSE}
vRegs : Registers;
{$endIF}
Procedure GetShellVersion;
begin
vOS := 0;
vHardwareType := 0;
vShellMajorVer := 0;
vShellMinorVer := 0;
vShellType := 0;
vShellRevision := 0;
FillChar(vRegs, SizeOf(vRegs), 0);
With vRegs DO
begin
AH := $EA;
Intr($21, vRegs);
vOS := AH; (* $00 = MS-Dos *)
vHardwareType := AL; (* $00 = PC, $01 = Victor 9000 *)
vShellMajorVer := BH;
vShellMinorVer := BL;
vShellType := CH; (* $00 = conventional memory *)
(* $01 = expanded memory *)
(* $02 = extended memory *)
vShellRevision := CL;
end;
end;
begin
GetShellVersion;
Writeln(vOS);
Readln;
end.
[Back to NETWORK SWAG index] [Back to Main SWAG index] [Original]