快速取得網路上的電腦里的資源共享名稱 |
|
japhenchen
高階會員 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
我用98/ME/2000/XP/2003測試過,全部可用,LAN可用,WAN也沒問題,除了可以列舉自己電腦的共享資源名稱外,也可以列舉網路上所有架構在M$、LINUX(SMB)、Netware.........等等可以被M$叫進來共用的共享資源名稱
function GetShareName(remotename: string):TStringList; type TNetResourceArray = ^TNetResource; var NetResource : TNetResource; hr,ecount,BUFSIZE,x: dword; hEnum: THandle; buf : POINTER; ResArray : TNetResourceArray; ResList : TStringList; temp: string; begin result := TStringList.Create; // 回傳用的list BUFSIZE:=8192; GETMEM(BUF,BUFSIZE); FillChar(NetResource, SizeOf(NetResource), #0); // 清空netresource結構 NetResource.lpRemoteName:=pchar('\\' remotename); // 指定想要查的ip或hostname hr:=WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, RESOURCEUSAGE_CONNECTABLE, @NetResource,hEnum); if hr=NO_ERROR then while true do begin // 直到列舉不到東西break為止 ecount := $FFFFFFFF; hr := WNetEnumResource(hEnum,ecount,pointer(buf),bufsize); case hr of ERROR_NO_MORE_ITEMS: break; NO_ERROR : begin ResArray:=TNetResourceArray(buf); for x:= 0 to ecount-1 do begin temp:=ResArray^.lpRemoteName; // result.Add(copy(temp,length(remotename) 1,length(temp)-length(remotename))); result.Add(temp); inc(resArray); end; end; else break; end; end; wnetCloseEnum(hEnum); FreeMem(buf,bufsize); end; // 呼叫方法 procedure TForm1.Button1Click(Sender: TObject); begin showmessage( GetShareName('192.168.1.1').text ); end;我不懂,不懂,不懂....所以我才來ktop學工夫 發表人 - japhenchen 於 2003/10/29 13:08:50 |
japhenchen
高階會員 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
|
japhenchen
高階會員 發表:51 回覆:444 積分:184 註冊:2003-07-23 發送簡訊給我 |
樓上那篇"致命的錯誤"並非使用hostname的錯誤,而是GetShareName的最底下一行freemem的錯,freemem到一個可能沒被getmem出來指標,當然出錯,我已經把頂樓的程式改好了,現在對hostname一樣適用~~~~ 如果想要查詢本機的共享,可以GetShareName('127.0.0.1')或GetShareName('localhost') 這個function有個小缺陷我無法解決~~~~如果大大們有辦法的話,教教小弟如何列出帶有$的隱藏共享~~~~~我解決不了~~~~ 我不懂,不懂,不懂....所以我才來ktop學工夫
|
conundrum
尊榮會員 發表:893 回覆:1272 積分:643 註冊:2004-01-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |