![]() |
Re: Netzwerkauslastung / Traffic
ja, der wert ist ja cardinal, also wird er automatisch auf 0 gesetzt, wenn man die maximale größe überspringt.
habs jetzt mit dem delta gemacht, funktioniert auch gut, aber perfekt ist es eben nicht. ist halt typisch microsoft. alles so klein wie möglich halten (HD<128GB, ...) gruss, iaby |
Re: Netzwerkauslastung / Traffic
Da sehr viele sich intressieren dafür wie man die Geschwindigkeit ermittelt hier ;-)
Das Beispiel zeigt den aktuellen Speed der ersten Netzwerkkarte (incoming Traffic) an (in kb/s) Den Speed des Timers auf 1000 (1 sekunde)
Code:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls,Winsock, IpExport, IpHlpApi, IpTypes, IpIfConst, IpRtrMib, ExtCtrls; type TForm1 = class(TForm) Timer1: TTimer; Label1: TLabel; procedure Timer1Timer(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; old: integer; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); var MibRow: TMibIfRow; IntfTable: PMibIfTable; Size: DWORD; I: Integer; wert:integer; begin 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 = 1 then begin // Welche Verbindung wert := MibRow.dwInOctets - old; label1.caption := floattostr(round(Wert /1024 *100)/100) + ' KB/s'; old := MibRow.dwInOctets end; end; end; finally FreeMem(IntfTable); end; end; end. |
Re: Netzwerkauslastung / Traffic
Kann man wohl auch irgendwie herausfinden, welche Anwendung oder welche Adresse/Port sich hinter den in/out-Daten verbirgt?
|
Re: Netzwerkauslastung / Traffic
Neue Frage, neuer Thread...
|
Re: Netzwerkauslastung / Traffic
|
Re: Netzwerkauslastung / Traffic
wo ist der anhang von Luckie hin? ich wollte mir die units gerne mal ansehen von Marcel van Brakel!
|
Re: Netzwerkauslastung / Traffic
Anhänge wurden vorläufig gesperrt, werden aber wieder freigeschaltet.
gruss |
Re: Netzwerkauslastung / Traffic
stichwort
IPHLPAPI.pas |
Re: Netzwerkauslastung / Traffic
Ich habe mal eine Frage... Auch wenns schon 2 Jahre her ist:
Ich bekomme so komische Werte (10 Stellen?) und teilweise Negativ (o.o)... Ich habe es mit Luckies Programmcode und den Dateien von Luckies anhang probiert (is übrigends bei Calimeros Code genauso)! |
Re: Netzwerkauslastung / Traffic
Und promt einen Fehler gefunden sobald der Rechner ein kleines Treiberproblem hat und die Lösung!
Ich hatte als mein Rechner ein paar Tage durchgelaufen war einen Fehler der Marke ErangeError,hat vielleicht noch keiner von euch gemerkt weils noch nicht gepostet wurde? :shock: Das Problem war das die Software dann andauernd eine Messagebox mit eben diesem Fehler gebracht hat. Poste den Quellcode nochmals von mir überarbeitet.
Delphi-Quellcode:
[edit=Admin]Code in Delphi-Tags gesetzt. :-) Mfg, Daniel[/edit]
var MibRow: TMibIfRow;
IntfTable: PMibIfTable; Size: DWORD; I: Integer; wert:integer; begin try 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 = 1 then begin // Welche Verbindung wert := MibRow.dwInOctets - old; label1.caption := floattostr(round(Wert /1024 *100)/100) + ' KB/s'; old := MibRow.dwInOctets ; end; end; end; except on erangeerror do begin timer1.Enabled:=false; showmessage('Ein Treiberproblem ist aufgetreten!Starten Sie den Computer neu.'); end; end; finally FreeMem(IntfTable); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:14 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