⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 动态取得win9598的网络邻居中的信息.htm

📁 对于学习很有帮助
💻 HTM
📖 第 1 页 / 共 2 页
字号:
 procedure TNetworkItems.SetItem(Index: Integer; Value: TNetworkItem); <br>
 <br>
 begin <br>
 <br>
 if (FList.Items[Index] <> nil) and (FList.Items[Index] <> Value) then <br>
 <br>
 TNetworkItem(FList.Items[Index]).Free; <br>
 <br>
 FList.Items[Index] := Value; <br>
 <br>
 end; <br>
 <br>
 function TNetworkItems.GetItem(Index: Integer): TNetworkItem; <br>
 <br>
 begin <br>
 <br>
 Result := TNetworkItem(FList.Items[Index]); <br>
 <br>
 end; <br>
 <br>
 procedure TNetworkItems.Clear; <br>
 <br>
 begin <br>
 <br>
 while Count > 0 do <br>
 <br>
 Delete(0); <br>
 <br>
 end; <br>
 <br>
 procedure TNetworkItems.Add(Item: TNetworkItem); <br>
 <br>
 begin <br>
 <br>
 FList.Add(Item); <br>
 <br>
 end; <br>
 <br>
 procedure TNetworkItems.Delete(Index: Integer); <br>
 <br>
 begin <br>
 <br>
 if FList.Items[Index] <> nil then <br>
 <br>
 TNetworkItem(FList.Items[Index]).Free; <br>
 <br>
 FList.Delete(Index); <br>
 <br>
 end; <br>
 <br>
 function TNetworkItems.GetCount: Integer; <br>
 <br>
 begin <br>
 <br>
 if FList <> nil then <br>
 <br>
 Result := FList.Count <br>
 <br>
 else <br>
 <br>
 Result := 0; <br>
 <br>
 end; <br>
 <br>
 { TNetworkBrowser } <br>
 <br>
 constructor TNetworkBrowser.Create(AOwner: TComponent); <br>
 <br>
 begin <br>
 <br>
 inherited Create(AOwner); <br>
 <br>
 FItems := TNetworkItems.Create; <br>
 <br>
 FScope := nsGlobal; <br>
 <br>
 FResourceType := nrAny; <br>
 <br>
 FUsage := []; <br>
 <br>
 end; <br>
 <br>
 destructor TNetworkBrowser.Destroy; <br>
 <br>
 begin <br>
 <br>
 if FItems <> nil then <br>
 <br>
 FItems.Free; <br>
 <br>
 inherited; <br>
 <br>
 end; <br>
 <br>
 procedure TNetworkBrowser.EnumerateNet(NetItems: TNetworkItems; lpnr: <br>
 <br>
 PNetResource); <br>
 <br>
 var <br>
 <br>
 dwResult, dwResultEnum: Integer; <br>
 <br>
 hEnum: THandle; <br>
 <br>
 cbBuffer, cEntries, i: Integer; <br>
 <br>
 nrArray: PNetResourceArray; <br>
 <br>
 NewItem: TNetworkItem; <br>
 <br>
 dwScope, dwType, dwUsage: Integer; <br>
 <br>
 begin <br>
 <br>
 cbBuffer := 16384; <br>
 <br>
 cEntries := $FFFFFFFF; <br>
 <br>
 case FScope of <br>
 <br>
 nsConnected: dwScope := RESOURCE_CONNECTED; <br>
 <br>
 nsGlobal: dwScope := RESOURCE_GLOBALNET; <br>
 <br>
 nsRemembered: dwScope := RESOURCE_REMEMBERED; <br>
 <br>
 nsContext: dwScope := RESOURCE_CONTEXT; <br>
 <br>
 else <br>
 <br>
 dwScope := RESOURCE_GLOBALNET; <br>
 <br>
 end; <br>
 <br>
 case FResourceType of <br>
 <br>
 nrAny: dwType := RESOURCETYPE_ANY; <br>
 <br>
 nrDisk: dwType := RESOURCETYPE_DISK; <br>
 <br>
 nrPrint: dwType := RESOURCETYPE_PRINT; <br>
 <br>
 else <br>
 <br>
 dwType := RESOURCETYPE_ANY; <br>
 <br>
 end; <br>
 <br>
 dwUsage := 0; <br>
 <br>
 if nuConnectable in FUsage then <br>
 <br>
 dwUsage := dwUsage or RESOURCEUSAGE_CONNECTABLE; <br>
 <br>
 if nuContainer in FUsage then <br>
 <br>
 dwUsage := dwUsage or RESOURCEUSAGE_CONTAINER; <br>
 <br>
 dwResult := WNetOpenEnum(dwScope, dwType, dwUsage, lpnr, hEnum); <br>
 <br>
 if dwResult <> NO_ERROR then Exit; <br>
 <br>
 GetMem(nrArray, cbBuffer); <br>
 <br>
 repeat <br>
 <br>
 dwResultEnum := WNetEnumResource(hEnum, cEntries, nrArray, cbBuffer); <br>
 <br>
 if dwResultEnum = NO_ERROR then <br>
 <br>
 for i := 0 to cEntries-1 do <br>
 <br>
 begin <br>
 <br>
 NewItem := TNetworkItem.Create; <br>
 <br>
 case nrArray[i].dwScope of <br>
 <br>
 RESOURCE_CONNECTED: NewItem.FScope := nsConnected; <br>
 <br>
 RESOURCE_GLOBALNET: NewItem.FScope := nsGlobal; <br>
 <br>
 RESOURCE_REMEMBERED: NewItem.FScope := nsRemembered; <br>
 <br>
 RESOURCE_CONTEXT: NewItem.FScope := nsContext; <br>
 <br>
 else <br>
 <br>
 NewItem.FScope := nsGlobal; <br>
 <br>
 end; <br>
 <br>
 case nrArray[i].dwType of <br>
 <br>
 RESOURCETYPE_ANY: NewItem.FResourceType := nrAny; <br>
 <br>
 RESOURCETYPE_DISK: NewItem.FResourceType := nrDisk; <br>
 <br>
 RESOURCETYPE_PRINT: NewItem.FResourceType := nrPrint; <br>
 <br>
 else <br>
 <br>
 NewItem.FResourceType := nrAny; <br>
 <br>
 end; <br>
 <br>
 case nrArray[i].dwDisplayType of <br>
 <br>
 RESOURCEDISPLAYTYPE_GENERIC: NewItem.FDisplay := ndGeneric; <br>
 <br>
 RESOURCEDISPLAYTYPE_DOMAIN: NewItem.FDisplay := ndDomain; <br>
 <br>
 RESOURCEDISPLAYTYPE_SERVER: NewItem.FDisplay := ndServer; <br>
 <br>
 RESOURCEDISPLAYTYPE_SHARE: NewItem.FDisplay := ndShare; <br>
 <br>
 RESOURCEDISPLAYTYPE_FILE: NewItem.FDisplay := ndFile; <br>
 <br>
 RESOURCEDISPLAYTYPE_GROUP: NewItem.FDisplay := ndGroup; <br>
 <br>
 RESOURCEDISPLAYTYPE_NETWORK: NewItem.FDisplay := ndNetwork; <br>
 <br>
 RESOURCEDISPLAYTYPE_ROOT: NewItem.FDisplay := ndRoot; <br>
 <br>
 RESOURCEDISPLAYTYPE_SHAREADMIN: NewItem.FDisplay := <br>
 <br>
 ndShareAdmin; <br>
 <br>
 RESOURCEDISPLAYTYPE_DIRECTORY: NewItem.FDisplay := <br>
 <br>
 ndDirectory; <br>
 <br>
 RESOURCEDISPLAYTYPE_TREE: NewItem.FDisplay := ndTree; <br>
 <br>
 RESOURCEDISPLAYTYPE_NDSCONTAINER: NewItem.FDisplay := <br>
 <br>
 ndNDSContainer; <br>
 <br>
 else <br>
 <br>
 NewItem.FDisplay := ndGeneric; <br>
 <br>
 end; <br>
 <br>
 NewItem.FUsage := []; <br>
 <br>
 if nrArray[i].dwUsage and RESOURCEUSAGE_CONNECTABLE <> 0 then <br>
 <br>
 Include(NewItem.FUsage, nuConnectable); <br>
 <br>
 if nrArray[i].dwUsage and RESOURCEUSAGE_CONTAINER <> 0 then <br>
 <br>
 Include(NewItem.FUsage, nuContainer); <br>
 <br>
 NewItem.FLocalName := StrPas(nrArray[i].lpLocalName); <br>
 <br>
 NewItem.FRemoteName := StrPas(nrArray[i].lpRemoteName); <br>
 <br>
 NewItem.FComment := StrPas(nrArray[i].lpComment); <br>
 <br>
 NewItem.FProvider := StrPas(nrArray[i].lpProvider); <br>
 <br>
 NetItems.Add(NewItem); <br>
 <br>
 // if container, call recursively <br>
 <br>
 if (nuContainer in NewItem.FUsage) and (FScope <> nsContext) then <br>
 <br>
 EnumerateNet(NewItem.FSubItems, @nrArray[i]) <br>
 <br>
 end; <br>
 <br>
 until dwResultEnum = ERROR_NO_MORE_ITEMS; <br>
 <br>
 FreeMem(nrArray); <br>
 <br>
 WNetCloseEnum(hEnum); <br>
 <br>
 end; <br>
 <br>
 procedure TNetworkBrowser.Refresh; <br>
 <br>
 begin <br>
 <br>
 FItems.Clear; <br>
 <br>
 if FActive then <br>
 <br>
 EnumerateNet(FItems, nil); <br>
 <br>
 end; <br>
 <br>
 procedure TNetworkBrowser.SetActive(Value: Boolean); <br>
 <br>
 begin <br>
 <br>
 if Value <> FActive then <br>
 <br>
 begin <br>
 <br>
 FActive := Value; <br>
 <br>
 Refresh; <br>
 <br>
 end; <br>
 <br>
 end; <br>
 <br>
 procedure TNetworkBrowser.SetScope(Value: TNetScope); <br>
 <br>
 begin <br>
 <br>
 if Value <> FScope then <br>
 <br>
 begin <br>
 <br>
 FScope := Value; <br>
 <br>
 Refresh; <br>
 <br>
 end; <br>
 <br>
 end; <br>
 <br>
 procedure TNetworkBrowser.SetResourceType(Value: TNetResourceType); <br>
 <br>
 begin <br>
 <br>
 if Value <> FResourceType then <br>
 <br>
 begin <br>
 <br>
 FResourceType := Value; <br>
 <br>
 Refresh; <br>
 <br>
 end; <br>
 <br>
 end; <br>
 <br>
 procedure TNetworkBrowser.SetUsage(Value: TNetUsage); <br>
 <br>
 begin <br>
 <br>
 if Value <> FUsage then <br>
 <br>
 begin <br>
 <br>
 FUsage := Value; <br>
 <br>
 Refresh; <br>
 <br>
 end; <br>
 <br>
 end; <br>
 <br>
 procedure TNetworkBrowser.Open; <br>
 <br>
 begin <br>
 <br>
 Active := True; <br>
 <br>
 end; <br>
 <br>
 procedure TNetworkBrowser.Close; <br>
 <br>
 begin <br>
 <br>
 Active := False; <br>
 <br>
 end; <br>
 <br>
 end. 

                  </TD>
              </TR>
              <TR vAlign=top> </TR>
              </TBODY> 
            </TABLE>
          </TD>
        </TR>
        </TBODY> 
      </TABLE>
    </TD>
  </TR>
  </TBODY> 
</TABLE>
<TABLE align=center border=0  cellPadding=0 cellSpacing=1 width=755>
  <TBODY> 
  <TR bgColor=#000000> 
    <TD align=middle colSpan=4 height=2 vAlign=top></TD>
  </TR>
  </TBODY>
</TABLE>

   <script src="../footnote.js" class="Small" ></script>

</BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -