急急急!局域网的问题!请各位大侠帮帮忙!在线等待!

zmacro 2004-01-14 04:10:30
我想在我的窗体上浏览整个局域网的用户!

请问各位大侠,应该用什么控件呀?

或是谁有这方面的源代码给我来一份!

我的邮箱是:zmacro@126.com

谢谢您的帮忙!
...全文
37 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qhlkj 2004-01-14
  • 打赏
  • 举报
回复
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.
zth215 2004-01-14
  • 打赏
  • 举报
回复
帮你顶

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