试试CSDN蒋涛老兄的读取注册表HKEY_DYN_DATA中键值//WIN98适用: procedure TForm1.Timer1Timer(Sender: TObject); var usage,usage1:integer; begin with TRegistry.Create do begin RootKey:=HKEY_DYN_DATA; OpenKey('PerfStats\StatData',false); ReadBinaryData('Dial-Up Adapter\TotalBytesRecvd',usage,sizeof(usage)); ReadBinaryData('Dial-Up Adapter\TotalBytesXmit',usage1,sizeof(usage1)); Caption:=IntToStr(usage)+','+IntToStr(usage1); CloseKey; Free; end; end;
WIN2000下用RasGetConnectionStatistics函数: 函数声明: RasGetConnectionStatistics: Function ( // W2K only hrasconn: HRasConn; lpStatistics: PTRas_Stats // buffer to receive statistics ): DWORD; stdcall;实现部分在RASAPI32.DLL中,使用的时候用GetProcAddress动态加载。参数结构: PTRas_Stats = ^TRas_Stats ; TRas_Stats = Record dwSize, dwBytesXmited, dwBytesRcved, dwFramesXmited, dwFramesRcved, dwCrcErr, dwTimeoutErr, dwAlignmentErr, dwHardwareOverrunErr, dwFramingErr, dwBufferOverrunErr, dwCompressionRatioIn, dwCompressionRatioOut, dwBps, dwConnectDuration: DWORD ; end ;使用: var RasStatistics: TRas_Stats; ConnSpd: Integer; begin RasStatistics.dwSize := sizeof(TRas_Stats); RasGetConnectionStatistics(fCurRASConn,@RasStatistics); ConnSpd := RasStatistics.dwBps; end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
usage,usage1:integer;
begin
with TRegistry.Create do
begin
RootKey:=HKEY_DYN_DATA;
OpenKey('PerfStats\StatData',false);
ReadBinaryData('Dial-Up Adapter\TotalBytesRecvd',usage,sizeof(usage));
ReadBinaryData('Dial-Up Adapter\TotalBytesXmit',usage1,sizeof(usage1));
Caption:=IntToStr(usage)+','+IntToStr(usage1);
CloseKey;
Free;
end;
end;
函数声明:
RasGetConnectionStatistics: Function ( // W2K only
hrasconn: HRasConn;
lpStatistics: PTRas_Stats // buffer to receive statistics
): DWORD; stdcall;实现部分在RASAPI32.DLL中,使用的时候用GetProcAddress动态加载。参数结构:
PTRas_Stats = ^TRas_Stats ;
TRas_Stats = Record
dwSize,
dwBytesXmited,
dwBytesRcved,
dwFramesXmited,
dwFramesRcved,
dwCrcErr,
dwTimeoutErr,
dwAlignmentErr,
dwHardwareOverrunErr,
dwFramingErr,
dwBufferOverrunErr,
dwCompressionRatioIn,
dwCompressionRatioOut,
dwBps,
dwConnectDuration: DWORD ;
end ;使用:
var
RasStatistics: TRas_Stats;
ConnSpd: Integer;
begin
RasStatistics.dwSize := sizeof(TRas_Stats);
RasGetConnectionStatistics(fCurRASConn,@RasStatistics);
ConnSpd := RasStatistics.dwBps;
end;