NetworkTrafficMonitor?
wer wie was wo ... ?
In der
DP kann ich keinen
NetworkTrafficMonitor finden
und Google findet mir zuviele
NetworkTrafficMonitor's.
Aber falls du den da meinst
http://delphi.about.com/od/fullcodep.../aa112903a.htm
der Quellcode ist ja vorhanden und man könnte auch selber mal nachsehn .... allerdings find ich den Wert von 1000 eigenartig ... wenn dann würde ich eher mir Werten wie 2 GB bzw. 4 GB rechnen > Integerüberlauf
[add]
Problem gefunden ... war gleich eine der ersten Funktionen, welche man in TrafficUnit.pas
sieht
Delphi-Quellcode:
function BytesToFriendlyString(Value : DWord) : string;
const
OneKB = 1000;
OneMB = OneKB * 1000;
OneGB = OneMB * 1000;
begin
if Value < OneKB then
Result := FormatFloat('#,##0.00 bps',Value)
else
if Value < OneMB then
Result := FormatFloat('#,##0.00 Kbps', Value / OneKB)
else
if Value < OneGB then
Result := FormatFloat('#,##0.00 Mbps', Value / OneMB)
end; (*BytesToFriendlyString*)
selbes in der Funktion BitsToFriendlyString
Wenn man da einfach das
if Value < OneGB then entfernt und nur ein ELSE rum letzen "String" zurückläßt, dann würde es wieder gehen ... allerdings gibt es dann immernoch, dank DWord, nach 4 GB einen überlauf und man sollte das ganze Programm besser von DWord auf Int64 umstellen.
[add2]
Im Anhang die komplette
Unit, mit geänderten IF-Abfragen und auf Int64 umgestellt.
Ich hoff mal die paar Änderungen reichen aus (einfach nach {himitsu} suchen).
Das ganze Programm müßte nun nur noch neu kompiliert werden,
nur bloß nicht mit D2009, dann da läuft es nicht (da z.B. Get_IfTableMIB nur Schrott liefert)
[add3]
so, ist wirklich nicht unicodetauglich, der Code ... in D2006 ging es
hab aber noch derartig grausame DIV-0-Behandlungen ersetzt
Delphi-Quellcode:
try
self.FAverageInPerSec := InTotal div ActiveCountIn
except
self.FAverageInPerSec := 0
end;