תÖÁ·±ÌåÖÐÎÄ°æ¡¡¡¡¡¡  | ÍøÕ¾Ê×Ò³ | Í¼ÎĽ̳̠| ×ÊÔ´ÏÂÔØ | Õ¾³¤²©¿Í | Í¼Æ¬ËزĠ| Î人seo | Î人ÍøÕ¾ÓÅ»¯ | 
×îй«¸æ£º     ÃôèºÍø|½Ìѧ×ÊԴѧϰ×ÊÁÏÓÀ¾ÃÃâ·Ñ·ÖÏíÕ¾£¡  [mintao  2008Äê9ÔÂ2ÈÕ]        
ÄúÏÖÔÚµÄλÖ㺠ѧϰ±Ê¼Ç >> Í¼ÎĽ̳̠>> Èí¼þ¿ª·¢ >> Delphi³ÌÐò >> ÕýÎÄ
ÍøÂçС¹¤¾ß ShareView    ÈÈ     ¡ï¡ï¡ï¡ï

ÍøÂçС¹¤¾ß ShareView

×÷ÕߣºãÉÌÎ ÎÄÕÂÀ´Ô´£ºãÉÌεÄѧϰ±Ê¼Ç µã»÷Êý£º8282 ¸üÐÂʱ¼ä£º2009/4/23 18:28:24
:= LoadLibrary(''''SVRAPI.DLL'''');
    if FLibHandle = 0 then Exit;
    @NetShareDel := GetProcAddress(FLibHandle, ''''NetShareDel'''');
    if not Assigned(NetShareDel) then
    begin
      FreeLibrary(FLibHandle);
      Exit;
    end;
    FillChar(Name9x, SizeOf(Name9x), #0);
    move(ShareName[1], Name9x[0], Length(ShareName));
    NetShareDel(nil, @Name9x, 0);
  end;
  FreeLibrary(FLibHandle);
end;

procedure AddShare(ShareName, ShareDir: string);
const
  STYPE_DISKTREE = 0;
  ACCESS_ALL = 258;
  SHI50F_FULL = 258;
var
  FLibHandle: THandle;
  Share9x: TShareInfo50;
  ShareNT: TShareInfo2;
  TmpDirNT, TmpNameNT: PWChar;
  OS: Boolean;
  TmpLength: Integer;
begin
  if not IsNT(OS) then Exit;

  if OS then begin
    FLibHandle := LoadLibrary(''''NETAPI32.DLL'''');
    if FLibHandle = 0 then Exit;
    @NetShareAddNT := GetProcAddress(FLibHandle, ''''NetShareAdd'''');
    if not Assigned(NetShareAddNT) then
    begin
      FreeLibrary(FLibHandle);
      Exit;
    end;
    TmpLength := SizeOF(WideChar) * 256;

    GetMem(TmpNameNT, TmpLength);
    StringToWideChar(ShareName, TmpNameNT, TmpLength);
    ShareNT.shi2_netname := TmpNameNT;

    ShareNT.shi2_type := STYPE_DISKTREE;
    ShareNT.shi2_remark := '''''''';
    ShareNT.shi2_permissions := ACCESS_ALL;
    ShareNT.shi2_max_uses := DWORD(-1);
    ShareNT.shi2_current_uses := 0;

    GetMem(TmpDirNT, TmpLength);
    StringToWideChar(ShareDir, TmpDirNT, TmpLength);
    ShareNT.shi2_path := TmpDirNT;

    ShareNT.shi2_passwd := '''''''';

    NetShareAddNT(nil, 2, @ShareNT, nil);
    FreeMem(TmpNameNT);
    FreeMem(TmpDirNT);
  end else begin
    FLibHandle := LoadLibrary(''''SVRAPI.DLL'''');
    if FLibHandle = 0 then Exit;
    @NetShareAdd := GetProcAddress(FLibHandle, ''''NetShareAdd'''');
    if not Assigned(NetShareAdd) then
    begin
      FreeLibrary(FLibHandle);
      Exit;
    end;
    FillChar(Share9x.shi50_netname, SizeOf(Share9x.shi50_netname), #0);
    move(ShareName[1], Share9x.shi50_netname[0], Length(ShareName));
    Share9x.shi50_type := STYPE_DISKTREE;
    Share9x.shi50_flags := SHI50F_FULL;
    FillChar(Share9x.shi50_remark,
      SizeOf(Share9x.shi50_remark), #0);
    FillChar(Share9x.shi50_path,
      SizeOf(Share9x.shi50_path), #0);
    Share9x.shi50_path := PAnsiChar(ShareDir);
    FillChar(Share9x.shi50_rw_password,
      SizeOf(Share9x.shi50_rw_password), #0);
    FillChar(Share9x.shi50_ro_password,
      SizeOf(Share9x.shi50_ro_password), #0);
    NetShareAdd(nil, 50, @Share9x, SizeOf(Share9x));
  end;
  FreeLibrary(FLibHandle);
end;

procedure GetSessions(List: TStrings);
var
  OS: Boolean;
  FLibHandle: THandle;
  SessionInfo50: array[0..512] of TSessionInfo50;
  SessionInfo502: PSessionInfo502Array;
  TotalEntries, EntriesReadNT: DWORD;
  EntriesRead, TotalAvial: Word;
  i: integer;
begin
  List.Clear;
  if not IsNT(OS) then Exit;
  if OS then begin
    FLibHandle := LoadLibrary(''''NETAPI32.DLL'''');
    if FLibHandle = 0 then Exit;
    @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;
  FreeLibrary(FLibHandle);
end;

procedure CloseFile(FileIndex: string);
var
  OS: Boolean;
  FLibHandle: THandle;
begin
  if not IsNT(OS) then Exit;
  if OS then begin //Êî?äëÿ NT
    FLibHandle := LoadLibrary(''''NETAPI32.DLL'''');
    if FLibHandle = 0 then Exit;
    @NetFileClose := GetProcAddress(FLibHandle, ''''NetFileClose'''');
    if not Assigned(NetFileClose) then
    begin
      FreeLibrary(FLibHan

ÉÏÒ»Ò³  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ...  ÏÂÒ»Ò³ >> 


ûÓÐÏà¹Ø½Ì³Ì
½Ì³Ì¼È룺mintao    ÔðÈα༭£ºmintao 
  • ÉÏһƪ½Ì³Ì£º

  • ÏÂһƪ½Ì³Ì£º
  • ¡¾×ÖÌ壺С ´ó¡¿¡¾·¢±íÆÀÂÛ¡¿¡¾¼ÓÈëÊղء¿¡¾¸æËߺÃÓÑ¡¿¡¾´òÓ¡´ËÎÄ¡¿¡¾¹Ø±Õ´°¿Ú¡¿
    ¡¡ ×¢£º±¾Õ¾²¿·ÖÎÄÕÂÔ´ÓÚ»¥ÁªÍø£¬°æȨ¹éÔ­×÷ÕßËùÓУ¡ÈçÓÐÇÖȨ£¬ÇëÔ­×÷ÕßÓë±¾Õ¾ÁªÏµ£¬±¾Õ¾½«Á¢¼´É¾³ý£¡ ±¾Õ¾ÎÄÕ³ýÌرð×¢Ã÷Íâ¾ù¿ÉתÔØ£¬µ«Ðè×¢Ã÷³ö´¦£¡ [MinTaoѧÒÔÖÂÓÃÍø]
    ¡¡¡¡ÍøÓÑÆÀÂÛ£º£¨Ö»ÏÔʾ×îÐÂ10Ìõ¡£ÆÀÂÛÄÚÈÝÖ»´ú±íÍøÓѹ۵㣬Óë±¾Õ¾Á¢³¡Î޹أ¡£©

    ͬÀàÀ¸Ä¿
    ¡¤ CÓïÑÔϵÁР ¡¤ VB.NET³ÌÐò
    ¡¤ JAVA¿ª·¢  ¡¤ Delphi³ÌÐò
    ¡¤ ½Å±¾ÓïÑÔ
    ¸ü¶àÄÚÈÝ
    ÈÈÃÅÍƼö ¸ü¶àÄÚÈÝ
  • ûÓн̳Ì
  • ÔÞÖúÁ´½Ó
    ¸ü¶àÄÚÈÝ
    ãÉÌβ©ÎÄ ¸ü¶à¹ØÓÚÎ人SEOµÄÄÚÈÝ
    500 - ÄÚ²¿·þÎñÆ÷´íÎó¡£

    500 - ÄÚ²¿·þÎñÆ÷´íÎó¡£

    Äú²éÕÒµÄ×ÊÔ´´æÔÚÎÊÌ⣬Òò¶øÎÞ·¨ÏÔʾ¡£

    | ÉèΪÊ×Ò³ |¼ÓÈëÊÕ²Ø | ÁªÏµÕ¾³¤ | ÓÑÇéÁ´½Ó | °æȨÉêÃ÷ | ¹ã¸æ·þÎñ
    MinTaoѧÒÔÖÂÓÃÍø

    Copyright £À 2007-2012 ÃôèºÍø(Ãô¶øºÃѧ£¬ÎÄèºÎäÂÔ--MinTao.Net)£¨Ñ§Ï°±Ê¼Ç£© Inc All Rights Reserved.
    ãÉÌΠͶ·Å¹ã¸æ¡¢ÄÚÈݺÏ×÷ÇëQÎÒ! E_mail:admin@mintao.net(»¶Ó­Ìṩѧϰ×ÊÔ´)

    Õ¾³¤£ºMinTao ICP±¸°¸ºÅ£º¶õICP±¸11006601ºÅ-18

    ãÉÌÎÕ¾ÃË:Ò½Ò©´óÈ«-ÎäѨÍø¡£A´òÔìB¡¢C¡¢D¡­¡­
    ÏÌÄþÍøÂ羯²ì±¨¾¯Æ½Ì¨