Einzelnen Beitrag anzeigen

Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

Vista: Probleme beim LESE-Zugriff auf Programmverzeichnis

  Alt 23. Feb 2007, 09:23
Hallo!

Bei der Installation meines Programmes werden sowohl die Programm EXE als auch einige Konfigurationsdateien in das Installationsverzeichnis kopiert. Die Konfigurationsdateien sind vom Benutzerunabhängig. Das Programm liest ausschließlich Informationen aus diesen Dateien und schreibt nie in diese.

Ich weiß, dass Konfigdateien in denen einen Programm seine Einstellungen speichert nicht ins Programmverzeichnis sondern nach AppData gehören. Aber in meinem Fall handelt es sich wie gesagt nicht um Konfigdateien in diesem Sinne.

Beim Start versucht das Programm nun auf die Konfigdateien in seinem Verzeichnis zuzugreifen. Des gelingt allerdings nicht, da das Programm die Dateien nicht finden kann.

FileExists(ExeVerzeichnis+KonfigdateiName) ergibt immer FALSE. Ebenso liefert der Versuch die Datei mit einem Stream zu öffnen den Fehler, dass das System die Datei nicht finden kann:
TFileStream.Create(KonfigDatei, fmOpenread or fmShareDenyNone);

Laut Explorer befindet sich die Datei aber eindeutig in diesem Verzeichnis. Das Ergebnis ist unabhägig davon, ob die EXE und die Konfigdateien durch das Setup oder manuell in das Programmverzeichnis kopiert wurden. Laut Explorer sind die Dateien an Ort und stelle und das Programm kann sie nicht finden.

Ich weiß, dass Schreibzugriffe auf das Programmverzeichnis von der UAC auf ein virtuelles Verzeichnis umgeleitet werden. Aber ich will ja nichts schreiben sondern nur lesen...

Wenn der Lesezugriff wegen mangelnder Rechte o.ä. verweigert würde, könnte ich das auch noch nachvollziehen. Aber warum werden die Dateien einfach nicht gefunden?

Kennt jeman das Problem? Weiß jemand was ich hier falsch mache und wie ich das ganze lösen kann?

Besten Dank
Ares
  Mit Zitat antworten Zitat