【delphi开源代码栏目提醒】:网学会员鉴于大家对delphi开源代码十分关注,论文会员在此为大家搜集整理了“frm_GroupList.pas”一文,供大家参考学习
unit frm_GroupList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, ImgList, XPMan;
type
TNETRESOURCE = record
dwScope : DWORD;
dwType : DWORD;
dwDisplayType : DWORD;
dwUsage : DWORD;
lpLocalName : LPTSTR;
lpRemoteName : LPTSTR;
lpComment : LPTSTR;
lpProvider : LPTSTR;
end;
type TNetResourceArray = ^TNetResource;
type
TFrmGroupList = class(TForm)
BtnGroupList: TButton;
Image: TImageList;
GBxGroup: TGroupBox;
LVGroup: TListView;
BtnClose: TButton;
XPManifest1: TXPManifest;
procedure BtnGroupListClick(Sender: TObject);
procedure BtnCloseClick(Sender: TObject);
private
procedure GetDomainList(ts:Tstrings);
{ Private declarations }
public
{ Public declarations }
end;
var
FrmGroupList: TFrmGroupList;
implementation
{$R *.dfm}
procedure TFrmGroupList.GetDomainList(ts:Tstrings);
var
NetHand:THandle;
BuffSize,Count:DWord;
Buffer:Pointer;
i:integer;
RB:TNetResourceArray;
resu:DWord;
bs:string;
begin
WnetOpenEnum(RESOURCE_GLOBAL
NET,RESOURCETYPE_DISK,RESOURCEUSAGE_CONTAINER,Nil,NetHand);
Count:=$FFFFFFFF;
BuffSize:=sizeof(TNETRESOURCE)*20;
GetMem(Buffer,BuffSize);
resu:=WNetEnumResource(NetHand,Count,Pointer(buffer),BuffSize);
if (resu = No_error) or (resu <> ERROR_NO_MORe_ITEMS) then
begin
RB:=TNetResourceArray(Buffer);
try
for i:=0 to Count-1 do
begin
bs:=copy(RB^.lpRemoteName,0,strlen(RB^.lpRemoteName));
ts.Add(bs);
inc(RB);
end;
finally
WNetCloseEnum(NetHand);
FreeMem(Buffer);
end;
end;
end;
procedure TFrmGroupList.BtnGroupListClick(Sender: TObject);
var
s:TStrings;
i:integer;
LI:TListItem;
begin
S:=TStringList.Create;
GetDomainList(S);
LVGroup.Clear;
for i:=0 to S.Count -1 do
begin
LI:= LVGroup.Items.Add;
Li.Caption:=S.Strings[i];
end;
li:=nil;
s.Free;
end;
procedure TFrmGroupList.BtnCloseClick(Sender: TObject);
begin
Close;
end;
end.