AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Down/Upload herausbekommen
Thema durchsuchen
Ansicht
Themen-Optionen

Down/Upload herausbekommen

Ein Thema von xZise · begonnen am 24. Sep 2006 · letzter Beitrag vom 29. Sep 2006
 
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#27

Re: Down/Upload herausbekommen

  Alt 29. Sep 2006, 18:21
o.O Falsch verstanden ^^
Ich habe den Code genommen (Link)! Problem: Der Wert war so groooooooooooß, dass es Millibits sein müssten. Da man aber nicht Millibits messen kann, kann das Ergebnis nicht sein.

Hier mein Code:
Delphi-Quellcode:
function TForm1.getTraffic(Networkcard : Integer) : TTraffic;
var
// der andere
  MibRow: TMibIfRow;
  IntfTable: PMibIfTable;
  Size: DWORD;
// Luckie
  IfTable: PMIB_IFTABLE;
  dwSize: Cardinal;
// alle
  i: Integer;
begin
  Result[0] := 0;
  Result[1] := 0;
  (*Size := 0;
  if GetIfTable(nil, Size, True) <> ERROR_INSUFFICIENT_BUFFER then
    Exit;
  IntfTable := AllocMem(Size);
  try
    if GetIfTable(IntfTable, Size, True) = NO_ERROR then
    begin
      for I := 0 to IntfTable^.dwNumEntries - 1 do
      begin
        {$R-}
        MibRow := IntfTable.Table[I];
        {$R+}
        if MibRow.dwType <> MIB_IF_TYPE_ETHERNET then
          Continue; // oder MIB_IF_TYPE_PPP
        if i = Networkcard then begin  // Welche Verbindung

          Result[0] := MibRow.dwInOctets;
          Result[1] := MibRow.dwOutOctets;
        end;
      end;
    end;


  finally
    FreeMem(IntfTable);
  end;*)


  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 begin
          Result[0] := IfTable.table[i].dwInOctets;
          Result[1] := IfTable.table[i].dwOutOctets;
        end;
      end;
    end;
  finally
    Freemem(IfTable);
  end;
end;
Und das bekomme ich:
Zitat:
-1066368571
221048498
Der Ergäben in MBit:
Zitat:
-1016,96831798553466796875 MBit/s
210,8082752227783203125 MBit/s
Und dann bin ich mit 11 MBit/s (WLAN) bzw. 3 MBit/s (Internet) drinne...?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz