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 im Programmverzeichnis Datei ändern? (https://www.delphipraxis.net/167484-im-programmverzeichnis-datei-aendern.html)

zeras 1. Apr 2012 14:11

Delphi-Version: 2009

im Programmverzeichnis Datei ändern?
 
Hallo,

ich komme noch nicht klar mit den ganzen Restriktionen im Programmverzeichnis. Normalerweise werden ja die Anwendungsdaten in das Anwendungsverzeichnis geschrieben. Wie kann ich prüfen, ob ich doch Zugriff auf eine Datei im Programmordner habe? Mit FileGetAttr bekomme ich als Info, dass die Datei nicht schreibgeschützt ist. Ich habe aber trotzdem keinen Zugriff auf die Datei, da offensichtlich der Ordner ja schreibgeschützt ist. Müßte ich da den Ordner abfragen oder wie sollte ich vorgehen. Wenn ich mit FileGetAttr frage, kommt nur die Info, dass es sich um einen Ordner handelt.
Wie kann ich vorgehen?

mkinzler 1. Apr 2012 14:17

AW: im Programmverzeichnis Datei ändern?
 
Einfach davon ausgehen, dass es nicht geht und die Daten woanders ablegen!

zeras 1. Apr 2012 14:20

AW: im Programmverzeichnis Datei ändern?
 
Zitat:

Zitat von mkinzler (Beitrag 1159681)
Einfach davon ausgehen, dass es nicht geht und die Daten woanders ablegen!

Ja gut, das wäre die beste Lösung. Aber es könnte doch auch andere Pfade geben, die schreibgeschützt sind und man auf die gleichen Probleme stößt?

mkinzler 1. Apr 2012 14:24

AW: im Programmverzeichnis Datei ändern?
 
Nicht wenn man die von Betriebssystem dafür vorgesehene Verzeichnisse verwendet.

Bummi 1. Apr 2012 14:46

AW: im Programmverzeichnis Datei ändern?
 
Oder man wirft, wenn man es wie die Designer des Betriebssytems, eigener Software, namentlich MSSQL-Server ermöglichen möchte, die Regeln zu brechen, einen Blick auf CACLS.
(sorry für Ketzertum)

Popov 1. Apr 2012 14:59

AW: im Programmverzeichnis Datei ändern?
 
Liste der Anhänge anzeigen (Anzahl: 1)
@zeras

Also im Programmeverzeichniss hast du als normaler Nutzer (kein Administrator) Leserechte, aber keine Schreibrechte. Hier geht es um Rechte, nicht Schreibschutz. Äpfel und Birnen.

Wenn du also prüfen willst ob du eine Datei ändern kannst, dann zuerst den Schreibschutz überprüfen und dann ob du Änderungsrechte hast. Klingt kompliziert, ist es auch. Du kannst dir irgendwo eine Funktion suchen die Prüft ob du Adminrechte hast, aber auch das muß nichts bedeuten. Auch einem Admin kann man die Schreibrechte nehmen.

Deshalb den einfachen Weg. Es gibt Ordner wo du deine Daten schreiben kannst.

Nur mal interessehalber: was willst du ändern?

himitsu 1. Apr 2012 15:01

AW: im Programmverzeichnis Datei ändern?
 
Zitat:

Zitat von zeras (Beitrag 1159679)
Hallo,

ich komme noch nicht klar mit den ganzen Restriktionen im Programmverzeichnis. Normalerweise werden ja die Anwendungsdaten in das Anwendungsverzeichnis geschrieben.

Normaler Weise? :shock:

Das ist schon seit Windows NT verboten.
Soviel zu Normal ... es ist also schon seit fast 13 Jahren verboten und wenn die Programmierer es immernoch nicht kapiert haben, dann sind sie selber Schuld.

Bis Windows XP hat es nur fast keiner gemerkt, weil nahezu alle nur mit Adminrechten unterwegs waren.
Was nicht sonderlich intelligent war, wie man an der Verbreitung von Schadsoftware gut erkennen kann.

Seit nun schon fast 6 Jahren hat Microfot dem endlich einen Riegel vorgeschoben und den automatisch erzeugten Standardbenutzer nicht mehr mit vollen Rechten ausgestattet.
Du hattest nun also schon 6 Jahre Zeit dich gezwungener Maßen daran zu gewöhnen.

Und auch schon vor WinNT gab es Standardverzeichnisse, für viele Daten, so daß man sich an diese Verzeichnisse noch viel länger dran gewöhnen konnte.

mkinzler 1. Apr 2012 15:06

AW: im Programmverzeichnis Datei ändern?
 
Zudem hat Microsoft zusammen mit der UAC auch die Verzeichnisvirtualisierung eingeführt, um nicht alle Programme der "Unverbesserlichen" nicht mit einem Schlag unbrauchbar zu machen.
Der Schuss ging imho nach hinten los, da es für die meisten immer noch keinen Grund gibt, ihre Vorgehensweise zu überdenken. Zudem ist das System nun unübersichtlich ( welche Version der Ini gilt nun?) Es wäre besser gewesen, die gelbe Karte zu zeigen.

zeras 1. Apr 2012 15:36

AW: im Programmverzeichnis Datei ändern?
 
Zitat:

Zitat von Popov (Beitrag 1159687)

Nur mal interessehalber: was willst du ändern?

Ist nicht ganz einfach zu erklären. Es gibt bestimmt tausende Lösungen.

Ich habe einige Programme, die auf verschiedene Art genutzt werden können.
1.) Einmal als normales Programm, wo der Admin das Prog installieren muss. Dann werden auch die Pfade eingehalten.

2.) Dann auf einem Server.
3.) Auf einem Terminalserver.

Es geht bei 2.) und 3.) eigentlich nur um die Anmeldedaten. Diese sollen nicht von jedem User eingegeben werden müssen, sondern sollen schon freigeschaltet werden können. So habe ich diese erst mal in den Programmordner mit kopiert beim Setup. Danach muss aber der Kunde noch einmalig die Freischaltedaten eintragen. Wenn er das nicht im Programmpfad machen kann, weil keine Rechte, dann müßte das Programm dann im Userpfad die Anmeldedaten mit ablegen. Wenn er aber Rechte hat, dann wärden die Anmeldedaten dann für alle User gültig.
So das mal im Groben erklärt.
Ich werde mal überlegen, wie ich das noch anders lösen kann.

Bummi 1. Apr 2012 16:33

AW: im Programmverzeichnis Datei ändern?
 
Mit den entsprechenden Rechten in HKEY_LOCAL_MACHINE


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:13 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