home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PASCAL / ECO30603.ZIP / ECO30603.LZH / ECOLIBII / DEMOS / NOVELL / ME.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-12-21  |  7.0 KB  |  226 lines

  1. uses
  2.   crt, eco_novl
  3.   
  4.   ;
  5.  
  6.  
  7. var
  8.   station,
  9.   retcode,
  10.   volume_number,
  11.   conntype,
  12.   drive_num,
  13.   server_num,
  14.   count,
  15.   handle_num             : integer;
  16.   node, username,
  17.   volume_name,
  18.   server,
  19.   name, datetime,
  20.   hex_id,
  21.   realname,
  22.   pathname,
  23.   version,
  24.   network,
  25.   socket                 :  string;
  26.  
  27.   { scan object variables }
  28.   replysecurity          :    byte;
  29.   object_type,
  30.   replytype,
  31.   replyflag,
  32.   replyproperties        : integer;
  33.   lastseen, replyid      : longint;
  34.   object_name, replyname :  string;
  35.  
  36.  
  37.  
  38.   procedure wait;  { a simple pause function }
  39.   begin
  40.     writeln;
  41.     write('press return to continue...');
  42.     readln;
  43.     clrscr;
  44.     writeln;
  45.   end;
  46.  
  47.  
  48.   {
  49.     this is the beginning - this program is an example only.  if it proves
  50.     to be useful, then feel free to do what you want with it  :-)
  51.   }
  52.  
  53. begin
  54.   getstation(station,retcode);       { pull your station number from the network }
  55.   getuser(station,username,retcode); { pull your current userid from the network }
  56.   getnode(node,retcode);             { pull your network physical id / never changes }
  57.   get_internet_address(station,network,node,socket,retcode);
  58.   getservername(server, retcode);
  59.   getconnectioninfo(station,name,hex_id,conntype, datetime,retcode);
  60.   gethexid(name,hex_id,retcode);
  61.   clrscr;
  62.   writeln('test program for novell turbo pascal unit');
  63.   writeln('-----------------------------------------');
  64.   writeln;
  65.   writeln('logged into station #',station,',');
  66.   writeln('using the username: ',username);
  67.   writeln;
  68.   writeln('your physical network node address is ',node);
  69.   writeln;
  70.   writeln('your network address is: ',network);
  71.   writeln;
  72.   writeln('you are communicating with ',server,' via socket ',socket);
  73.   writeln;
  74.   writeln('you are logged into server: ',server);
  75.   writeln;
  76.   writeln(name,', hex-id:',hex_id,' logged in at ',datetime);
  77.   writeln;
  78.  
  79.   wait;
  80.  
  81.   for count := 1 to 8 do begin { loop through the 8 connected servers }
  82.     get_file_server_name(count,server);
  83.     if server <> '' then begin
  84.       set_preferred_connection_id(count);
  85.       getserverinfo;
  86.       get_server_version(version);
  87.       writeln('          server name: ',server,' running ',version);
  88.       writeln('         max connects: ',serverinfo.connections_max);
  89.       writeln('   connections in use: ',serverinfo.connections_in_use);
  90.       writeln('peak connections used: ',serverinfo.peak_connections_used);
  91.       writeln;
  92.     end;
  93.   end;
  94.  
  95.   wait;
  96.  
  97.   {-------------------------------------------------------------------------}
  98.   { loop through the 32 possible volumes on all novell servers and retreive }
  99.   { the name of the volume     ie:  sys:                                    }
  100.   {-------------------------------------------------------------------------}
  101.  
  102.   for count := 1 to 8 do begin { loop through 8 connected servers }
  103.     get_file_server_name(count,server);
  104.     if server <> '' then begin
  105.       writeln('volumes mounted on ',server);
  106.       set_preferred_connection_id(count);
  107.       getserverinfo;
  108.       for volume_number := 0 to serverinfo.max_connected_volumes do begin
  109.         get_volume_name(volume_name,volume_number,retcode);
  110.         if (volume_name > '') then writeln(
  111.           '  network volume #',volume_number,' is called ',volume_name
  112.         );
  113.       end;
  114.       writeln;
  115.     end;
  116.   end;
  117.  
  118.   wait;
  119.  
  120.   writeln; writeln('network mapped drives:');  writeln;
  121.   for count := 1 to 32 do begin { check each dos drive 1=a: 2=b: 3=c: etc.. }
  122.     get_drive_connection_id(count,server_num);
  123.     if server_num > 0 then begin
  124.       get_file_server_name(server_num,server);
  125.       set_preferred_connection_id(server_num);
  126.       get_drive_handle_id(count,handle_num);
  127.       get_directory_path(handle_num,pathname,retcode);
  128.       writeln('drive ',chr(count+64),': = ',server,'/',pathname);
  129.     end;
  130.   end;
  131.   writeln;
  132.   
  133.   wait;
  134.  
  135.  
  136.   lastseen := -1;      { -1 means start at first entry }
  137.   object_type := 1;    {1=users 2=group 3=print server 4=file server}
  138.   object_name := '*';  {wildcard '*' means everyone}
  139.   retcode := 0;
  140.   getserverinfo;
  141.   count := 0;
  142.   writeln('userlist for ',serverinfo.name); writeln;
  143.   {if you want everyone,  change the next line to =>  'while retcode=0 do'}
  144.   while retcode = 0 do begin
  145.     scan_object(
  146.       lastseen, object_type, object_name,
  147.       replyid, replytype, replyname, replyflag, replysecurity,
  148.       replyproperties, retcode
  149.     );
  150.     if retcode = 0 then begin
  151.       inc(count);
  152.       write(replyname:19);
  153.       if (count mod 4) = 0 then writeln;
  154.       lastseen := replyid;
  155.     end;
  156.   end;
  157.   writeln;
  158.  
  159.   lastseen := -1;      { -1 means start at first entry }
  160.   object_type := 4;    {1=users 2=group 3=print server 4=file server}
  161.   object_name := '*';  {wildcard '*' means everyone}
  162.   retcode := 0;
  163.   getserverinfo;
  164.   writeln;
  165.   writeln('list of file servers');
  166.   writeln;
  167.   count := 0;
  168.   {if you want everyone,  change the next line to =>  'while retcode=0 do'}
  169.  
  170.   while retcode = 0 do begin
  171.     scan_object(
  172.       lastseen, object_type, object_name,
  173.       replyid, replytype, replyname, replyflag, replysecurity,
  174.       replyproperties, retcode
  175.     );
  176.     if retcode = 0 then begin
  177.       if (count mod 4) = 0 then writeln; inc(count);
  178.       write(replyname:19);
  179.       lastseen := replyid;
  180.     end;
  181.   end;
  182.   writeln;
  183.  
  184.   wait;
  185.  
  186.  
  187.   { the next few lines demo how to pull the realname from the server }
  188.   get_realname(username,realname,retcode);
  189.   writeln;
  190.   writeln('username: ',username);
  191.   writeln('realname: ',realname);
  192.  
  193.  
  194.   {----------------------------------------------------------------------}
  195.   { send a message to yourself.  username was pulled by above routines   }
  196.   {----------------------------------------------------------------------}
  197.   { the routines below might be commented out.  i got tired of sending   }
  198.   { myself messages while testing the unit.  you can un-comment the line }
  199.   { to try it.                                                           }
  200.   {----------------------------------------------------------------------}
  201.  
  202.  
  203.   writeln;
  204.   write('we will now send a one line message to all users logged in as: ');
  205.   writeln(username);
  206.   wait;
  207.   send_message_to_username(username,' Test message CC:ALL by Unknown!.', retcode);
  208. end.
  209.  
  210.  
  211.  
  212.  
  213.  any questions can be directed to:                               
  214.                                                                  
  215.  mark bramwell                                                   
  216.  university of western ontario                                   
  217.  london, ontario, n6a 3k7                                        
  218.                                                                  
  219.  phone:  519-473-3618 [work]              519-473-3618 [home]    
  220.                                                                  
  221.  bitnet: mark@hamster.business.uwo.ca     packet: ve3pzr @ ve3gyq
  222.                                                                  
  223.  anonymous ftp to 129.100.22.100  pascal directory  api_tp6.zip  
  224.  
  225.  (any other novell units gladly accepted.)
  226.