SHGetFolderLocation & UAC requireAdministrator



  • Hallo,

    ich habe ein Problem mit der UAC 🙄
    Die SallyConfig.exe meines Programmes braucht admin rechte um die Arbeit zu verrichten (Plugins/Themes löschen, Updates einspielen, ...).
    Allerdings werden auch Userbezogene Einstellungen über das Programm gemacht (Auflösung einstellen, Plugins ausschalten, ...)

    Somit habe ich in der Manifest Datei requireAdministrator gesetzt.
    Soweit so gut.

    Wenn der User jetzt aber ein ganz simpler Windows "Benutzer" ist, wird er nicht nur mit einem Ja/Nein Dialog gefragt ob er das Programm ausführen sollen, sondern er muss sich als Admin User einloggen.

    => Das Problem ist nun das der User nicht mehr "Hans Müller" sondern "Admin" ist und somit werde die Userbezogenen Einstellungen beim Admin User gespeichert.
    SHGetFolderLocation() liefert also die Verzeichnisse für den User Admin zurück.

    Wie komme ich nun an meine Verzeichnisse von "Hans Müller"?
    Ich kann ja bei SHGetFolderLocation() als 3ten Prameter einen access token übergeben. Aber was übergebe ich da? Wie komme ich an den User der "run as admin" ausgeführt hat?
    Oder muss ich wirklich die Programmteile in zwei exe Dateien aufteilen? (ich hoffe nicht... 😞 )



  • Keiner eine Idee? 😕


  • Mod

    Hier wird ein anderer Prozess gestartet mit CreateProcessAsUser. Mir ist kein Weg bekannt, der Dir HKCU (sprich das Profile) des startenden Prozesses liefert.

    Du wirst dies Teilen müssen. Was aber kein Problem darstellt, da es sich ja wirklich um zwei verschiedene Funktionen und Bereiche handelt.



  • ok, danke schon mal... dann weiss ich ja was ich am Weekend machen werde 😉


Log in to reply