![]() |
AppData Folder wird falsch zurück gegeben von Windows
Hi,
wir haben einen Kunden(unter 20000) bei dem funktioniert das auslesen des Appdata Pfades nicht richtig, wir lesen den Pfad so aus:
Delphi-Quellcode:
bei jedem anderen user kommt da der richtige appdata pfad raus unter dem usernamen, wie man es bei vista/7 nutzen sollte. Aber unter einem Rechner, kommt als Ergebnis dieser Pfad raus:
const
ExplorerKey = '\Software\Microsoft\Windows\CurrentVersion\Explorer\'; begin Reg := TRegistry.Create; Reg.Access := KEY_READ; try Reg.RootKey := HKey_Current_User; if Reg.OpenKey(ExplorerKey + 'Shell Folders', FALSE) then begin FAppData := Reg.ReadString('AppData'); end; C:\Windows\system32\config\systemprofile\AppData\R oaming und da hat der user keine schreibrechte und somit geht die aktion schief, dort sollten programmeinstellungen in einer IniDatei gespeichert werden. Eigentlich, bei allen anderen rechnern kommt dieser Pfad raus: C:\Users\USERNAME\AppData\Roaming wie kann das sein? Kennt jemand das Problem? Thanks tom |
AW: AppData Folder wird falsch zurück gegeben von Windows
Hi,
über die Registry würde ich den Pfad nicht auslesen, sondern über die entsprechenden Shell-Funktionen. In der ![]() Wird mit dieser Methode der selbe falsche Pfad ausgegeben? Wenn Du an dem betroffenen Rechner im Explorer in der Adresszeile "%appdata%" eingibst und ENTER drückst, landet Du da in dem selben falschen Pfad? wenn ja, dann ist die Konfiguration dieses Rechners schief. gruß Patrick |
AW: AppData Folder wird falsch zurück gegeben von Windows
und das geht ganz gemütlich mit der Unit die du
![]() Darin hast du auch eine nette Procedure, die alle SpecialFolders ausliest und in eine StringList packt.
Delphi-Quellcode:
Damit kannst du dir auch eine MiniProg bauen, und die Ergebnisse in einem Memo anzeigen lassen (oder per Mail schicken lassen, whatever).
procedure GetDirList( const DirList : TStringList; const WithRights : Boolean = False );
Die einzelnen Rechte kann man sich damit auch gleich auslesen und hat somit eine schnelle Information, was auf dem Kundenrechner geht und was nicht ;) |
AW: AppData Folder wird falsch zurück gegeben von Windows
Bitte lesen und dann ganz fix das Programm ändern:
![]() |
AW: AppData Folder wird falsch zurück gegeben von Windows
Hi,
ok ich werd das mal weiter geben :-) danke für die schnelle Hilfe! Ich verwende in meinen Projekten auch teilweise die JvComputerInfosEx aus den JediTools. die machen das da so:
Delphi-Quellcode:
function GetAppdataFolder: string;
begin {$IFDEF CLR} Result := System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); {$ELSE ~CLR} Result := GetSpecialFolderLocation(CSIDL_APPDATA); {$ENDIF ~CLR} end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 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