rsconst GroupName: String List: TStringList: BooleantypeTNetResourceArray TNetResource //网络类型的数组varNetResource: TNetResourceBuf: PointerCount BufSize Res: DWordInd: IntegerlphEnum: THandleTemp: TNetResourceArraybeginResult : FalseList.ClearFillCharNetResource SizeOfNetResource 0 //初始化网络层次信息NetResource.lpRemoteName : GroupName1 //指定工作组名称NetResource.dwDisplayType : RESOURCEDISPLAYTYPE_SERVER //类型为服务器(工作组)NetResource.dwUsage : RESOURCEUSAGE_CONTAINERNetResource.dwScope : RESOURCETYPE_DISK //列举文件资源信息 //获取指定工作组的网络资源句柄Res : WNetOpenEnumRESOURCE_GLOBALNET RESOURCETYPE_DISK RESOURCEUSAGE_CONTAINER NetResource lphEnumif Res NO_ERROR then Exit //执行失败while True do begin//列举指定工作组的网络资源 Count : FFFFFFFF //不限资源数目 BufSize : 8192 //缓冲区大小设置为 8K GetMemBuf BufSize //申请内存,用于获取工作组信息 //获取计算机名称 Res : WNetEnumResourcelphEnum Count PointerBuf BufSize if Res ERROR_NO_MORE_ITEMS then break //资源列举完毕 if Res NO_ERROR then Exit //执行失败 Temp : TNetResourceArrayBuf for Ind : 0 to Count - 1 do begin//列举工作组的计算机名称 //获取工作组的计算机名称,2 表示删除,如wangfajunwangfajun List.AddTemp.lpRemoteName 2 IncTemp end FreeMemBufendRes : WNetCloseEnumlphEnum //关闭一次列举if Res NO_ERROR then exit //执行失败Result : Trueendprocedure TForm1.FormCreateSender: TObjectvarWSAData: TWSADataHostEnt: PHostEntsIP: Stringi j: Integerlist1 list2: TStringListbeginWSAStartup2 WSADatalist1 : TStringList.Createlist2 : TStringList.Createif GetServerListlist1 then begin for i : 0 to list1.Count - 1 do begin if not GetUserslist1.Stringsi list2 then Continue for j : 0 to list2.Count - 1 do begin HostEnt : gethostbynamePCharlist2.Stringsj if HostEnt nil then begin with HostEnt do sIP : Formatd.d.d.d Byteh_addr0 Byteh_addr1Byteh_addr2 Byteh_addr3 end ListBox1.Items.Addlist2.StringsjsIP end endendlist1.Freelist2.FreeWSACleanupendend.
上一篇:
留言板与公告板
下一篇:
法律专业开题报告范文