Home » Tutorials » Object Pascal/RTL » Berücksichtigung von Benutzerrechten

Berücksichtigung von Benutzerrechten

Installation

Da Anwendungen standardmäßig im Programme-Verzeichnis installiert werden sollten, sind für sie Administratorrechte erforderlich.
Das Freeware-Tool „Inno Setup“, mit dem einfach Setups erstellt werden können, berücksichtigt das. Außerdem bietet es verschiedene Variablen, über die man auf die verschiedenen Spezialverzeichnisse zugreifen kann.
Beispiel:

[Setup]
AppName=Meine Anwendung
AppVerName=Meine Anwendung 1.0
AppVersion=1.0
AppPublisher=Super-Entwickler AG
DefaultDirName={pf}\Super-Entwickler\Anwendung
DefaultGroupName=Meine Anwendung

[Dirs]
Name: "{commonappdata}\Super-Entwickler\Anwendung"; Permissions: everyone-full; MinVersion: 0,6.0
Name: "{commondocs}\Super-Entwickler\Anwendung"; MinVersion: 0,6.0
Name: "{userappdata}\Super-Entwickler\Anwendung"; MinVersion: 0,6.0
Name: "{userdocs}\Anwendung";

[Files]
Source: "{src}\*"; DestDir: "{app}"; Flags: ignoreversion external
Source: "{src}\conf*"; DestDir: "{app}\conf"; OnlyBelowVersion: 5.0,6.0; Flags: ignoreversion external
Source: "{src}\conf*"; DestDir: "{commondocs}\Super-Entwickler\Anwendung\conf"; MinVersion: 0,6.0; Flags: ignoreversion external

Was ist hier zu sehen?

In Zeile 1-7 befinden sich die üblichen Grundeinstellungen für ein Setup. Ein Zeile 6 zu sehen: Die Variable {pf} steht für „Program Files“, also das Programme-Verzeichnis (üblicherweise C:\Programme). Standardmäßig installiert das Setup also in das Programme-Verzeichnis. Man kann konfigurieren, ob der Anwender ein anderes Zielverzeichnis wählen darf oder nicht.

Im Abschnitt „[Dirs]“ ab Zeile 9, der optional ist, werden zusätzliche Verzeichnisse angelegt, die außerhalb des o.g. Zielverzeichnisses liegen. Wir legen hier Verzeichnisse unter {commonappdata}, {commondocs}, {userappdata} und {userdocs} an. Diese Variablen stehen für die enstprechenden Benutzer-Verzeichnisse auf dem PC, auf dem das Setup ausgeführt wird. Die Verzeichnisse werden nur angelegt, wenn die Bedingung „MinVersion: 0,6.0“ zutrifft. Dabei handelt es sich um die Windows-Versionsnummer. Die Zahl vor dem Komma ist die „Windows“-Version, die nach dem Komma die „Windows NT“-Version. Da Vista und Windows 7 zur NT-Reihe gehören, setzen wir nur den zweiten Wert. Windows Vista hat die Version 6.0, Windows 7 6.01. Außerdem werden in dem erzeugten Verzeichnis in Zeile 10 die entsprechenden Berechtigungen gesetzt, so dass wirklich alle Benutzer des PCs darauf Zugriff haben.

Zu beachten ist, dass die hier angelegten benutzerbezogenen Verzeichnisse (z.B. Eigene Dokumente) sich auf den Benutzer beziehen, der die Installation ausführt, also den Administrator. Alle anderen Benutzer haben diese Verzeichnisse nicht. Deshalb sollte die Anwendung bei ihrer Ausführung immer prüfen, ob die Verzeichnisse für diesen Benutzer existieren und sie bei Bedarf erzeugen.

Im „[Files]“-Abschnitt ab Zeile 15 werden Dateien in Zielverzeichnisse kopiert, wobei das hier wieder von der Windows-Version abhängig gemacht wird. Zeile 17 betrifft alle Windows-Versionen vor Vista und kopiert die Konfigurationsdateien in das Verzeichnis der Anwendung (app). Zeile 18 betrifft Vista und höher und verwendet „commondocs“, also „Öffentliche Dokumente“ als Zielverzeichnis.