Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   GetPerTcpConnectionEStats in Delphi (https://www.delphipraxis.net/189316-getpertcpconnectionestats-delphi.html)

Shark99 30. Mai 2016 15:12

GetPerTcpConnectionEStats in Delphi
 
Seit Windows Vista gibt es eine sehr nützliche Funktion namens GetPerTcpConnectionEStats welche Informationen über die TCP-Aktivität eines Prozesses liefert.

https://msdn.microsoft.com/en-us/lib...=vs.85%29.aspx

Leider finde ich keinen Code in Delphi dazu. In der JCL ist die Funktion nicht mal deklariert.

Kann mir vielleicht jemand weiterhelfen? Vielen Dank im Voraus!

himitsu 30. Mai 2016 15:37

AW: GetPerTcpConnectionEStats in Delphi
 
Soooo schwer ist das eigentlich nicht.

Zuerst übersetzt du einfach alle (nötigen) Records und Enums, die auf der verlinkten Seite erwähnt/benutzt werden.
Bei Enums aber aufpassen, denn bei windows sind ENUM und BOLL 4 Byte groß (Integer), während Delphi den kleinst möglichen Typ verwendet (Byte).
Also Entweder ENUM = DWORD und Werte als Konstanten oder
Delphi-Quellcode:
{$MinEnumSize 4}
und statt Boolean ein LongBool.

Und dann nur noch die Konstanten übernehmen und die Funktion nach Delphi übersetzen.
Bei Konstanten muß man manchmal in Google suchen oder man lädt sich das Windows-SDK runter und schaut da in die Headerdatei, welche im MSDN erwähnt wird, da im MSDN oft nicht die "Werte" der Konstanten erwähnt werden. (manchmal stehen sie in den Kommentaren)
Bei Parametern mit _OUT_ oder Pointern ala PDWORD kann man auch delphitypisch das als VAR-Parameter oder OUT-Parameter deklarieren.


Das stdcall nicht vergessen, was bei Windows oft der Standard ist.
Und sonst kann man auch einfach mal in der Winapi.Windows.pas abgucken.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:04 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