列出網絡上所有電腦的名字 |
尚未結案
|
ultraman
一般會員 發表:8 回覆:10 積分:3 註冊:2004-01-30 發送簡訊給我 |
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
Hi,ultraman,您好!
看看下面的例子,是得到局域網裏所有電腦名,然後放入一個ListBox中,希望能對您解決問題有所啓迪:
...... var Form1: TForm1; Function GetUsers(GroupName:string;var List:TStringList):Boolean; implementation {$R *.DFM} type TNetResourceArray = ^TNetResource; //網路資源類型的陣列 Function GetUsers(GroupName: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 := @GroupName[1]; //指定工作組名稱 NetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SERVER;//類型爲伺服器(工作組) NetResource.dwUsage := RESOURCEUSAGE_CONTAINER; NetResource.dwScope := RESOURCETYPE_DISK; //列舉文件資源資訊 Res := WNetOpenEnum( RESOURCE_GLOBALNET, RESOURCETYPE_DISK,RESOURCEUSAGE_CONTAINER, @NetResource,lphEnum); If Res <> 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 <> NO_ERROR) then Exit;//執行失敗 Temp := TNetResourceArray(Buf); For Ind := 0 to Count - 1 do//列舉工作組的電腦名稱 Begin List.Add(Temp^.lpRemoteName); Inc(Temp); End; End; Res := WNetCloseEnum(lphEnum);//關閉一次列舉 If Res <> NO_ERROR Then exit;//執行失敗 Result:=True; FreeMem(Buf); end; procedure TForm1.Button1Click(Sender: TObject); var List:TstringList; i:integer; begin try List:=TstringList.Create; if GetUsers(edit1.text,List) then if List.count=0 then //工作組下沒找到電腦 begin listbox1.Items.Add (edit1.text '工作組下沒有電腦!'); end else listbox1.Items.Add (edit1.text '下的所有電腦如下:'); for i:=0 to List.Count-1 do begin listbox1.Items.Add (List.strings[i]); end; finally List:=TstringList.Create; //如有異常則釋放分配的資源 end; end; end.您需要考慮網路的實際情況哦[8]] =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获? |
ultraman
一般會員 發表:8 回覆:10 積分:3 註冊:2004-01-30 發送簡訊給我 |
|
Ktop_Robot
站務副站長 發表:0 回覆:3511 積分:0 註冊:2007-04-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |