![]() |
Probleme: TInifile und Vista
Hallo,
sorry, Vista treibt mich langsam zum Wahnsinn: In meiner Anwendung lese ich mehrere INI-Datei aus, was aber nur über "Ausführen als Administrator" korrekt funktioniert. Ohne Adminrechte bleiben die Ergebnisse immer leer. Hier einmal meine stinknormale Routine. (Anm.: "CurrentDir" und "CurrentInifile" zeigen mit/ohne Admin selbigen Inhalt an, zb: "C:\program files\ich\" und "main" ... kann also nicht das Problem sein):
Delphi-Quellcode:
Kann mir evtl. jemand sagen, was Vista nun mal wieder von mir möchte?? :wall:
function ReadIniStr(Eintrag: string) : string;
var MyIniFile: TIniFile; begin MyIniFile := TIniFile.Create(CurrentDir+CurrentInifile+'.ini'); with MyIniFile do begin Result := Readstring(currentsection,eintrag,''); end; MyIniFile.Free; end; Gruss, Ralf |
Re: Probleme: TInifile und Vista
CurrentDir dürfte dir zufälligerweise das Anwendungsverzeichnis liefern, weil dies das aktuelle Verzeichnis nach dem Start ist. Microsoft war bei Vista endlich mal so rigoros und hat das erstellen von Dateien im Programmverzeichnis verboten. (Einige Programmierer haben selbst nach 20 Jahren NT immer noch nicht gemerkt, dass Windows mittlerweile ein Mehrbenutzerbetriebssystem ist unter dem es auch Benutzer mit eingeschränkten Rechten gibt. Was dazu geführt hat, dass der Benutzer doch wieder als Administrator arbeitet, weil sonst diese Programme nicht liefen.)
Schreib die Ini-Dateien dort hin, wo sie in gehören, in das Verzeichnis des Benutzers: ![]() |
Re: Probleme: TInifile und Vista
[quote="Luckie"]CurrentDir dürfte dir zufälligerweise das Anwendungsverzeichnis liefern, weil dies das aktuelle Verzeichnis nach dem Start ist./quote]
Nein, das sind meine internen Variablennamen:
Delphi-Quellcode:
Wie schon geschrieben, die Inhalte dieser Variablen sind -unabhängig von den Zugriffsrechten- vollig identisch.
Var CurrentIniFile : string;
CurrentSection : string; CurrentDir : string; Die ganze Abwicklung über z.B. %Home% halte ich nicht unbedingt für sinnvoll, da z.B. "Registrationsdaten" nur einmalig eingegeben werden sollten ... |
Re: Probleme: TInifile und Vista
So wie ich es verstanden habe ist es unter Vista eben nicht mehr so, dass Registrierungsdaten nur einmal gespeichert werden und dann von jedem Benutzerkonto aus abgerufen werden können. Stichpunkt "Virtualization".
Schau mal auf ![]() |
Re: Probleme: TInifile und Vista
Und wie kommt der Wert von CurrebtDir zu stande?
|
Re: Probleme: TInifile und Vista
Wie schon geschrieben, sind die folgenden Variablen VON MIR:
Delphi-Quellcode:
Diese setze ich erst in meiner Anwendung.
Var CurrentIniFile : string;
CurrentSection : string; CurrentDir : string; Probleme macht diese Routine:
Delphi-Quellcode:
Nur unter Admin-Rechten kommen hier Ergebnisse!!
function ReadIniStr(Eintrag: string) : string;
var MyIniFile: TIniFile; begin MyIniFile := TIniFile.Create(CurrentDir+CurrentInifile+'.ini'); with MyIniFile do begin Result := Readstring(currentsection,eintrag,''); end; MyIniFile.Free; end; |
Re: Probleme: TInifile und Vista
Hi!
Zitat:
Ciao, Frederic |
Re: Probleme: TInifile und Vista
Zitat:
Was jetzt wirklich nicht geht : CD <Admin-Verzeichnis> Echt toll. Mittlerweile glaube ich, dass M$ eingesehen hat, dass es sie selber Geld kosten würde, die User unnötig zu gängeln. :mrgreen: |
Re: Probleme: TInifile und Vista
Hansa, koenntest du deine Vista-Probleme dort lassen, wo sie hingehoeren? Danke.
@Graffi: in welchen Verzeichnissen schreibst du rum, wie sehen die Berechtigungen aus, und ist UAC aktiviert oder deaktiviert? Greetz alcaeus |
Re: Probleme: TInifile und Vista
Wo hast du die Programme abgelegt? Im Standardpfad c:\Program Files hat ein Standardbenutzer kein Schreibrechte. Schreibzugriffe werden virtualisiert, d.h auf ein Verzeichnis in seinem Userverzeichnis umgelenkt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:24 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 by Thomas Breitkreuz