VC.NET: 获取网速

perfmon.exe

Form1.h

private:
        PerformanceCounter^ PC_PTT;      
        ArrayList AL_PC_NIR, AL_PC_NIS;          //数组不需要初始化

 private:
        System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e)
        {         
            PerformanceCounterCategory^ PCC = gcnew PerformanceCounterCategory("Network Interface");
            array<String^>^ arrayInstanceNames = PCC->GetInstanceNames();
            String^ instanceName;
            for each(instanceName in arrayInstanceNames) {
                System::Diagnostics::Debug::WriteLine("L178: " + instanceName);
                PerformanceCounter^ PC_NIR = gcnew PerformanceCounter("Network Interface", "Bytes Received/sec", instanceName);
                PerformanceCounter^ PC_NIS = gcnew PerformanceCounter("Network Interface", "Bytes Sent/sec", instanceName);
                AL_PC_NIR.Add(PC_NIR);
                AL_PC_NIS.Add(PC_NIS);
            }
        }

private:
        System::Void timer1_Tick(System::Object^  sender, System::EventArgs^  e)
        {
            ......
            float BR = 0, BS = 0;

            for each(PerformanceCounter ^ PC_NIR in AL_PC_NIR) {
                BR += PC_NIR->NextValue();
            }

            for each(PerformanceCounter ^ PC_NIS in AL_PC_NIS) {
                BS += PC_NIS->NextValue();
            }

            String^ string = "↑: " + KBS(BS) + "\n↓: " + KBS(BR);
            this->label1->Text = string;
        }

        String^ KBS(float b)
        {
            String^ s = "    0 KB/s";
            if(b > 999) {
                s = (b / 1024).ToString("#0")->PadLeft(5, ' ') + " KB/s";
            }
            return s;
        }

下一步要把信息显示到任务栏,不知道做耶~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值