📄 wzjh35.htm
字号:
SetItem; default;<br>
property Count: Integer read GetCount;<br>
end;<br>
TNetworkBrowser = class(TComponent)<br>
private<br>
FItems: TNetworkItems;<br>
FScope: TNetScope;<br>
FResourceType: TNetResourceType;<br>
FUsage: TNetUsage;<br>
FActive: Boolean;<br>
procedure Refresh;<br>
procedure SetActive(Value: Boolean);<br>
procedure SetScope(Value: TNetScope);<br>
procedure SetResourceType(Value: TNetResourceType);<br>
procedure SetUsage(Value: TNetUsage);<br>
procedure EnumerateNet(NetItems: TNetworkItems; lpnr: PNetResource);<br>
protected<br>
public<br>
constructor Create(AOwner: TComponent); override;<br>
destructor Destroy; override;<br>
procedure Open;<br>
procedure Close;<br>
property Items: TNetworkItems read FItems;<br>
published<br>
property Scope: TNetScope read FScope write SetScope default nsGlobal;<br>
property ResourceType: TNetResourceType read FResourceType<br>
write SetResourceType default nrAny;<br>
property Usage: TNetUsage read FUsage write SetUsage default [];<br>
property Active: Boolean read FActive write SetActive default False;<br>
end;<br>
implementation<br>
type<br>
PNetResourceArray = ^TNetResourceArray;<br>
TNetResourceArray = array[0..0] of TNetResource;<br>
{ TNetworkItem }<br>
constructor TNetworkItem.Create;<br>
begin<br>
inherited;<br>
FSubItems := TNetworkItems.Create;<br>
end;<br>
destructor TNetworkItem.Destroy;<br>
begin<br>
if FSubItems <> nil then<br>
FSubItems.Free;<br>
inherited;<br>
end;<br>
{ TNetworkItems }<br>
constructor TNetworkItems.Create;<br>
begin<br>
inherited;<br>
FList := TList.Create;<br>
end;<br>
destructor TNetworkItems.Destroy;<br>
begin<br>
Clear;<br>
if FList <> nil then<br>
FList.Free;<br>
inherited;<br>
end;<br>
procedure TNetworkItems.SetItem(Index: Integer; Value: TNetworkItem);<br>
begin<br>
if (FList.Items[Index] <> nil) and (FList.Items[Index] <> Value) then<br>
TNetworkItem(FList.Items[Index]).Free;<br>
FList.Items[Index] := Value;<br>
end;<br>
function TNetworkItems.GetItem(Index: Integer): TNetworkItem;<br>
begin<br>
Result := TNetworkItem(FList.Items[Index]);<br>
end;<br>
procedure TNetworkItems.Clear;<br>
begin<br>
while Count > 0 do<br>
Delete(0);<br>
end;<br>
procedure TNetworkItems.Add(Item: TNetworkItem);<br>
begin<br>
FList.Add(Item);<br>
end;<br>
procedure TNetworkItems.Delete(Index: Integer);<br>
begin<br>
if FList.Items[Index] <> nil then<br>
TNetworkItem(FList.Items[Index]).Free;<br>
FList.Delete(Index);<br>
end;<br>
function TNetworkItems.GetCount: Integer;<br>
begin<br>
if FList <> nil then<br>
Result := FList.Count<br>
else<br>
Result := 0;<br>
end;<br>
{ TNetworkBrowser }<br>
constructor TNetworkBrowser.Create(AOwner: TComponent);<br>
begin<br>
inherited Create(AOwner);<br>
FItems := TNetworkItems.Create;<br>
FScope := nsGlobal;<br>
FResourceType := nrAny;<br>
FUsage := [];<br>
end;<br>
destructor TNetworkBrowser.Destroy;<br>
begin<br>
if FItems <> nil then<br>
FItems.Free;<br>
inherited;<br>
end;<br>
procedure TNetworkBrowser.EnumerateNet(NetItems: TNetworkItems; lpnr:<br>
PNetResource);<br>
var<br>
dwResult, dwResultEnum: Integer;<br>
hEnum: THandle;<br>
cbBuffer, cEntries, i: Integer;<br>
nrArray: PNetResourceArray;<br>
NewItem: TNetworkItem;<br>
dwScope, dwType, dwUsage: Integer;<br>
begin<br>
cbBuffer := 16384;<br>
cEntries := $FFFFFFFF;<br>
case FScope of<br>
nsConnected: dwScope := RESOURCE_CONNECTED;<br>
nsGlobal: dwScope := RESOURCE_GLOBALNET;<br>
nsRemembered: dwScope := RESOURCE_REMEMBERED;<br>
nsContext: dwScope := RESOURCE_CONTEXT;<br>
else<br>
dwScope := RESOURCE_GLOBALNET;<br>
end;<br>
case FResourceType of<br>
nrAny: dwType := RESOURCETYPE_ANY;<br>
nrDisk: dwType := RESOURCETYPE_DISK;<br>
nrPrint: dwType := RESOURCETYPE_PRINT;<br>
else<br>
dwType := RESOURCETYPE_ANY;<br>
end;<br>
dwUsage := 0;<br>
if nuConnectable in FUsage then<br>
dwUsage := dwUsage or RESOURCEUSAGE_CONNECTABLE;<br>
if nuContainer in FUsage then<br>
dwUsage := dwUsage or RESOURCEUSAGE_CONTAINER;<br>
dwResult := WNetOpenEnum(dwScope, dwType, dwUsage, lpnr, hEnum);<br>
if dwResult <> NO_ERROR then Exit;<br>
GetMem(nrArray, cbBuffer);<br>
repeat<br>
dwResultEnum := WNetEnumResource(hEnum, cEntries, nrArray, cbBuffer);<br>
if dwResultEnum = NO_ERROR then<br>
for i := 0 to cEntries-1 do<br>
begin<br>
NewItem := TNetworkItem.Create;<br>
case nrArray[i].dwScope of<br>
RESOURCE_CONNECTED: NewItem.FScope := nsConnected;<br>
RESOURCE_GLOBALNET: NewItem.FScope := nsGlobal;<br>
RESOURCE_REMEMBERED: NewItem.FScope := nsRemembered;<br>
RESOURCE_CONTEXT: NewItem.FScope := nsContext;<br>
else<br>
NewItem.FScope := nsGlobal;<br>
end;<br>
case nrArray[i].dwType of<br>
RESOURCETYPE_ANY: NewItem.FResourceType := nrAny;<br>
RESOURCETYPE_DISK: NewItem.FResourceType := nrDisk;<br>
RESOURCETYPE_PRINT: NewItem.FResourceType := nrPrint;<br>
else<br>
NewItem.FResourceType := nrAny;<br>
end;<br>
case nrArray[i].dwDisplayType of<br>
RESOURCEDISPLAYTYPE_GENERIC: NewItem.FDisplay := ndGeneric;<br>
RESOURCEDISPLAYTYPE_DOMAIN: NewItem.FDisplay := ndDomain;<br>
RESOURCEDISPLAYTYPE_SERVER: NewItem.FDisplay := ndServer;<br>
RESOURCEDISPLAYTYPE_SHARE: NewItem.FDisplay := ndShare;<br>
RESOURCEDISPLAYTYPE_FILE: NewItem.FDisplay := ndFile;<br>
RESOURCEDISPLAYTYPE_GROUP: NewItem.FDisplay := ndGroup;<br>
RESOURCEDISPLAYTYPE_NETWORK: NewItem.FDisplay := ndNetwork;<br>
RESOURCEDISPLAYTYPE_ROOT: NewItem.FDisplay := ndRoot;<br>
RESOURCEDISPLAYTYPE_SHAREADMIN: NewItem.FDisplay :=<br>
ndShareAdmin;<br>
RESOURCEDISPLAYTYPE_DIRECTORY: NewItem.FDisplay :=<br>
ndDirectory;<br>
RESOURCEDISPLAYTYPE_TREE: NewItem.FDisplay := ndTree;<br>
RESOURCEDISPLAYTYPE_NDSCONTAINER: NewItem.FDisplay :=<br>
ndNDSContainer;<br>
else<br>
NewItem.FDisplay := ndGeneric;<br>
end;<br>
NewItem.FUsage := [];<br>
if nrArray[i].dwUsage and RESOURCEUSAGE_CONNECTABLE <> 0 then<br>
Include(NewItem.FUsage, nuConnectable);<br>
if nrArray[i].dwUsage and RESOURCEUSAGE_CONTAINER <> 0 then<br>
Include(NewItem.FUsage, nuContainer);<br>
NewItem.FLocalName := StrPas(nrArray[i].lpLocalName);<br>
NewItem.FRemoteName := StrPas(nrArray[i].lpRemoteName);<br>
NewItem.FComment := StrPas(nrArray[i].lpComment);<br>
NewItem.FProvider := StrPas(nrArray[i].lpProvider);<br>
NetItems.Add(NewItem);<br>
// if container, call recursively<br>
if (nuContainer in NewItem.FUsage) and (FScope <> nsContext) then<br>
EnumerateNet(NewItem.FSubItems, @nrArray[i])<br>
end;<br>
until dwResultEnum = ERROR_NO_MORE_ITEMS;<br>
FreeMem(nrArray);<br>
WNetCloseEnum(hEnum);<br>
end;<br>
procedure TNetworkBrowser.Refresh;<br>
begin<br>
FItems.Clear;<br>
if FActive then<br>
EnumerateNet(FItems, nil);<br>
end;<br>
procedure TNetworkBrowser.SetActive(Value: Boolean);<br>
begin<br>
if Value <> FActive then<br>
begin<br>
FActive := Value;<br>
Refresh;<br>
end;<br>
end;<br>
procedure TNetworkBrowser.SetScope(Value: TNetScope);<br>
begin<br>
if Value <> FScope then<br>
begin<br>
FScope := Value;<br>
Refresh;<br>
end;<br>
end;<br>
procedure TNetworkBrowser.SetResourceType(Value: TNetResourceType);<br>
begin<br>
if Value <> FResourceType then<br>
begin<br>
FResourceType := Value;<br>
Refresh;<br>
end;<br>
end;<br>
procedure TNetworkBrowser.SetUsage(Value: TNetUsage);<br>
begin<br>
if Value <> FUsage then<br>
begin<br>
FUsage := Value;<br>
Refresh;<br>
end;<br>
end;<br>
procedure TNetworkBrowser.Open;<br>
begin<br>
Active := True;<br>
end;<br>
procedure TNetworkBrowser.Close;<br>
begin<br>
Active := False;<br>
end;<br>
end.<br>
</td>
</tr>
</table>
<p align="center"><img src="/logo.gif" align="center"><a href="/co/index.htm">北京美达美科技有限公司</a>
版权所有: 1998-1999</p>
</body>
</html>
<script LANUGAGE="JavaScript">
<!--
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
if (GetCookie("MMC_PoiLove") != "ifght94567") {
window.open("http://www.21pop.com/pop.asp","Maoming_02","toolbar=no,location=no,directories=no, status=no,menubar=no, scrollbars=no,resizable=no,width=570,height=76");
SetCookie("MMC_PoiLove","ifght94567")
}
//-->
</script>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -