Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Probleme: TInifile und Vista (https://www.delphipraxis.net/90240-probleme-tinifile-und-vista.html)

Graffi 13. Apr 2007 23:15


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:
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;
Kann mir evtl. jemand sagen, was Vista nun mal wieder von mir möchte?? :wall:

Gruss, Ralf

Luckie 13. Apr 2007 23:22

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:
http://www.michael-puff.de/Developer.../HOMEDIR.shtml

Graffi 14. Apr 2007 00:22

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:
Var CurrentIniFile : string;
    CurrentSection : string;
    CurrentDir    : string;
Wie schon geschrieben, die Inhalte dieser Variablen sind -unabhängig von den Zugriffsrechten- vollig identisch.

Die ganze Abwicklung über z.B. %Home% halte ich nicht unbedingt für sinnvoll, da z.B. "Registrationsdaten" nur einmalig eingegeben werden sollten ...

Nuclear-Ping 14. Apr 2007 00:49

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 http://msdn2.microsoft.com/en-us/library/aa905330.aspx

Luckie 14. Apr 2007 02:01

Re: Probleme: TInifile und Vista
 
Und wie kommt der Wert von CurrebtDir zu stande?

Graffi 14. Apr 2007 02:58

Re: Probleme: TInifile und Vista
 
Wie schon geschrieben, sind die folgenden Variablen VON MIR:

Delphi-Quellcode:
Var CurrentIniFile : string;
    CurrentSection : string;
    CurrentDir    : string;
Diese setze ich erst in meiner Anwendung.

Probleme macht diese Routine:

Delphi-Quellcode:
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;
Nur unter Admin-Rechten kommen hier Ergebnisse!!

fkerber 14. Apr 2007 03:05

Re: Probleme: TInifile und Vista
 
Hi!

Zitat:

Zitat von Graffi
Wie schon geschrieben, sind die folgenden Variablen VON MIR:

Delphi-Quellcode:
Var CurrentIniFile : string;
    CurrentSection : string;
    CurrentDir    : string;
Diese setze ich erst in meiner Anwendung.

Und auf welche Werte setzt du diese Variablen?


Ciao, Frederic

Hansa 14. Apr 2007 10:47

Re: Probleme: TInifile und Vista
 
Zitat:

Zitat von Luckie
...Microsoft war bei Vista endlich mal so rigoros und hat das erstellen von Dateien im Programmverzeichnis verboten...

Luckie, Du hast wohl kein Vista ? Sei froh. :mrgreen: Was heißt Programmvereichnis ? Habe soeben neuen User angelegt (-> Standardbenutzer). Dann habe ich mich als Administrator abgemeldet. Um was zu testen bin ich jetzt als "Testuser" im Windows. Dieser User hat soeben versucht einen neuen User anzulegen. Ging nicht (zu wenig Rechte). Der Testuser hat dann compiliert, also zumindest neue DCUs und EXE im Programmverzeichnis erzeugt. Dann hat er noch die INIs gelöscht. Die werden ja dann neu angelegt. Geht alles.

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:

alcaeus 14. Apr 2007 10:52

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

mkinzler 14. Apr 2007 10:54

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 16:56 Uhr.
Seite 1 von 4  1 23     Letzte »    

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