Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Internettraffic messen Unterschied ME/2000

  Alt 4. Jul 2003, 04:01
Ich benutze die Funktion GetIfTable aus der IpHlpAPI.dll um den Traffic mitzuprotokollieren. Dazu verwende ich die Header-Übersetzungen von Marcel van Brakel.

Nun habe ich ein etwas eigenartiges Verhalten festgestellt. Diese Funktion:
Delphi-Quellcode:
function GetSessionTraffic: Cardinal;
var
  IfTable: PMIB_IFTABLE;
  dwSize: Cardinal;
  i: Integer;
begin
  result := 0;
  IfTable := nil;
  dwSize := 0;
  ZeroMemory(@IfTable, sizeof(IfTable));
  try
    VVGetIfTable(IfTable, dwSize, TRUE);
    if IfTable <> nil then
    begin
      for i := 0 to IfTable.dwNumEntries - 1 do
      begin
        if IfTable.table[i].dwType <> MIB_IF_TYPE_LOOPBACK then
          result := IfTable.table[i].dwInOctets + IfTable.table[i].dwOutOctets;
      end;
    end;
  finally
    Freemem(IfTable);
  end;
end;
gibt mir unter Windows2000 das zurück, was sie soll, nämlich den Traffic der aktuellen Internetsitzung. Unter Windows ME jedoch die Summe aller bisherigen Internetsitzungen seit Wiondows gestartet wurde. Dies kann ich jedoch nicht gebrauchen.
Es muß aber einen Weg geben den Traffic der aktuell Sitzung zu bekommen, da das Statusfenster der DFÜ Verbindung korrekte Werte anzeigt.

Weiß jemand woran es liegt, dass ich unter ME immer die Summe aller Sitzungen bekomme und unter Windows 2000 nur den Traffic der aktuellen? Und, was mir wichtiger ist, wie bekomme ich nur den Traffic der aktuellen Sitzung unter ME?

Im Anhang mal meine aktuellen Source, falls es jemand mal testen will.
Angehängte Dateien
Dateityp: zip internetmonitor.zip (71,0 KB, 40x aufgerufen)
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat