Hi Henry,
entschuldige die Verspätung, aber früher gings leider nicht.
Also, wie ich schon geschrieben hatte muss man zwischen Win9x (Win95/98/Me) und WinNT(WinNT 3.x/4.x, WinXP) entscheiden. Der Unterschied liegt darin, dass man unter Win9x den aktuellen Traffic über die Registry auslesen kann. Bei WinNT/XP muss man die RasApi32 verwenden, um für eine Verbindung die Daten zu erhalten.
Jetzt erstmal zu Win9x:
Ich erzeuge ein Registry-Objekt und lese 2 DWord-Werte aus.
TotalBytesRecvd = Download (der gesamte der Windowssession)
TotalBytesXmit = Upload (der gesamte der Windowssession)
d.h. du musst natürlich mittels globalen Hilfsvariablen den aktuellen Download/ Upload speed berechnen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| Uses registry,...; ... var regist : TRegistry; idown, iup : dword; ... begin ... regist := Tregistry.Create; regist.RootKey := HKEY_DYN_DATA; regist.OpenKey('PerfStats\StatData',false); regist.ReadBinaryData('Dial-Up Adapter\TotalBytesRecvd',idown,4); regist.ReadBinaryData('Dial-Up Adapter\TotalBytesXmit',iup,4); regist.free; ... end; |
Zu WinNT/XP
Hier habe ich eine kleine Unit zusammengestellt, die den Traffic der 1. (!!!) DFÜ-Verbindung ermittelt. Mehr wird im Normalfall nicht benötigt (sei dem du hast mehrere DFÜ-Verbindungen gleichzeitig).
Download:
mitglied.lycos.de/Wi...av/rasstatistics.pas
Diese Unit einfach mit unter Uses mit deklarieren und folgendermaßen Aufrufen:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| Uses rasstatistics,...; var rs : TRasStatistics; bytesrcved : DWord; bytesxmit : Dword; bps : DWord; ... begin ... GetRasStatistics(rs); bytesrcved := rs.dwBytesRcved; // Empfangene Bytes bytesxmit := rs.dwBytesXmited; // Gesendete Bytes ... end; |
Auch hier musst natürlich mittels globalen Hilfsvariablen den aktuellen Download/ Upload speed berechnen.
Alles was da oben drinsteht, kannst du auch in der MSDN von Mickysoft nachlesen (Stichwort: RASAPI32)
Ich hoffe ich konnte dir helfen
mfg
Savage