急急急!局域网的问题!请各位大侠帮帮忙!在线等待! 我想在我的窗体上浏览整个局域网的用户!请问各位大侠,应该用什么控件呀?或是谁有这方面的源代码给我来一份!谢谢您的帮忙! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 unit Unit1;interfaceuses 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. 大家帮忙看看这样的表 用什么表格控件能实现 dbgrideh cxgrid 能实现吗? treeview读取全国城市 关于stringlist的使用;大家看看我这段程序哪里有问题,给分20分 DBExpress程序发部 电子屏的显示控制? 多人提取数据的问题 关于打开数据库的速度问题及如何使用上下键和回车键实现选择ComboBOX的项目 了解下现在大家用DELPHI开发网上应用用什么?WEBBROKE,INTRAWEB,ACTIVEX+MIDAS? 在程序运行期间如何动态增删字段? 急急急,帮帮忙各个大哥 问题 p2p与在机子上同时实现客户端与服务器端有什么区别?
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.