@netsessionenumnt := getprocaddress(flibhandle, 'netsessionenum');
if not assigned(netsessionenumnt) then
begin
freelibrary(flibhandle);
exit;
end;
sessioninfo502 := nil;
if netsessionenumnt(nil, nil, nil, 502, @sessioninfo502, dword(-1), @entriesreadnt, @totalentries, nil) = 0 then
for i := 0 to entriesreadnt - 1 do
list.addobject(string(sessioninfo502^[i].sesi502_cname), tsessioninfo502obj.create(sessioninfo502^[i]));
end else begin
flibhandle := loadlibrary('svrapi.dll');
if flibhandle = 0 then exit;
@netsessionenum := getprocaddress(flibhandle, 'netsessionenum');
if not assigned(netsessionenum) then
begin
freelibrary(flibhandle);
exit;
end;
if netsessionenum(nil, 50, @sessioninfo50, sizeof(sessioninfo50), @entriesread, @totalavial) = 0 then
for i := 0 to entriesread - 1 do
list.addobject(string(sessioninfo50[i].sesi50_cname), tsessioninfo50obj.create(sessioninfo50[i]));
end;
freelibrary(flibhandle);
end;
procedure closesession(sessionname: string);
var
os: boolean;
flibhandle: thandle;
cnament: pwidechar;
cname9x: pansichar;
key: smallint;
begin
if not isnt(os) then exit;
if os then begin
flibhandle := loadlibrary('netapi32.dll');
if flibhandle = 0 then exit;
@netsessiondelnt := getprocaddress(flibhandle, 'netsessiondel');
if not assigned(netsessiondelnt) then
begin
freelibrary(flibhandle);
exit;
end;
cnament := pwchar(widestring('\\' + sessionname));
netsessiondelnt(nil, cnament, nil);
end else begin
flibhandle := loadlibrary('svrapi.dll');
if flibhandle = 0 then exit;
@netsessiondel := getprocaddress(flibhandle, 'netsessiondel');
if not assigned(netsessiondel) then
begin
freelibrary(flibhandle);
exit;
end;
cname9x := pansichar(sessionname);
// key := sessionclosekey[i];
// netsessiondel(nil,cname9x,key);
end;
freelibrary(flibhandle);
end;
procedure getfiles(fileslist: tstrings);
var
os: boolean;
flibhandle: thandle;
fileinfont: pfileinfo3array;
fileinfo9x: array[0..512] of tfileinfo50;
totalentries, entriesreadnt: dword;
entriesread, totalavial: word;
i: integer;
begin
if not isnt(os) then exit;
fileslist.clear;
if os then begin
flibhandle := loadlibrary('netapi32.dll');
if flibhandle = 0 then exit;
@netfileenumnt := getprocaddress(flibhandle, 'netfileenum');
if not assigned(netfileenumnt) then
begin
freelibrary(flibhandle);
exit;
end;
fileinfont := nil;
if netfileenumnt(nil, nil, nil, 3, @fileinfont, dword(-1), @entriesreadnt, @totalentries, nil) = 0 then
for i := 0 to entriesreadnt - 1 do
fileslist.addobject(string(inttostr(fileinfont^[i].fi3_id)), tfileinfo3obj.create(fileinfont^[i]));
end else begin
flibhandle := loadlibrary('svrapi.dll');
if flibhandle = 0 then exit;
@netfileenum := getprocaddress(flibhandle, 'netfileenum');
if not assigned(netfileenum) then
begin
freelibrary(flibhandle);
exit;
end;
if netfileenum(nil, nil, 50, @fileinfo9x, sizeof(fileinfo9x), @entriesread, @totalavial) = 0 then
for i := 0 to entriesread - 1 do
fileslist.addobject(inttostr(fileinfo9x[i].fi50_id), tfileinfo50obj.create(fileinfo9x[i]));
end;