如何偵測網卡連線速度?? |
尚未結案
|
kasber
一般會員 發表:4 回覆:2 積分:1 註冊:2004-05-03 發送簡訊給我 |
目前網卡有10M,100M,1G這三種,我應該用哪些API來得知目前連線狀況?
http://delphi.ktop.com.tw/topic.php?topic_id=22757
裡面有提到大概做法,不過還是不太懂,如何使用setup API來OPEN device.
網上也找不到範例,目前自己做到如下步驟,卻不知如何接下去或有無錯誤之處,不知哪位可以替我指點迷津。Thanks.
GUID *guidList; HDEVINFO DevInfoSet; DWORD MemberIndex; SP_DEVINFO_DATA *DevInfoData; DWORD ReqSize; bool Return; int index; //------------------------------------------------------------------ __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { ReqSize = 1; guidList = new GUID[ReqSize]; DevInfoData = new SP_DEVINFO_DATA; DevInfoData->cbSize = sizeof(SP_DEVINFO_DATA); Return = SetupDiClassGuidsFromName( "Net", guidList, ReqSize, &ReqSize); if(Return == False){ delete [] guidList; guidList = new GUID[ReqSize]; SetupDiClassGuidsFromName( "Net", guidList, ReqSize, &ReqSize); } DevInfoSet = SetupDiGetClassDevs( guidList, NULL, NULL, DIGCF_PRESENT); index = 0; do{ Return = SetupDiEnumDeviceInfo( DevInfoSet, index, DevInfoData); if(Return) { Memo1->Lines->Add("OK"); } else { Memo1->Lines->Add(IntToStr(GetLastError())); } index ; }while(Return); delete [] guidList; delete [] DevInfoData; } |
kasber
一般會員 發表:4 回覆:2 積分:1 註冊:2004-05-03 發送簡訊給我 |
最近我加入一個API=>SetupDiGetDeviceRegistryProperty結果卻出現
The data is invalid. 的LastError不知道原因出在哪.寫法如下
BYTE *PropertyBuffer; DWORD type; PropertyBuffer = new BYTE[256]; Return = SetupDiGetDeviceRegistryProperty( DevInfoSet, DevInfoData, SPDRP_FRIENDLYNAME, &type, PropertyBuffer, 256, NULL); if(Return) { Memo1->Lines->Add("OK"); } else { Memo1->Lines->Add(IntToStr(GetLastError())); }有人看的出其中錯誤的地方嗎?Thanks. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |