UAC - Setup



  • Die Daten meines Programmes befinden sich nach der Installation
    in C:\ProgramData . Ich denke, da gehören sie auch hin. Ich kann doch nicht alle Programmdateien "öffentlich" machen. Oder wo sonst soll ich Anwender - Einstellungen u. einen Haufen .txt Dateien anlegen?


  • Mod

    IMHO hat auf ProgramData der normale Nutzer keine Schreibrechte. Wenn Du das möchtest, dann muss Dein Setup, das einleiten und die Rechte für diesen Programmordern entsprechend setzen.



  • Die Daten werden nicht vom Benutzer direkt gespeichert, sondern vom Programm selbst.
    Beispiel: Benutzer (Admin) legt eine Rechnung an. Diese Rechnung wird dann vom Programm in C:\ProgramData gespeichert (Daten, Datum, Mwst usw.)

    Das funktioniert ja alles tadellos.
    Das Problem ist nur nach einer Installation des Programms bei ausgeschaltener UAC
    funktioniert noch alles. Erst wenn später die UAC verändert wird gibt es das Problem.



  • Habe jetzt in den Projekteigenschaften:

    Linker -> Manifestdatei Benutzerkontensteuerung (UAC) aktivieren
    auf Nein(/MANIFESTUAC:NO) gesetzt.

    So würde es jetzt funktionieren.


  • Mod

    Nein tut es nicht. Dadurch werden die Ordner virtualisiert.

    Dein Programm läuft doch im Benutzerkontext. Dein programm hat nicht mehr Rechte als Dien Benutzer.
    Ich verstehe Deinen Satz nicht:

    Beispiel: Benutzer (Admin) legt eine Rechnung an. Diese Rechnung wird dann vom Programm in C:\ProgramData gespeichert (Daten, Datum, Mwst usw.)



  • Die Daten die vom Benutzer z.B. in Eingabefelder eingegeben werden, werden beim beenden des Programms in einer .dat Datei unter "C:\ProgramData" gespeichert. Eine Datei ist eine Rechnung (Rechnungs Programm). Diese einzelnen Rechnungsdateien können später vom Benutzer wieder geöffnet werden.

    Das mit der Virtualisierung verstehe ich nicht ganz.
    Heißt das, daß ich Daten verlieren kann?


  • Mod

    Nein, aber dass nicht jeder Benutzer die Daten sieht.
    Du bekommst "virtualisiert" zwar Schreibrechte, die Daten werden aber unmegelenkt.

    UAC einschlaten und im Setup die Rechte für alle Benutzer auf Deinen Folder setzen. Das ist der richtige Weg.



  • Hab gerade selbst mitbekommen, daß mit der Virtualisierung ist nicht richtig.
    Habe das ganze wieder rückgängig gemacht

    Da ich bisher nur ganz "normale Setups" (VS - Setup Projekte) programmiert habe, hätte ich eine Bitte an Dich.
    Wie kann ich im Setup die Rechte für alle Benutzer auf einen Folder (bei mir ProgramData) setzen?
    Könntest Du mir das relativ einfach erklären.
    Es wäre wirklich die beste Lösung für mein Problem.

    Wäre wirklich dankbar, da ich schon seit einigen Tagen im Internet suche wie verrückt. 😕 😕 😕


  • Mod

    HermannGo schrieb:

    Wäre wirklich dankbar, da ich schon seit einigen Tagen im Internet suche wie verrückt. 😕 😕 😕

    Einige Tage?
    http://lmgtfy.com/?q=set+folder+permissions+in+msi+script
    Jetzt bin ich verwirrt.

    Die Links verweisen sofort auf die MsiLockPermissionsEx Tabelle des MSI Setips.
    http://msdn.microsoft.com/en-us/library/windows/desktop/dd408009(v=vs.85).aspx

    Ich bin kein Setup-Guru. Bei uns wird sowas zum Teil durch DLLs und eigene MSI Procedures erledigt.



  • Muss mich da mal durchwühlen. Sieht auf den ersten Blick ziemlich kompliziert aus.

    Danke Dir vielmals. 🙂


Anmelden zum Antworten