home *** CD-ROM | disk | FTP | other *** search
- uses
- crt, eco_novl
-
- ;
-
-
- var
- station,
- retcode,
- volume_number,
- conntype,
- drive_num,
- server_num,
- count,
- handle_num : integer;
- node, username,
- volume_name,
- server,
- name, datetime,
- hex_id,
- realname,
- pathname,
- version,
- network,
- socket : string;
-
- { scan object variables }
- replysecurity : byte;
- object_type,
- replytype,
- replyflag,
- replyproperties : integer;
- lastseen, replyid : longint;
- object_name, replyname : string;
-
-
-
- procedure wait; { a simple pause function }
- begin
- writeln;
- write('press return to continue...');
- readln;
- clrscr;
- writeln;
- end;
-
-
- {
- this is the beginning - this program is an example only. if it proves
- to be useful, then feel free to do what you want with it :-)
- }
-
- begin
- getstation(station,retcode); { pull your station number from the network }
- getuser(station,username,retcode); { pull your current userid from the network }
- getnode(node,retcode); { pull your network physical id / never changes }
- get_internet_address(station,network,node,socket,retcode);
- getservername(server, retcode);
- getconnectioninfo(station,name,hex_id,conntype, datetime,retcode);
- gethexid(name,hex_id,retcode);
- clrscr;
- writeln('test program for novell turbo pascal unit');
- writeln('-----------------------------------------');
- writeln;
- writeln('logged into station #',station,',');
- writeln('using the username: ',username);
- writeln;
- writeln('your physical network node address is ',node);
- writeln;
- writeln('your network address is: ',network);
- writeln;
- writeln('you are communicating with ',server,' via socket ',socket);
- writeln;
- writeln('you are logged into server: ',server);
- writeln;
- writeln(name,', hex-id:',hex_id,' logged in at ',datetime);
- writeln;
-
- wait;
-
- for count := 1 to 8 do begin { loop through the 8 connected servers }
- get_file_server_name(count,server);
- if server <> '' then begin
- set_preferred_connection_id(count);
- getserverinfo;
- get_server_version(version);
- writeln(' server name: ',server,' running ',version);
- writeln(' max connects: ',serverinfo.connections_max);
- writeln(' connections in use: ',serverinfo.connections_in_use);
- writeln('peak connections used: ',serverinfo.peak_connections_used);
- writeln;
- end;
- end;
-
- wait;
-
- {-------------------------------------------------------------------------}
- { loop through the 32 possible volumes on all novell servers and retreive }
- { the name of the volume ie: sys: }
- {-------------------------------------------------------------------------}
-
- for count := 1 to 8 do begin { loop through 8 connected servers }
- get_file_server_name(count,server);
- if server <> '' then begin
- writeln('volumes mounted on ',server);
- set_preferred_connection_id(count);
- getserverinfo;
- for volume_number := 0 to serverinfo.max_connected_volumes do begin
- get_volume_name(volume_name,volume_number,retcode);
- if (volume_name > '') then writeln(
- ' network volume #',volume_number,' is called ',volume_name
- );
- end;
- writeln;
- end;
- end;
-
- wait;
-
- writeln; writeln('network mapped drives:'); writeln;
- for count := 1 to 32 do begin { check each dos drive 1=a: 2=b: 3=c: etc.. }
- get_drive_connection_id(count,server_num);
- if server_num > 0 then begin
- get_file_server_name(server_num,server);
- set_preferred_connection_id(server_num);
- get_drive_handle_id(count,handle_num);
- get_directory_path(handle_num,pathname,retcode);
- writeln('drive ',chr(count+64),': = ',server,'/',pathname);
- end;
- end;
- writeln;
-
- wait;
-
-
- lastseen := -1; { -1 means start at first entry }
- object_type := 1; {1=users 2=group 3=print server 4=file server}
- object_name := '*'; {wildcard '*' means everyone}
- retcode := 0;
- getserverinfo;
- count := 0;
- writeln('userlist for ',serverinfo.name); writeln;
- {if you want everyone, change the next line to => 'while retcode=0 do'}
- while retcode = 0 do begin
- scan_object(
- lastseen, object_type, object_name,
- replyid, replytype, replyname, replyflag, replysecurity,
- replyproperties, retcode
- );
- if retcode = 0 then begin
- inc(count);
- write(replyname:19);
- if (count mod 4) = 0 then writeln;
- lastseen := replyid;
- end;
- end;
- writeln;
-
- lastseen := -1; { -1 means start at first entry }
- object_type := 4; {1=users 2=group 3=print server 4=file server}
- object_name := '*'; {wildcard '*' means everyone}
- retcode := 0;
- getserverinfo;
- writeln;
- writeln('list of file servers');
- writeln;
- count := 0;
- {if you want everyone, change the next line to => 'while retcode=0 do'}
-
- while retcode = 0 do begin
- scan_object(
- lastseen, object_type, object_name,
- replyid, replytype, replyname, replyflag, replysecurity,
- replyproperties, retcode
- );
- if retcode = 0 then begin
- if (count mod 4) = 0 then writeln; inc(count);
- write(replyname:19);
- lastseen := replyid;
- end;
- end;
- writeln;
-
- wait;
-
-
- { the next few lines demo how to pull the realname from the server }
- get_realname(username,realname,retcode);
- writeln;
- writeln('username: ',username);
- writeln('realname: ',realname);
-
-
- {----------------------------------------------------------------------}
- { send a message to yourself. username was pulled by above routines }
- {----------------------------------------------------------------------}
- { the routines below might be commented out. i got tired of sending }
- { myself messages while testing the unit. you can un-comment the line }
- { to try it. }
- {----------------------------------------------------------------------}
-
-
- writeln;
- write('we will now send a one line message to all users logged in as: ');
- writeln(username);
- wait;
- send_message_to_username(username,' Test message CC:ALL by Unknown!.', retcode);
- end.
-
-
-
-
- any questions can be directed to:
-
- mark bramwell
- university of western ontario
- london, ontario, n6a 3k7
-
- phone: 519-473-3618 [work] 519-473-3618 [home]
-
- bitnet: mark@hamster.business.uwo.ca packet: ve3pzr @ ve3gyq
-
- anonymous ftp to 129.100.22.100 pascal directory api_tp6.zip
-
- (any other novell units gladly accepted.)
-