Hallo Experten,
ich habe mir die Funktion aus diesem Forum so umgeschrieben, sodass er den Netzwerktraffic in und out in eine Listbox speichert, dieser sieht dann so aus:
Delphi-Quellcode:
procedure gettraffic();
var MibRow: TMibIfRow;
IntfTable: PMibIfTable;
Size: DWORD;
I: Integer;
oldi,oldo:integer;
begin
Size := 0;
try
if GetIfTable(nil, Size, True) <> ERROR_INSUFFICIENT_BUFFER then Exit;
IntfTable := AllocMem(Size);
if GetIfTable(IntfTable, Size, True) = NO_ERROR then
begin
// showmessage(inttostr(IntfTable^.dwNumEntries));
for I := 0 to IntfTable^.dwNumEntries-1 do //9
begin
{$R-}MibRow := IntfTable.Table[I];{$R+}
if MibRow.dwType <> MIB_IF_TYPE_ETHERNET then Continue; // oder MIB_IF_TYPE_PPP
if i = 9 then begin // Welche Verbindung
oldi:=round(MibRow.dwInOctets/1024);
oldo:=round(MibRow.dwOutOctets/1024);
form1.listbox1.Items.Add(inttostr((oldi-oit)*2));
form1.listbox1.Items.Add(inttostr((oldo-oot)*2));
oit:=oldi;
oot:=oldo;
end;
end;
end;
finally
FreeMem(IntfTable);
end;
end;
Wenn nun der Traffic steigt, kommt immer eine Fehlermeldung mit die da lautet: "Fehler bei Bereichsprüfung". Kann das daher kommen, dass ich Win 7 64bit hier hab und er z.B. über eine gewisse Grenze geht, also der Traffic? Weil wenn kaum Traffic verursacht wird, läuft das ganze rund, jedoch kam der Fehler auch schon vor meinen Veränderungen, als ich den Code nur getestet habe.
Vielleicht könnt ihr mir helfen.
Vielen Dank schon mal für jeden Tipp.
Gruß Masteric
"Programmieren ist eine der universellsten, allübergreifendsten und höchsten von Menschen erreichten Formen der Kreativität."
Nur weil Gott die Welt in 6 Tagen erschaffen hat, heisst das nicht, dass Informatiker alles in 6 Tagen programmieren können.