Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Up- und Downloadgeschwinigkeit ermitteln (https://www.delphipraxis.net/119351-up-und-downloadgeschwinigkeit-ermitteln.html)

Larsi 25. Aug 2008 10:35


Up- und Downloadgeschwinigkeit ermitteln
 
Hi,

wie kann ich die aktuelle Up- und Downloadgeschwinigkeit auslesen. Ich habe bereits eine Möglichkeit gefunden aber dort wird nur angezeigt wenn man z.B. über eine Indy etwas downloadet aber ich möchte die systemweite Up- und Downloadrate ermitteln. Desweiteren habe ich RasApi32 gefunden sogar mit Beispiel Code aber irgendwie kommen dann beim kompillieren Fehler. Die Pas Datei befindet sich hier: http://mitglied.lycos.de/WildSav/rasstatistics.pas . Wenn ich die verwende und dann kompilliere kommt ein Fehler, dass

Delphi-Quellcode:
rs.dwinetstatus := true;
nich existiert.

Ich brauche also entweder einen anderen Beispielcode, eine andere Möglichkeit oder jemanden der weis wie ich den Fehler korrigiere.

Hoffe Ihr könnt mir helfen!


MFG Lars Wiltfang

Deep-Sea 25. Aug 2008 10:43

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Mach das "dw" weg, ist wohl ein Schreibfehler und soll "inetstatus" heißen :wink:

Larsi 25. Aug 2008 10:54

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Ok danke jetzt kommen zwar keine Fehler mehr aber als Downloadrate bzw. Uploadrate steht selbst bei einem Download oder Upload immer 0. Hab nochmal gegooglet und herausgefunden dass dies nur bei einer Dfü Verbindung funktioniert. Ist Wlan eine Dfü Verbindung, nee oder? Gibts noch andere Möglichkeiten die Download und Uploadrate herauszufinden?

Namenloser 25. Aug 2008 11:15

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Dfü = Modem bzw ISDN. Wenn du W-LAN hast nutzt du wahrscheinlich DSL.

Larsi 25. Aug 2008 11:16

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Und welche Möglichkeit habe ich jetzt?

b1zZ 25. Aug 2008 11:29

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Kommst du denn an die Information wieveil Bytes übertragen wurden bzw. werden?
Dann kannst du die Geschwindigkeiten ausrechen.
Das wär zumindenst mein Ansatz.

Meflin 25. Aug 2008 11:29

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Zitat:

Zitat von NamenLozer
Dfü = Modem bzw ISDN. Wenn du W-LAN hast nutzt du wahrscheinlich DSL.

Awa?! Auch WLAN & DSL sind doch Dfü (=Datenfernübertragung!)...

Oder :gruebel:

Namenloser 25. Aug 2008 11:32

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Ja, aber das Modem sitzt nicht im PC sondern im Router, d.h. das Betriebssystem kommt an diese Infos nicht ran. Man kann natürlich einen eigenen Netzwerktreiber installieren, der dann zumindest messen kann, wie viel Up/Downstream der aktuelle Rechner gerade nutzt.

Larsi 25. Aug 2008 11:49

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Zitat:

Kommst du denn an die Information wieveil Bytes übertragen wurden bzw. werden?
Dann kannst du die Geschwindigkeiten ausrechen.
Das wär zumindenst mein Ansatz.
Wie soll das gehen? Es muss doch eine Möglichkeit geben die Download und Uploadrate auszulesen, Windows kann das doch auch.

MrKnogge 25. Aug 2008 12:00

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Natürlich geht das, wurde hier in DP auch schon mehrfach gepostet.

b1zZ 25. Aug 2008 12:43

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Zitat:

Zitat von Larsi
Zitat:

Kommst du denn an die Information wieveil Bytes übertragen wurden bzw. werden?
Dann kannst du die Geschwindigkeiten ausrechen.
Das wär zumindenst mein Ansatz.
Wie soll das gehen? Es muss doch eine Möglichkeit geben die Download und Uploadrate auszulesen, Windows kann das doch auch.

Delphi-Quellcode:
procedure TForm1.IdHTTP1Work(Sender: TObject; AWorkMode: TWorkMode;
  const AWorkCount: Integer);
var
  FPercent: Integer;
begin
  if not ((GetTickCount - FTime) <= 0) then
  begin
    try
      lblSpeedStatus.caption:= Format('%.2f KB/s', [(AWorkCount - FBytes) / (GetTickCount - FTime)]);
    except
    end;
  end;
  FTime:= GetTickCount;
  FBytes:= AWorkCount;
  if FFileSize <> 0 then
    FPercent:= Round((FBytes / FFileSize) * 100);
  //Shape1.Width:= 2 * FPercent;
  Image1.Width:= 2 * FPercent;
  LblPercent.Caption:= IntToStr(FPercent) + '%';
  lblCurrentSize.Caption:= GetSizeName(FBytes);
  lblFileSize.Caption:= '/ ' + GetSizeName(FFileSize);
  Application.ProcessMessages;
end;
Das Beispiel ist zar nur bei einem Download, sollte aber auf diese Art auch funktionieren wenn du an die irgendwie an die Übertragenen Werte kommst.
Ich habe mir die .Pas Datei nicht angeschaut die du angegeben hast.
Mein Beitrag sollte auch nur ein Vorschlag für eine mögliche Lösung sein. Wenn du an die übertragenen Werte nicht kommst ist dieser Vorschlag natürlich hinfällig.

Die Muhkuh 25. Aug 2008 13:02

Re: Up- und Downloadgeschwinigkeit ermitteln
 
b1zZ:

Zitat:

aber ich möchte die systemweite Up- und Downloadrate ermitteln.

halinchen 25. Aug 2008 13:19

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Zitat:

Zitat von Larsi
Windows kann das doch auch.

Windows ist auch Windows und besitzt einen Treiber um die Netzwerkkarte zu nutzen.

Meflin 25. Aug 2008 13:23

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Zitat:

Zitat von Larsi
Wie soll das gehen? Es muss doch eine Möglichkeit geben die Download und Uploadrate auszulesen, Windows kann das doch auch.

Tja, an einem eigenen treiber wird kein Weg vorbeiführen. Das wiederum wird auf WinPCap hinauslaufen ( http://www.winpcap.org/ ). Es gibt sogar Delphi-Komponenten dafür, aber der Name der Portierung ist mir entfallen, war auch damals nicht mehr allzu aktuell das Projekt.

Viel Spaß dabei :roll:

hathor 25. Aug 2008 19:37

Re: Up- und Downloadgeschwinigkeit ermitteln
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nimm doch das:

NETWORKTRAFFICMONITOR_mit sourcecode:


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz