网络小工具 ShareView[6]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 lyris 的 blog

    @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;

本文关键:网络小工具 ShareView
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top