線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1040
推到 Plurk!
推到 Facebook!

如何偵測網卡連線速度??

尚未結案
kasber
一般會員


發表:4
回覆:2
積分:1
註冊:2004-05-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-16 11:37:30 IP:210.243.xxx.xxx 未訂閱
目前網卡有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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-17 10:40:56 IP:210.243.xxx.xxx 未訂閱
最近我加入一個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.
系統時間:2024-05-18 17:54:46
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!