![]() |
STEAM DLL
Liste der Anhänge anzeigen (Anzahl: 2)
Hi,
momentan sind "Steve1405" und ich dabei die Steam.dll ( ![]() 1. Wir wollen die Funktion "SteamGetUser" aufrufen, wir bekommen zwar einen Namen zurück, danach wird man aber in dem Testprogramm ausgeloggt. Deshalb gehen wird davon aus das es ein Fehler bei dem Aufruf ist, oder dass die Parameterliste nicht mehr stimmt.
Delphi-Quellcode:
Den Code zur Ausführung der Funktion haben wir so gestalltet:
function SteamGetUser(szUser: PChar; uBufSize: Cardinal;
puUserChars: PCardinal; bIsSecureComputer: Integer; pError: PnduSteamError): Integer; cdecl; external 'steam.dll'; Der Variablenname puUserChars sollte unser Meinung nach die Anzahl der Buchstaben zurückgeben, jedoch wird 48401 zurückgeliefert und der result-Wert ist nur Datenschrott.
Delphi-Quellcode:
2. Ich will eine Funktion "SteamGetCurrentEmailAddress" aufrufen, leider Fehlt mir für die Funktion die Parameterliste, mit dem Tool "APIMonitor" bekomme ich zwar ziemlich genau den result-Wert, jedoch fehlen mir die weiteren Parameter:
FUNCTION TnduSteam.GetUser:PChar;
VAR strProg: TnduSteamProgress; phGetUser: Cardinal; puUserChars:PCardinal; UserName:PChar; BEGIN phGetUser := SteamGetUser(UserName,16{uBufSize=laenge des Namens +1},puUserChars,1,@mError); //ShowMessage(IntToStr(puUserChars^)); WHILE SteamProcessCall(phGetUser, @strProg, @mError) = 0 DO BEGIN END; result := UserName; END;
Delphi-Quellcode:
Vielleicht hat einer in dieser Richtung schon Erfahrungen gesammelt, oder ist gut im Raten, dass weitere Parameter fehlen schließe ich aus der Zugriffsverletzung.
FUNCTION SteamGetCurrentEmailAddress(szEmail: PChar; {weitere Parameter}
pError: PnduSteamError): Integer; cdecl; external 'steam.dll'; Damit Ihr nicht bei 0 anfangen müsst, ist hier unser Testprogramm. Für die Ausführung des Programms wird selbstverständlich die Steam.dll benötigt, die im Steam.exe Ordner vorhanden ist, ich habe die nicht hinzugefügt weil ich nicht weiß ob es rechtens ist! |
Re: STEAM DLL
Ich habe etwas herumprobiert wenn man den Aufruf der Funktion ändert, ist es erstmal egal wie viele Buchstaben der Name besitzt.
Delphi-Quellcode:
FUNCTION SteamGetUser(szUser: PChar; puUserChars: PCardinal;
uBufSize: Cardinal; bIsSecureComputer: Integer; pError: PnduSteamError): Integer; cdecl; external 'steam.dll';
Delphi-Quellcode:
Jedoch Loggt man sich nach dem Aufruf immer noch aus :gruebel:
FUNCTION TnduSteam.GetUser:PChar;
VAR strProg: TnduSteamProgress; phGetUser: Cardinal; puUserChars:PCardinal; UserName:PChar; BEGIN phGetUser := SteamGetUser(UserName,puUserChars,1,1,@mError); WHILE SteamProcessCall(phGetUser, @strProg, @mError) = 0 DO BEGIN END; result := UserName; END; Und zur EMailAdresse, es sind 4 Parameter beim Aufruf, jedoch weiß ich noch nicht genau welche dort hinein müssen.
Delphi-Quellcode:
Wenn jemand noch eine Idee hat gerne her damit, schaden kann es ja nicht..
FUNCTION SteamGetCurrentEmailAddress(szEmail: PChar; uBufSize: Cardinal;
puEmailChars: PCardinal; //bIsSecureComputer: Integer; pError: PnduSteamError): Integer; cdecl; external 'steam.dll'; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:33 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