![]() |
GetProfilesDirectory in Delphi einbinden
Hi, ich hänge gerade mit "GetProfilesDirectory" aus dem
![]() Ich bekam als Vorschlag: function GetProfilesDirectory;external 'userenv.dll' name 'GetProfilesDirectoryA'; Das funktioniert natürlich nicht. Ich habe es geändert: function GetProfilesDirectory(lpProfilesDir:PChar; var lpcchSize:DWORD):bool;external 'userenv.dll' name 'GetProfilesDirectoryA'; So wird es anstandslos compiliert. Wahrscheinlich muss noch ein stdcall rein. Aber das hilft auch nicht weiter. Der Code dazu:
Delphi-Quellcode:
wobei ich b eingesetzt habe, weil benutzerprofilverz in
function LeseBenutzerProfilVerzeichnis:string;
var len : DWORD; b:string; begin len := 264; SetLength(result, len); if not GetProfilesDirectory(PChar(b), len) then RaiseLastWin32Error; SetLength(Result, len); end;
Delphi-Quellcode:
nicht declariert wurde.
if not GetProfilesDirectory(PChar(benutzerprofilverz), len) then
Der Aufruf ShowMessage(LeseBenutzerProfilVerzeichnis) bringt nur Exceptions. Ich habe schon einiges ausprobiert, ich komme aber keinen Schritt weiter, obwohl ich der Lösung so nah bin. Dann wäre aus der Notlösung des Thread ![]() |
Re: GetProfilesDirectory in Delphi einbinden
Hi,
vergleiche mal, wenn du magst:
Delphi-Quellcode:
Grüße vom marabu
unit WinUtils;
interface function GetProfilesDir: String; implementation const userenv = 'userenv.dll'; function GetProfilesDirectory(lpProfilesDir: PChar; var Size: DWORD): BOOL; stdcall; external userenv name 'GetProfilesDirectoryA'; function GetProfilesDir: String; var pathName: array [0 .. MAX_PATH] of Char; dwSize: DWORD; begin dwSize := SizeOf(pathName); if GetProfilesDirectory(pathName, dwSize) then SetString(Result, pathName, dwSize) else RaiseLastWin32Error; end; end. |
Re: GetProfilesDirectory in Delphi einbinden
Moin Go2EITS,
es gibt übrigens für verschiedene Verzeichnisse (AllUsers, DefaultUser) verschiedene solcher Funktionen. Allerdings funktionieren diese nur auf der NT-Schiene, teilweise erst ab Windows 2000. |
Re: GetProfilesDirectory in Delphi einbinden
@Marabu:
Probiere ich morgen aus, ok? Vielen Dank vorerst! @Seehase: Ich habs gesehen, der Teil geht ab Windows2000. Win98/Me ist eh alter Hut, sorry. Und da man die Winversion abfragen kann... CU! Gute Nacht. Go2EITS |
Re: GetProfilesDirectory in Delphi einbinden
Moin Go2EITS,
ich fange auch nur noch bei 2000 an ;-) Wenn Du vorher die Windows-Version abfragen willst, darfst Du aber nicht vergessen, dass Du die Funktion dann dynamisch einbinden muss (oder bei falscher Version eben nicht ;-)) |
Re: GetProfilesDirectory in Delphi einbinden
@marabu
Guten Morgen! Herzlichen Dank! Deine Version funktioniert einwandfrei! @Seehase Zitat:
Seehase und marabu: :thumb: Bis bald! |
Re: GetProfilesDirectory in Delphi einbinden
So zum Beispiel:
![]() |
Re: GetProfilesDirectory in Delphi einbinden
@Luckie:
Danke, jetzt gehts aber Schlag auf Schlag! :thumb: Deinen Link habe ich mir angesehen und setze Eure Vorschläge in meinen Projekten um! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:29 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