取得網路卡的相關設定 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
1.此篇文章的目的為何?? 主要的目的在示範如何取得電腦中所有網路卡的相關設定 2.是否有完整的範例 Project (包含 Source Code) 可以下載?? http://delphi.ktop.com.tw/loadfile.php?TOPICID=12339099&CC=275961 3.該如何操作這個範例?? (1)下載及解壓縮檔案 GetAdaptersInfo1.zip,並執行檔案 GetAdaptersInfo1.exe (2)按「Start」Button 即可看到執行的結果 4.此範例可以在哪一個作業系統執行?? (1)理論上在 Windows 9X/ME/NT/2000/XP/2003 都可以執行,不過目前只有在 Windows 2000 實際測試過,有興趣的會員,也請幫忙測試看看 (2)不過有關讀取 DNS 相關設定的功能,根據 M$DN 中的說明,只能用在 Windows 2000 以後的作業系統 5.有沒有相關的參考文件?? http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/getadaptersinfo.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/getperadapterinfo.asp 6.如果寫得不好,或是有不對的地方,請大家多多指教 >> --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
Hi, 包子兄, 弟看了一下你的程式, 發現有一點點小錯誤, 就是在使用 GetAdaptersInfo 及 GetPerAdapterInfo 這兩個 API 時, 您都使用了預設的大小, 這樣對於更多的網卡時, 會有不足緩衝區配置的問題(也就是第一個 if 的部分發生回傳 ERROR_BUFFER_OVERFLOW 的現象, 造成無法取得網卡的資訊), 弟稍微修改了一下程式, 使您的程式更為完整且正確. 也就是在使用之前, 先取得需要的緩衝區大小, 再配置充足的記憶體空間後, 取得完整的結構, 並秀出在畫面上, 請您笑納!! 另請參考弟的一篇使用 GetAdaptersInfo 資料:
http://delphi.ktop.com.tw/topic.php?topic_id=43937 其實有很多 API 都會有這樣子的用法, 這也是因為 windows 使用 C 語言開發的關係, 所以會有許多類似這種 case 的 api 哦~ 更新程式碼請連結:
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: Hi, 包子兄, 弟看了一下你的程式, 發現有一點點小錯誤, 就是在使用 GetAdaptersInfo 及 GetPerAdapterInfo 這兩個 API 時, 您都使用了預設的大小, 這樣對於更多的網卡時, 會有不足緩衝區配置的問題(也就是第一個 if 的部分發生回傳 ERROR_BUFFER_OVERFLOW 的現象, 造成無法取得網卡的資訊), 弟稍微修改了一下程式, 使您的程式更為完整且正確. 也就是在使用之前, 先取得需要的緩衝區大小, 再配置充足的記憶體空間後, 取得完整的結構, 並秀出在畫面上, 請您笑納!! 另請參考弟的一篇使用 GetAdaptersInfo 資料: http://delphi.ktop.com.tw/topic.php?topic_id=43937 其實有很多 API 都會有這樣子的用法, 這也是因為 windows 使用 C 語言開發的關係, 所以會有許多類似這種 case 的 api 哦~ 更新程式碼請連結: >>< face="Verdana, Arial, Helvetica"> timhuang 你好: 謝謝你的指正,能夠讓此範例更完善,加惠更多的網友!!對於 Win32 API 的使 用觀念,小弟我曾在這篇文章裡面解說;而我曾經發表過的所有範例,也都是以 最簡單的方式來撰寫,因此只考慮正常的情況,對於流程控管、錯誤處理...等 這些產品化的工作,則是留給有需要的網友的功課,這是他們應該自己完成的事 情,至於最後能夠修改到什麼樣的程度,就看每個人的功力了!! src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
cogi698
一般會員 發表:2 回覆:3 積分:1 註冊:2004-07-27 發送簡訊給我 |
包子兄你好,小弟將下載的程式使用BCB6 complier則沒問題,但用BCB5 complier則出現了下列的messages: [Linker Error] Unresolved external 'GetAdaptersInfo' referenced from C:\DOCUMENTS AND SETTINGS\NEOYU\桌面\GETADAPTERSINFO1\UNIT1.OBJ [Linker Error] Unresolved external 'GetPerAdapterInfo' referenced from C:\DOCUMENTS AND SETTINGS\NEOYU\桌面\GETADAPTERSINFO1\UNIT1.OBJ 可以請教一下,如何才能使程式在BCB5上正確的complier 謝謝!
|
taishyang
站務副站長 發表:377 回覆:5490 積分:4563 註冊:2002-10-08 發送簡訊給我 |
排版亂了,重貼一次
1.此篇文章的目的為何?? 主要的目的在示範如何取得電腦中所有網路卡的相關設定 2.是否有完整的範例 Project (包含 Source Code) 可以下載?? http://delphi.ktop.com.tw/loadfile.php?TOPICID=12339099&CC=275961 3.該如何操作這個範例?? (1)下載及解壓縮檔案 GetAdaptersInfo1.zip,並執行檔案 GetAdaptersInfo1.exe (2)按「Start」Button 即可看到執行的結果 4.此範例可以在哪一個作業系統執行?? (1)理論上在 Windows 9X/ME/NT/2000/XP/2003 都可以執行,不過目前只有在 Windows 2000 實際測試過,有興趣的會員,也請幫忙測試看看 (2)不過有關讀取 DNS 相關設定的功能,根據 M$DN 中的說明,只能用在 Windows 2000 以後的作業系統 5.有沒有相關的參考文件?? http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/getadaptersinfo.asp http://msdn.microsoft.com/library/default.asp?url=/library/en-us/iphlp/iphlp/getperadapterinfo.asp |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |