说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

如何在程序中动态取得Win95/98的网络邻居中的工作组及计算机名?-Delphi资料

HTML文档下载 WORD文档下载 PDF文档下载
如何在程序中动态取得Win95/98的网络邻居中的工作组及计算机名?-Delphi资料

可参考下面代码,或许有所帮助:

procedure GetDomainList(TV:TTreeView);

var

a : Integer;

ErrCode : Integer;

NetRes : Array[0..1023] of TNetResource;

EnumHandle : THandle;

EnumEntries : DWord;

BufferSize : DWord;

s : string;

itm : TTreeNode;

begin

{ Start here }

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);

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 with TV do try

a:=0;

Items.BeginUpDate;

Items.Clear;

Itm:=Items.Add(TV.Selected

string(NetRes[0].lpProvider));

Itm.ImageIndex:=0;

Itm.SelectedIndex:=0;

{ get domains }

下面的一个单元定义了一个组件. TNetworkBrowser

可以枚举hierachical树上所有

的网络资源. 实际上浏览是要花费很长时间的

这您可以通过在WINDOWS资源管理器

中打开"整个网络" 来比较一下. 如果你设置SCOPE属性 为nsContext

你就可以看到

和网络邻居中一样的机器列表.

unit NetBrwsr;

interface

uses

Windows

Messages

SysUtils

Classes

Graphics

Controls

Forms

Dialogs;

type

TNetScope = (nsConnected

nsGlobal

nsRemembered

nsContext);

TNetResourceType = (nrAny

nrDisk

nrPrint);

TNetDisplay = (ndDomain

ndGeneric

ndServer

ndShare

ndFile

ndGroup

ndNetwork

ndRoot

ndShareAdmin

ndDirectory

ndTree

ndNDSContainer);

TNetUsage = set of (nuConnectable

nuContainer);

TNetworkItems = class;

TNetworkItem = class

private

FScope: TNetScope;

FResourceType: TNetResourceType;

FDisplay: TNetDisplay;

FUsage: TNetUsage;

FLocalName: string;

FRemoteName: string;

FComment: string;

FProvider: string;

FSubItems: TNetworkItems;

public

constructor Create;

destructor Destroy; override;

property Scope: TNetScope read FScope;

property ResourceType: TNetResourceType read FResourceType;

property Display: TNetDisplay read FDisplay;

property Usage: TNetUsage read FUsage;

property LocalName: string read FLocalName;

property RemoteName: string read FRemoteName;

property Comment: string read FComment;

property Provider: string read FProvider;

property SubItems: TNetworkItems read FSubItems;

end;

TNetworkItems = class

private

FList: TList;

procedure SetItem(Index: Integer; Value: TNetworkItem);

function GetItem(Index: Integer): TNetworkItem;

function GetCount: Integer;

public

constructor Create;

destructor Destroy; override;

procedure Clear;

procedure Add(Item: TNetworkItem);

procedure Delete(Index: Integer);

property Items[Index: Integer]: TNetworkItem read GetItem write

SetItem; default;

property Count: Integer read GetCount;

end;

TNetworkBrowser = class(TComponent)

private

FItems: TNetworkItems;

FScope: TNetScope;

FResourceType: TNetResourceType;

FUsage: TNetUsage;

FActive: Boolean;

procedure Refresh;

procedure SetActive(Value: Boolean);

procedure SetScope(Value: TNetScope);

procedure SetResourceType(Value: TNetResourceType);

procedure SetUsage(Value: TNetUsage);

procedure EnumerateNet(NetItems: TNetworkItems; lpnr: PNetResource);

protected

public

constructor Create(AOwner: TComponent); override;

destructor Destroy; override;

procedure Open;

procedure Close;

property Items: TNetworkItems read FItems;

published

property Scope: TNetScope read FScope write SetScope default nsGlobal;

property ResourceType: TNetResourceType read FResourceType

write SetResourceType default nrAny;

property Usage: TNetUsage read FUsage write SetUsage default [];

