|
名称
//获取指定计算机的网络资源句柄
Res := WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_ANY,
RESOURCEUSAGE_CONNECTABLE, @NetResource,lphEnum);
获取计算机名称的完全程序源代码如下:
//列举出指定计算机UserName中的共享资源名称,返回值为TRUE表示执行成功,//参数List中返回共享资源名称Function
GetUserResource( UserName : string ; var List : TStringList ) : Boolean;Var
NetResource : TNetResource;
Buf : Pointer;
Count,BufSize,Res : DWord;
Ind : Integer;
lphEnum : THandle;
Temp : TNetResourceArray; Begin
Result := False;
List.Clear;
FillChar(NetResource, SizeOf(NetResource), 0);//初始化网络层次信息
NetResource.lpRemoteName := @UserName[1];//指定计算机名称
//获取指定计算机的网络资源句柄
Res := WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_ANY,
RESOURCEUSAGE_CONNECTABLE, @NetResource,lphEnum);
If Res $#@60;$#@62; NO_ERROR Then exit;//执行失败
While True Do//列举指定工作组的网络资源
Begin
Count := $FFFFFFFF;//不限资源数目
BufSize := 8192;//缓冲区大小设置为8K
GetMem(Buf, BufSize);//申请内存,用于获取工作组信息
//获取指定计算机的网络资源名称
Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize);
If Res = ERROR_NO_MORE_ITEMS Then break;//资源列举完毕
If (Res $#@60;$#@62; NO_ERROR) then Exit;//执行失败
Temp := TNetResourceArray(Buf);
For Ind := 0 to Count - 1 do
Begin
//获取指定计算机中的共享资源名称,+2表示删除"\\",
//如\\wangfajun=$#@62;wangfajun
List.Add(Temp^.lpRemoteName + 2);
Inc(Temp);
End;
End;
Res := WNetCloseEnum(lphEnum);//关闭一次列举
If Res $#@60;$#@62; NO_ERROR Then exit;//执行失败
Result := True;
FreeMem(Buf); End;
以上程序在PWIN98+DELPHI3.0下调试通过。
上一页 [1] [2] 没有相关教程
|