Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi forcedirectories + Vista = Problem? (https://www.delphipraxis.net/144513-forcedirectories-vista-%3D-problem.html)

Borschti 9. Dez 2009 14:48


forcedirectories + Vista = Problem?
 
Hallo,

ich habe ein kleines Problem mit der Methode forcedirectories und Vista. Und zwar war ich gestern bei einem Kunden um mein Programm vorzustellen und dieser hatte Vista auf dem Rechner. Bei mir (Wind XP) funktionierte alles wunderbar sprich der Ordner wurde angelegt wenn er nicht vorhanden war. Auf dem Vista Rechner war dies allerdings nicht der Fall. Jetzt habe ich hier leider keinen Vista Rechner zur Hand um das mal genauer unter die Lupe zu nehmen. Ist diesbezüglich irgendetwas bekannt, auch gerne Lösungsvorschläge? Könnte das vielleicht mal jemand auf seinem Vista Rechner für mich testen? Wär echt Super.

VG Alex

Luckie 9. Dez 2009 14:50

Re: forcedirectories + Vista = Problem?
 
Meine Glaskugel sagt mir, dass die nötigen Rechte fehlen die Ordner anzulegen. Wo und mit welchen Rechten sollten denn die Ordner angelegt werden? Und mit welchen Rechten arbeitest du unter XP?

holliesoft 9. Dez 2009 14:57

Re: forcedirectories + Vista = Problem?
 
Das Stichwort dazu wird UAC sein - bzw. "Benutzerkontensteuerung" auf gut Deutsch.

Ab Windows Vista arbeitet auch der Admin standardmäßig mit eingeschränkten Rechten. Wenn eine Anwendung Adminrechte braucht, dann müssen diese beim Start des Programms über ein eingebundenes Manifest angefordert werden.

Grundsätzlich ist es für Anwendungen verpöhnt, im Programmverzeichnis zu schreiben. Für Konfigurationsdaten gibt es andere Speicherorte (Stichwort "Anwendungsdaten").

Wie sieht es denn aus, wenn Du die Programmdatei mit der rechten Maustaste anklickst und "als Administrator ausführen" wählst?
Funktioniert es dann?

Gruß
Patrick

Borschti 9. Dez 2009 15:07

Re: forcedirectories + Vista = Problem?
 
Erstmal danke für die Anworten.

@holliesoft: Also das müsste ich beim Kunden erstmal testen klingt aber plausibel. Allerdings wurde während des Programm Durchlaufs keine Fehlermeldung erzeugt.

Wieso verpöhnt? Also es ist ein Ordner in dem das Programm Logdateien Speichert, wieso sollte ich das nicht im Installationsverzeichnisses des Programms schreiben? Also in einem Unterordner?

Bernhard Geyer 9. Dez 2009 15:26

Re: forcedirectories + Vista = Problem?
 
Zitat:

Zitat von Borschti
Wieso verpöhnt? Also es ist ein Ordner in dem das Programm Logdateien Speichert, wieso sollte ich das nicht im Installationsverzeichnisses des Programms schreiben? Also in einem Unterordner?

Weil du seit Windows NT mit NTFS davon ausgehen musst das der User (bzw. der prozess) keine Schreibrechte im eigenen Installationsverzeichnis hat. Dafür ist das %AppData%-Verzeichnis (Userspezifisch) vorgesehen.

Borschti 10. Dez 2009 07:29

Re: forcedirectories + Vista = Problem?
 
Ok und wo finde ich das Application Data Verzeichnis?

Bernhard Geyer 10. Dez 2009 07:45

Re: forcedirectories + Vista = Problem?
 
Über SHGetFolderPath. Die JCL müsste einen Delphi-Wrapper bereitstellen bzw. neuere Delphi-Versionen haben das schon an Board als Funktion-Definition.

Tyrael Y. 10. Dez 2009 07:46

Re: forcedirectories + Vista = Problem?
 
Hier.
Delphi-Quellcode:
var
  AppDir: String;
begin
 ...
  AppDir := GetSpecialFolder(CSIDL_LOCAL_APPDATA);
...
end;
Hier hast du dazu mehr Info.

SpecialFolder

und hier auch

SpecialFolder

LinuxFan 2. Jan 2010 01:33

Re: forcedirectories + Vista = Problem?
 
Hallo,

unter Windows 7 ist mir das gleiche Problem aufgefallen.

ForceDirectories (unter Admin-Rechten ausgeführt!!) erstellt keinen Ordner! Erschwerend kommt hinzu, dass die Funktion trotz des Fehlverhaltens als Ergebnis TRUE ausgibt.

Christian Seehase 2. Jan 2010 01:44

Re: forcedirectories + Vista = Problem?
 
Moin Victor,

wenn ForceDirectories true zurückliefert, steht zu vermuten, dass der Ordner auch tatsächlich angelegt wurde, nur nicht da, wo Du es erwartet hast.
Vermutlich ist der Schreibzugriff von Windows in ein anderes Verzeichnis umgeleitet worden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:35 Uhr.
Seite 1 von 3  1 23      

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