![]() |
Schreibrechte auf Ordner unter Win7 ermitteln
Hallo zusammen,
unter folgendem Thread ![]() Iststand: Mein Programm hat eine Datei "settings.ini" im Programmverzeichnis (ja, im Programmverzeichnis). Diese wird beim Start in ein TMemInifile geladen. Bei Programmende (oder auch bei einem expliziten Flush während der Programmlaufteit) wird mittelse MemIniFile.update auf Platte geschrieben. Mein Problem: Mein Programm soll nun auch direkt von CD startbar sein OHNE dass Dateien auf dem PC angelegt/geschrieben werden. Ich hätte nun gern abgefragt, ob der Ordner, in dem das Inifile liegt Schreibzugriff hat - oder nicht. Das Attribut "Schreibgeschützt" hilft hier nicht, weil bei schreibgeschützten (readonly eingehängten) SD-Karten das Schreibschutz-Flag NICHT unbedingt gesetzt ist. Ich hatte bereits versucht, eine temporäre Datei im betroffenen Ordner (mit und ohne try except ausprobiert) mit FileCreate zu erzeugen. Wenn ich die Datei erzeugen konnte, dann hätte ich sie wieder geschlossen und gelöscht --> also Schreibzugriff=JA ansonsten Schreibzugriff=NEIN -->ABER: Win7 (Ultimate) ist mal wieder schneller. Da bekomme ich TROTZ Try-Except-Block die Meldung Zitat:
Mir wäre allerdings schon lieber, wenn dies automatisch ginge... Hat jemand eine Idee? Viele Grüße, Poolspieler |
AW: Schreibrechte auf Ordner unter Win7 ermitteln
Ich habe leider keinen derartigen Datenträger zu Hand, was liefert den DiskFree?
|
AW: Schreibrechte auf Ordner unter Win7 ermitteln
Da ist nichst schneller.
Es gibt einige "Fehlermeldungen" bezüglich Datenträger, die werden nicht als Exception/Fehlercode behandelt, sondern es wird einfach nur eine MessageBox angezeigt und dagegen kann man nichts mit Try-Except ausrichten. Sowas kenn ich noch von Disketten und teilweise auch von CDs, welche grade nicht eingelegt sind. Ich weiß jetzt zwar nichts Genaues, aber irgendwie kann man diese Fehlerbehandlung beinflussen. SetErrorMode oder sowas. Damit würde man dann Windows sagen es soll selber keine Fehler behandeln und es unserem Programm überlassen. |
AW: Schreibrechte auf Ordner unter Win7 ermitteln
Der Schreibschutz einer Datei und eines Mediums/Laufwerks hat nichts miteinander zu tun.
Die Meldung "Der Datenträger...." bezieht sich auf das Medium (Diskette,USB,.....) das einen Phys. Schreibschutz hat. Davon unabhängig ist der Schreibschutz einzelner Dateien. Wenn Du also diese Meldung erhälst, dann leitet Windows nur eine Meldung des Controlers weiter. (es könnte z.B. eine SCSI-Meldung sein, aber da bin ich nicht mehr so fit) Gruß K-h |
AW: Schreibrechte auf Ordner unter Win7 ermitteln
Warum liest eigentlich keiner das durch, was Andere schreiben?
![]() (meine Erinnerung/Vermutung klingt doch garnicht so schlecht) |
AW: Schreibrechte auf Ordner unter Win7 ermitteln
Um genau zu sein:
Delphi-Quellcode:
var
OldErrorMode: Cardinal; vegin OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS); try // do something finally SetErrorMode(OldErrorMode); end; |
AW: Schreibrechte auf Ordner unter Win7 ermitteln
Hallo Ihr zwei,
vielen Dank für Eure Antworten! So hat es perfekt funktioniert! :P Viele Grüße Poolspieler |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:13 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