property Active: Boolean read FActive write SetActive default False;

end;

implementation

type

PNetResourceArray = ^TNetResourceArray;

TNetResourceArray = array[0..0] of TNetResource;

{ TNetworkItem }

constructor TNetworkItem.Create;

begin

inherited;

FSubItems := TNetworkItems.Create;

end;

destructor TNetworkItem.Destroy;

begin

if FSubItems <> nil then

FSubItems.Free;

inherited;

end;

{ TNetworkItems }

constructor TNetworkItems.Create;

begin

inherited;

FList := TList.Create;

end;

destructor TNetworkItems.Destroy;

begin

Clear;

if FList <> nil then

FList.Free;

inherited;

end;

procedure TNetworkItems.SetItem(Index: Integer; Value: TNetworkItem);

begin

if (FList.Items[Index] <> nil) and (FList.Items[Index] <> Value) then

TNetworkItem(FList.Items[Index]).Free;

FList.Items[Index] := Value;

end;

function TNetworkItems.GetItem(Index: Integer): TNetworkItem;

begin

Result := TNetworkItem(FList.Items[Index]);

end;

procedure TNetworkItems.Clear;

begin

while Count > 0 do

Delete(0);

end;

procedure TNetworkItems.Add(Item: TNetworkItem);

begin

FList.Add(Item);

end;

procedure TNetworkItems.Delete(Index: Integer);

begin

if FList.Items[Index] <> nil then

TNetworkItem(FList.Items[Index]).Free;

FList.Delete(Index);

end;

function TNetworkItems.GetCount: Integer;

begin

if FList <> nil then

Result := FList.Count

else

Result := 0;

end;

{ TNetworkBrowser }

constructor TNetworkBrowser.Create(AOwner: TComponent);

begin

inherited Create(AOwner);

FItems := TNetworkItems.Create;

FScope := nsGlobal;

FResourceType := nrAny;

FUsage := [];

end;

destructor TNetworkBrowser.Destroy;

begin

if FItems <> nil then

FItems.Free;

inherited;

end;

procedure TNetworkBrowser.EnumerateNet(NetItems: TNetworkItems; lpnr:

PNetResource);

var

dwResult

dwResultEnum: Integer;

hEnum: THandle;

cbBuffer

cEntries

i: Integer;

nrArray: PNetResourceArray;

NewItem: TNetworkItem;

dwScope

dwType

dwUsage: Integer;

begin

cbBuffer := 16384;

cEntries := $FFFFFFFF;

case FScope of

nsConnected: dwScope := RESOURCE_CONNECTED;

nsGlobal: dwScope := RESOURCE_GLOBALNET;

nsRemembered: dwScope := RESOURCE_REMEMBERED;

nsContext: dwScope := RESOURCE_CONTEXT;

else

dwScope := RESOURCE_GLOBALNET;

end;

case FResourceType of

nrAny: dwType := RESOURCETYPE_ANY;

nrDisk: dwType := RESOURCETYPE_DISK;

nrPrint: dwType := RESOURCETYPE_PRINT;

else

dwType := RESOURCETYPE_ANY;

end;

dwUsage := 0;

if nuConnectable in FUsage then

dwUsage := dwUsage or RESOURCEUSAGE_CONNECTABLE;

if nuContainer in FUsage then

dwUsage := dwUsage or RESOURCEUSAGE_CONTAINER;

dwResult := WNetOpenEnum(dwScope

dwType

dwUsage

lpnr

hEnum);

if dwResult <> NO_ERROR then Exit;

GetMem(nrArray

cbBuffer);

repeat

dwResultEnum := WNetEnumResource(hEnum

cEntries

nrArray

cbBuffer);

if dwResultEnum = NO_ERROR then

for i := 0 to cEntries-1 do

begin

NewItem := TNetworkItem.Create;

case nrArray[i].dwScope of

RESOURCE_CONNECTED: NewItem.FScope := nsConnected;

RESOURCE_GLOBALNET: NewItem.FScope := nsGlobal;

RESOURCE_REMEMBERED: NewItem.FScope := nsRemembered;

RESOURCE_CONTEXT: NewItem.FScope := nsContext;

else

NewItem.FScope := nsGlobal;

end;

case nrArray[i].dwType of

RESOURCETYPE_ANY: NewItem.FResourceType := nrAny;

RESOURCETYPE_DISK: NewItem.FResourceType := nrDisk;

RESOURCETYPE_PRINT: NewItem.FResourceType := nrPrint;

else

NewItem.FResourceType := nrAny;

end;

case nrArray[i].dwDisplayType of

RESOURCEDISPLAYTYPE_GENERIC: NewItem.FDisplay := ndGeneric;

RESOURCEDISPLAYTYPE_DOMAIN: NewItem.FDisplay := ndDomain;

RESOURCEDISPLAYTYPE_SERVER: NewItem.FDisplay := ndServer;

RESOURCEDISPLAYTYPE_SHARE: NewItem.FDisplay := ndShare;

RESOURCEDISPLAYTYPE_FILE: NewItem.FDisplay := ndFile;

RESOURCEDISPLAYTYPE_GROUP: NewItem.FDisplay := ndGroup;

RESOURCEDISPLAYTYPE_NETWORK: NewItem.FDisplay := ndNetwork;

RESOURCEDISPLAYTYPE_ROOT: NewItem.FDisplay := ndRoot;

RESOURCEDISPLAYTYPE_SHAREADMIN: NewItem.FDisplay :=

ndShareAdmin;

RESOURCEDISPLAYTYPE_DIRECTORY: NewItem.FDisplay :=

ndDirectory;

RESOURCEDISPLAYTYPE_TREE: NewItem.FDisplay := ndTree;

RESOURCEDISPLAYTYPE_NDSCONTAINER: NewItem.FDisplay :=

ndNDSContainer;

else

NewItem.FDisplay := ndGeneric;

end;

NewItem.FUsage := [];

if nrArray[i].dwUsage and RESOURCEUSAGE_CONNECTABLE <> 0 then

Include(NewItem.FUsage

nuConnectable);

if nrArray[i].dwUsage and RESOURCEUSAGE_CONTAINER <> 0 then

Include(NewItem.FUsage

nuContainer);

NewItem.FLocalName := StrPas(nrArray[i].lpLocalName);

NewItem.FRemoteName := StrPas(nrArray[i].lpRemoteName);

NewItem.FComment := StrPas(nrArray[i].lpComment);

NewItem.FProvider := StrPas(nrArray[i].lpProvider);

NetItems.Add(NewItem);

// if container

call recursively

if (nuContainer in NewItem.FUsage) and (FScope <> nsContext) then

EnumerateNet(NewItem.FSubItems

@nrArray[i])

end;

until dwResultEnum = ERROR_NO_MORE_ITEMS;

FreeMem(nrArray);

WNetCloseEnum(hEnum);

end;

procedure TNetworkBrowser.Refresh;

begin

FItems.Clear;

if FActive then

EnumerateNet(FItems

nil);

end;

procedure TNetworkBrowser.SetActive(Value: Boolean);

begin

if Value <> FActive then

begin

FActive := Value;

Refresh;

end;

end;

procedure TNetworkBrowser.SetScope(Value: TNetScope);

begin

if Value <> FScope then

begin

FScope := Value;

Refresh;

end;

end;

procedure TNetworkBrowser.SetResourceType(Value: TNetResourceType);

begin

if Value <> FResourceType then

begin

FResourceType := Value;

Refresh;

end;

end;

procedure TNetworkBrowser.SetUsage(Value: TNetUsage);

begin

if Value <> FUsage then

begin

FUsage := Value;

Refresh;

end;

end;

procedure TNetworkBrowser.Open;

begin

Active := True;

end;

procedure TNetworkBrowser.Close;

begin

Active := False;

end;

end.

