📄 unit1.pas
字号:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls;
type
TfrmMain = class(TForm)
GroupBox1: TGroupBox;
TreeView1: TTreeView;
GroupBox2: TGroupBox;
btnRun: TButton;
btnExit: TButton;
procedure btnRunClick(Sender: TObject);
procedure btnExitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure GetDomainList(Tree:TTreeView);
var
frmMain: TfrmMain;
implementation
{$R *.DFM}
{ Start here }
procedure TfrmMain.btnRunClick(Sender: TObject);
begin
TreeView1.Items.Clear;
GetDomainList(TreeView1);
end;
procedure TfrmMain.btnExitClick(Sender: TObject);
begin
frmMain.Close;
end;
//得到网上邻居主机列表
procedure GetDomainList(Tree:TTreeView);
var
i:Integer;
ErrCode:Integer;
NetRes:Array[0..1023] of TNetResource;
EnumHandle:THandle;
EnumEntries:DWord;
BufferSize:DWord;
begin
try
With NetRes[0] do
begin
dwScope :=RESOURCE_GLOBALNET;
dwType :=RESOURCETYPE_ANY;
dwDisplayType :=RESOURCEDISPLAYTYPE_DOMAIN;
dwUsage :=RESOURCEUSAGE_CONTAINER;
lpLocalName :=NIL;
lpRemoteName :=NIL;
lpComment :=NIL;
lpProvider :=NIL;
end;
//get net root
ErrCode:=
WNetOpenEnum(
RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
RESOURCEUSAGE_CONTAINER,
@NetRes[0],
EnumHandle
);
If ErrCode=NO_ERROR then
begin
EnumEntries:=1;
BufferSize:=SizeOf(NetRes);
ErrCode:=WNetEnumResource(
EnumHandle,
EnumEntries,
@NetRes[0],
BufferSize
);
WNetCloseEnum(EnumHandle);
If ErrCode=NO_ERROR then
begin
ErrCode:=WNetOpenEnum(
RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
RESOURCEUSAGE_CONTAINER,
@NetRes[0],
EnumHandle
);
EnumEntries:=1024;
BufferSize:=SizeOf(NetRes);
ErrCode:=WNetEnumResource(
EnumHandle,
EnumEntries,
@NetRes[0],
BufferSize
);
IF ErrCode=No_Error then
for i:=0 to 1024 do
begin
if(NetRes[i].lpProvider=nil) then
begin
showmessage('网络上共有'+inttostr(i)+'个对象。');
break;
end
else
with Tree do
begin
Items.Add(Tree.Selected,'第'+inttostr(i+1)+'个对象');
Items.Add(Tree.Selected,'服务提供商:'+string(NetRes[i].lpProvider));
Items.Add(Tree.Selected,'本机名:'+string(NetRes[i].lpLocalName));
Items.Add(Tree.Selected,'远程机名或工作组名:'+string(NetRes[i].lpRemoteName));
Items.Add(Tree.Selected,'评注:'+string(NetRes[i].lpComment));
Items.Add(Tree.Selected,'-------');
end;
end;
end;
end;
except
showmessage('网络邻居上没有工作组或主机');
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -