Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Installation mit beachtung der Benutzerrechte (https://www.delphipraxis.net/89375-installation-mit-beachtung-der-benutzerrechte.html)

Hellfire 30. Mär 2007 09:41


Installation mit beachtung der Benutzerrechte
 
Hallo,

ich stehe vor dem Problem, dass ich gerne ein setup erstellen möchte, das die Dateien, die ein programm benötigt(die das Programm ändern können muß), wo muß was hin?

uwewo 30. Mär 2007 10:09

Re: Installation mit beachtung der Benutzerrechte
 
Scheint ganz schön heiss in der Hölle zu sein @Hellfire :-D

Erkläre das ganze bitte nocheinmal verständlich

hoika 30. Mär 2007 14:34

Re: Installation mit beachtung der Benutzerrechte
 
Hallo,

nimm InnoSetup.

Wo was hinsoll solltest du aber selber wissen. ;)

Bei einem Setup-Programm kannst du Platzhalter vergeben,
z.B. %Programmpath%, die zur Installation aufgelöst
und benutzt werden.
Die Dateien werden nur dann kopiert, wenn das Versionsdatum
grösser/höher) als das einer eventuell existierenden Dll ist.


Heiko

MathiasSimmack 30. Mär 2007 15:20

Re: Installation mit beachtung der Benutzerrechte
 
Warum bist du der Meinung, das "Problem" mit einem Setupprogramm (ob nun Inno Setup oder NSIS) lösen zu können? Die Frage deutet eher auf ein programmiertechnisches Problem hin, denn es geht um Dateien, die das Programm selbst ändern können muss; unabhängig von den Rechten.

Es bringt also nichts, wenn das Setup die Dateien zwar richtig verteilt, das Programm damit aber nicht umgehen kann, sondern die Dateien in bestimmten Pfaden sucht. Und der Umkehrschluss: wird es richtig programmiert, stellt sich die Frage nach dem Wohin erst gar nicht.

hoika 30. Mär 2007 15:58

Re: Installation mit beachtung der Benutzerrechte
 
Hallo,

klar sollte das Programm wissen, wo die Daten liegen ;)

Aber auch das Installationsprogramm sollte in der Lage sein,
für bestimmte Dateien (Konfiguration/Daten) beim Zusammenbauen
der Setup-Datei Ordner festzulegen (z.B. %Appdata%)
für nutzerbezogene Daten.

Das %Appdata% ist ein Bsp.

Zum Ablage-Pfad einfach mal bei MS oder hier "Vista" suchen,
da ist das ja gerade gross in Mode ... (die falschen Pfade ;) )


Heiko

Hellfire 2. Apr 2007 07:46

Re: Installation mit beachtung der Benutzerrechte
 
hi,

schön dass ihr alle antwortet...

ich meine eigentlich wegen den Windowsuserrechten, wenn ein admin ne software installiert, die ne datenbank nutzt, und der user keine installationsrechte auf dem rechner hat, geht dass in die hose...

hoika 2. Apr 2007 08:43

Re: Installation mit beachtung der Benutzerrechte
 
Hallo,

das ist dann aber Sache des Entwicklers (du ! ;) )
und eines anständigen Installationshandbuches.
Die DB muss an einer Stelle sein,
an der "ausreichend" Rechte sind.

Bei einer SQL-Datenbank muss übrigens der Nutzer
keine Rechte (Dateisystem) haben (die läuft eh als Dienst)


Heiko

OldGrumpy 2. Apr 2007 09:22

Re: Installation mit beachtung der Benutzerrechte
 
@Hellfire: Auch wenn Du laut Avatar für (Zitat) "first class develpoment" :mrgreen: stehst, sollte Dir klar sein, dass der Installer auch nicht Sachen machen kann, für die der User der ihn startet, keine Rechte hat. (Ausnahmen wie Adminrechte anfordern existieren zwar, dafür braucht man dann aber wieder das Adminpasswort...)

Vielleicht überdenkst Du erst noch einmal was Du uns *genau* sagen willst. Bisher machten Deine Aussagen noch nicht wirklich viel Sinn...

Bora4d 5. Apr 2007 17:28

Re: Installation mit beachtung der Benutzerrechte
 
Dein Programm kannst du installieren in: C:\Programme\DeinProgrammOrdner
Aber dein Programm darf nicht in diesen Ordner schreiben.

Für benutzer spezifische Einstellungen für BenutzerXY kannst du verwenden:
C:\Dokumente und Einstellungen\BenutzerXY\Anwendungsdaten\DeinProgr ammOrdner

Für allgemeine Programmdateien(DB o.ä.) die für alle Benutzer gelten und Schreibrechte benötigt werden verwende: C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\DeinProgrammOrdner

Mit der Funktion:
Delphi-Quellcode:
...
uses ActiveX, ShlObj;
...
function myGetSpecialFolderPath(aCSIDLFolder: Integer):string;
var apidl: PItemIDList;
    aPath: array[0..MAX_PATH] of char;
begin
 if SUCCEEDED(SHGetSpecialFolderLocation(0,aCSIDLFolder,aPidl)) then begin
   SHGetPathFromIDList(aPidl, aPath);
   Result:= aPath;
 end
 else Result:='';
end;
kannst du die Pfade der speziellen Ordner herausfinden.

pfad:=myGetSpecialFolderPath(CSIDL_PROGRAMS); //c:\programme\
pfad:=myGetSpecialFolderPath(CSIDL_APPDATA); //C:\Dokumente und Einstellungen\BenutzerXY\Anwendungsdaten\
pfad:=myGetSpecialFolderPath(35); //C:\Dokumente und Einstellungen\All Users\Anwendungsdaten


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:05 Uhr.

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