VB制作方向按钮 VB制作渐变的窗口背景色 字体闪烁 -VB资料 自动改变控件大小-VB资料 自制IE风格按纽控件-VB资料 VB6.0中通过MSChart控件调用数据库 用VB6实现动态增减控件 ActiveX控件的创建-VB资料 ADO控件和DATA控件的冲突(不能共存)的解决方法-VB资料 Combo的自动查询技术 -VB资料 DirectX7.0使用心得(1) -VB资料 DirectX7.0使用心得(2) -VB资料 DirectX7.0使用心得(3) -VB资料 FSO对象模型在VB中的应用 MsComm 控件的文字传输范例 -VB资料 Office或IE4风格的ToolBar -VB资料 Regsvr32.exe注册控件的具体用法-VB资料 TextBox的自动调节 -VB资料 TextBox实现打印机效果 -VB资料 TreeView的基本操作-VB资料 VB5中DBGRID控件在VB6中使用 VB与MS-Draw开发通用作图软件 VB中APP对象及其应用 VB中list控件的功能扩充 VB中用Multimedia MCI控件开发多媒体应用 Win Api在VB中的妙用 WINDOWS SCRIPT HOST对象在VB中的使用 安装向导生成程序组并建立多个程序项 -VB资料 保存复选框选项-VB资料 不用OCX来创建自己的控件(一)-VB资料 成组更新控件属性-VB资料 可以帮我解决一个关于linux的问题吗? 熟悉文件操作的高手请进来坐一下。 +++++++关于MS SQL SERVER2000的注册服务器问题+++++ 考过scjp的进去看一眼 请问DTD是不是将要为XML Schema所代替???现在主要哪一个呢? XiaoFang(奇奇) 你在哪里,十分感谢,再送100分! 关于输入框中输入空字符串的判断 zork(我是一条鱼……) 说明白些呀,用http代理怎么上qq? HK的书店 求教:关于CRC校验的问题 问题:有关查询结果排序. 为什么我用的是LoadString函数而编译显示错误时显示LoadStringW函数。两个有什么区别? 请问这个错误提示是什么意思呢?谢谢! OCI中的类型转换 麻烦大家看看下面的代码对吗?能否用MSChart显示MSHFlexGrid中指定的行(上下)和列(左右),谢谢谢谢 如何用vector做一个二维数组。如int a[4][4]的。该怎么做 仰天长笑,号称CSDN(“中国”软件开发网),却。。。 鼠标移出当前窗口时显示MessageBox如何做? 操作系统为solaris如何配置才能上internet网? 大虾留步! 根据日期查询数据库的问题(当天结账)急! 请问怎么去打开一个SQL SERVER的数据库,求救 怎样修改注册表? 如何把程序编译为只有一个EXE的文件?(对不起,我的分发光了!) OCP 试题之一 EhLib里TDBGridEh控件的SaveBookmark方法有何作用? 编程不需要创新,我同意 有一个朋友向我要类描述的rose表示的例子,我已经做好了,并上传到下面的网址上 福州的程序员请进................ 如何执行一个*.txt文档中的语句? 怎么在一个button被点击时,播放一段声音呢? OCP 试题之二 怎么用jb5创建一个corba工程? 怎么才能让程序永远在最前面 送分 请问乙肝表面抗原阳性(最最轻的那种,不是小三阳),进外企要不要?作公务员要不要紧?谢谢 怎么样才能处理像VB中的TREEVIEW中的NODECLICK的事件? 我想了解一下国内有多少公司用rose ASP500错误该怎么处理呢?新手请高手赐教!!本人在IIS的根目录下面访问HTM不会出现错误,但是在根目录下面建了虚拟路径有就出现了500错误。为什么? 每一个开发人员都应该拥有的东西 老问题:如何获得鼠标IBEAM的Handle? 用GetCursor()只能获得当前鼠标的Handle. 请问有法律高手在吗?急需要帮助,谢谢。 OCP 试题之三 请问乙肝表面抗原阳性(最最轻的那种,不是小三阳),进外企要不要?作公务员要不要紧 ?谢谢 请教:如何修改ICON? 高分寻求关于vc和mapinfo结合的资料!一定给分!! 怎么我在IE上提供的word文档下载,当点击左键时会打开执行而不能下载, 我公司招聘 做个小调查:做OA用Microsoft的做和用Lotus的做,工资大概各是多少?觉得哪个更难学? 请高手赐教,'ASP 0156 : 80004005' 是什么错误? 在MDI的主窗口CLOSE事件中,返回什么值才能使窗口不会被关闭? 关于感恩的演讲稿 matlab解线性方程f(x)为一元多次方程,题目为y=f(x),在已知y值(不为零)的基础上求x的值.我会建立方程,也能画出图,但是不知道如何求X.solve命令似乎用不来,fzero能用,但是求的是y=0时x的值,这 求大神解释这段matlab程序,我基础不是很好,希望能够帮助我,clear alln=99; T=6; t=0:2*pi/(n-1):2*T*pi; N=length(t);fs=1/(n-1);x1=4*sin(t); y1=4*sin(t+pi/6); x=awgn(x1,20); y=awgn(y1,0.001);x2=awgn(x1./4,-3); subplot(311),plot(t,x)su 3x²-6x+1=0 3x²-5x=152 怎么解 Matlab a\b 求解线性方程的解用a\b 求解线性方程ax=b的解 如果无解 如[2 1; 1 2; 1 1]\[4;5;4](实际上 b(3)=3才有解 x=1 y=2)但是却算出来[1.0909; 2.0909] 这是为什么?事实上 两个未知数 三个方程 注定 哪位大神详细的解释一下matlab中的一段程序function s = getspline(x)N = length(x);p = findpeaks(x);s = spline([0 p N+1],[0 x(p) 0],1:N); 3x²-5x+4>0 用2,3,4和小数点一共能组成多少个一位小数 A.6 B.4用2,3,4和小数点一共能组成多少个一位小数 A.6 B.4 C.18 for k=1:mktmp=cputime;for i=1:sfor j=1:s% 计算邻居中每种状态的个数cnt1=0;cnt2=0;cnt3=0;if i-1>0&&j-1>0cnt1=cnt1+state1(i-1,j-1);cnt2=cnt2+state2(i-1,j-1);cnt3=cnt3+state3(i-1,j-1);endif i-1>0&&j+1 3X²-5X-2=0 用3种方法来解 感恩父母作文以感恩为主题 ,还要有内容.2010年3月15日到17日结束.OK 用matlab写程序解答,在冷却过程中,物体的温度在任何时刻变化的速率大致正比于它的温度与周围介质温度之差,这一结论称为牛顿冷却定律,该定律同样用于加热过程.一个煮硬了的鸡蛋有98 ,将 9.9673保留三位小数 填空题:( )言 ( )语:用恶毒的话骂人或用凶狠的语气说话. 初学matlab,出现问题,求大神指导!自定义函数dcir,如下: function [x1,y1,x2,y2]=dcir(a1,b1,a2,b2) a3=(a1+a2)/2; b3=(b1+b2)/2; eq1=(c1-a1)^2 感恩父母的文章 初学matlab 一个小程序,折磨我一天了,也不知道应该怎么改.主程序:clear all;clcsyms C1 C2 C3x=[C1 C2 C3];for i=1:5Y(i)=1*C1*i+2*C2*i+3*C3*i;endY1=Y';b=[4;5;6;7;8];yo=Y1-b;options=gaoptimset('PopulationSize',500,'Generations',100 感恩教育演讲听后感 450字 快!快!快!快!快!快1快!快! 有关感恩父母的作文 Matlab一道入门题如图,这个地方如果以t作为自变量的话,怎么对t进行赋值?以前遇到的都是不含参数的诸如t=1:2:101之类的,这里含有未知参数应怎么表示呢 感恩演讲稿我是初中生,下个星期开放周国旗下讲话,主题是感恩.求3~5分钟左右的演讲稿. 照片解析学霸们来吧 怎样感恩父母作文 不用方程. √(19-8√3)的整数部分为a,小数部分是b,试求a+b+1/b的值 求感恩父母的文章! 感恩父母的作文 麻烦大哥 大姐说一下(4.6291 )(3.9502)(19.8146)(8.5093)保留整数 保留一位小数 保留两位小数?谢 六年级语文《太阳的话》的意思是什么?我病了,没有去上学,功课落下好多! 不要方程. 求解,学霸,你在哪呢 1.与《螳螂捕蝉黄雀在后》类似的与寓意深刻的故事还有哪些,是我们懂得了什么2.《西游记》是明代神魔小说的杰出代表.( )对错3.有关母爱的事例,最好有文章 我要感恩父母的作文,400字以上,急 5x-1/0.3-3x-1.2/0.2=1 要有过程 1、蝴蝶扇动着它那对彩色的翅膀.(改为拟人句)________________________________________________________2、用“不假思索”造两个意思不同的句子.① 表示办事痛快:____________________________________________② 成语之最的几个问题,最险的情景,最应念的话,最固执的人我想了好几天都没想出来 1-0.5x/0.3-2/3x=0.3x/0.2x+1 计算:0.1(1循环)+0.125+0.3(3循环)+0.16(6循环),结果保留三位小数 编写成语之最 最重的话最重的话最大的手术 最大的被褥最大的差异最少的恩情最短的季节 {x+1>0,3x>0的解集,{-3x≤0,5x-2 6.95,95循环,保留一位小数约是7. 初学matlab,不知道下面的错误在哪儿,求高手解决.谢了!x=-1:0.01:1; y=((x*x)^(1/3))*((x*x)^(1/3))+sqrt(1-x*x); plot(y,x); ? Error using ==> mtimes Inner 1.这时大家才明白,原来像亚里士多德这样的大哲学家,说的话也不是全都对的.1.这时大家才明白,原来像亚里士多德这样的大哲学家,说的话也不是全都对的.第一句标点是亚里多德,第二句加标 10、2006 2和6是个循环数,那么10、2006 的小数部分第2006位上的数字是多少. 请精通matlab的帮下忙,下面的代码有什么错么?本人初学fc1=1200;N1=2*pi*0.9/(0.1*pi) wc1=2*pi*fc1/fs; ifrem(N1,2)==0 N1=N1+1;endWindow= boxcar (N1+1); b1=fir1(N1,wc1/pi,Window);figure(3);freqz(b1,1,512); title('低通滤波器 六年级语文题(不准说废话,不然一律检举~好的有追加分.)今天之内完成~①“方东明、迟小东、丁新华”这三个人的姓氏笔画排列依次为( ) 关于感恩父母的作文400字 matlab初学,很菜~哪个好心人帮我看看这个程序错在哪了……感激不尽[X,Y,Z]=sphere(30);Z=surfl(X,Y,Z)shading interpcolormap(spring)axis equal%title('旋转的球体')n=360;for i=1:n rotate(Z,[1 0 0],3); f(i)=getframe;endmov 综合修改(共有六处错误),求救,好的话送分,题如下今年夏天,天气严热,我每天常常去游泳.游泳池里的人很多,有大人,小孩,青年人,老年人,我像鱼儿一样游来游去,非常舒服极了.是六个六个!, 关于感恩父母的作文 400字左右 matlab初学做一个内积, 第8题,用方程(要过程) 乌鲁木齐2011年二模 语文作文是什么立意 关于感恩父母的作文 (2-3x)(x+4)=(3x-2)(1-5x)怎么解 matlab线性方程求解MATLAB中怎么当方程数M ,未知数个数n,m>n,怎么是最最小二乘解,x=inv(a'*a)*(a'*b),m 解这道题的方程 -3x²+5x-4>0的解集 多元线性方程的求解 Matlab程序如下,但一直无法得到结果.对于下面这个方程,解应该是[0,0,0]Warning:Explicit solution could not be found.> In solve at 81In solve_diff at 11Comma separated list expansion has cell syntax for 这道题的方程式怎么解?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn