Inno-Setup und die Windows-UAC-Schild
Ich bin am stecken einige UAC-Problem (denke ich).
Meine Frage ist: Was hat das UAC-Schild-Symbol in einigen Anwendungen bedeutet. UND wie kann ich dieses Symbol, um mein Inno-Setup setup.exe?
- Es bedeutet, dass spezifische app benötigt Admin-Rechte um zu laufen - aber es wird individuell festgelegt, entweder durch den Benutzer oder spezifische app-installer. Es kann Hinzugefügt werden, um die Registrierung, aber links, die auf bestimmte Datei in ein bestimmtes Verzeichnis.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
PATH\EXENAME
RUNASADMIN
. Für Inno Setup default-Wert fürPrivilegesRequired
istAdmin
, so dass UAC-popup-Fenster ausgelöst werden, die sowieso (auch wenn Sie keine UAC-Schild angezeigt, die für das Setup-Symbol). - OK, danke für die Antwort. Dies bedeutet, das Symbol ist nicht etwas "von innen" aus der Anwendung. Einfach den Eintrag in der registry-Schlüssel, die Sie erwähnt?!
- Ja, setzen Sie es selbst, entweder durch die Einstellung ALS ADMINISTRATOR AUSFÜHREN im Datei-Eigenschaften (PPM auf EXE/Verknüpfung, => Eigenschaften => Registerkarte "Kompatibilität") - fügt die Zeichenkette an der registry oder durch das hinzufügen von Strings zur Registrierung auf, Ihre eigenen (wenn Sie schreiben, ein Installationsprogramm für eine Anwendung, die ist ziemlich alt und benötigt admin-Rechte, z.B. wegen Schutz-system).
- oder Sie können angeben, dies in
application manifest
. - danke. Ich weiß, aber wenn Sie sich mit alten/nicht unterstützte apps dann... Einstellungen Kompatibilität oder Verträglichkeit db (Microsoft Application Compatibility Toolkit) kann die einzige Möglichkeit sein, wenn Sie sind nicht gestattet, WIEDER zu arbeiten auf software.
- Ahhh.... guter Kommentar. Also, wenn ich zum Beispiel ein manifest in meiner Anwendung, die UAC Schild icon angezeigt wird?
- Es wird nur angezeigt, wenn Ihre app markiert ist, als
requireAdministrator
. Die 99,99% der apps soll nicht werden. Alle apps haben eine manifest-Ressource, auch ohne admin-Berechtigungen obwohl.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Inno-Setup-Installationsprogramme erfordern Admin-Berechtigungen standardmäßig (wenn nicht angepasst-installer-creator). UAC-popup wird ausgelöst, wenn der Benutzer nicht ändern UAC-Einstellungen in Windows.
http://www.jrsoftware.org/ishelp/index.php?topic=setup_privilegesrequired
[Setup]
:PrivilegesRequired
Gültige Werte:
none
,poweruser
,admin
oderlowest
Default-Wert:
admin
Beschreibung:
Der Effekt dieser Richtlinie hängt davon ab, welche version von Windows auf den Benutzer ausgeführt wird:
Program files
und deinstallieren Sie Einträge Hinzugefügt werdenHKLM
- in beiden Fällen sind Administrator-Rechte erforderlich sind. Sie können erzwingen, dass Setup zu verwenden, nur Benutzer-Rechte, aber das wird bestimmt einigen Einschränkungen - man kann Sie nicht installieren, um System-Ordner (inklusive PF) und Sie müssenHKCU
registry-Zweig für alle registry-Einträge (einschließlich Deinstallation). Eine solche app wäre installiert, die für die Einzelnen Benutzer nur.RunAsOriginalUser
Arbeit. Es ist Teil des Setups, das bleibt unelevated so hat er Zugriff auf die original-Benutzer-Kontext. Sobald ein Programm erhöht hat, gibt es keine zuverlässige Möglichkeit, den ursprünglichen Kontext, so dass es hinterlässt ein bisschen von sich selbst, dass es sprechen kann. Dies ist auch der Grund, warum, wenn Sie mit der rechten Maustaste, "Ausführen als Admin", diese Funktion nicht mehr richtig funktioniert.Wie schon andere gesagt haben, Inno Setup erfordert administrator-Rechte standardmäßig, und löst die UAC prompt. Sie können ändern, die mit
PrivilegesRequired
. Das problem mit diesem ist, dass es nicht zeigen, das Schild-Symbol in der ausführbaren Datei.Der beste Weg, es zu tun, ist die Verwendung der Microsoft Manifest Tool und ändern Sie das manifest eingebettet in die ausführbare Datei. Es ist in der Regel enthalten in Microsoft SDKs, die Sie kostenlos herunterladen von Microsoft. Nachdem Sie es installiert haben, die Manifest Tool befindet sich normalerweise in
C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\bin\mt.exe
. Beachten Sie, dass einige SDKs nicht enthalten ist. Ich fand es auch in https://github.com/eladkarako/mt, wenn Sie nicht möchten, installieren Sie die SDK."path to mt.exe" -inputresource:"path_filename.exe";#1 -out:"path_filename.exe.manifest"
asInvoker
zurequireAdministrator
impath_filename.exe.manifest
(manifest-Dateien sind eigentlich XML-Dateien, so können Sie Bearbeiten Sie mit einem text-editor)"path to mt.exe" -manifest "path_filename.exe.manifest" -outputresource:"path_filename.exe";1
Dort gehen Sie! Die ausführbare Datei hat jetzt das Schild-Symbol, egal was!
Es gibt eine andere Methode, die weit weniger nützlich. Sie können ändern Sie die ausführbare Datei als administrator ausführen " in die registry (wie rechts Klick --> Eigenschaften --> Kompatibilität --> überprüfung Ausführen als Administrator). Um dies zu tun, erstellen Sie einen string-Wert, der den Namen legen, als den Pfad+Dateinamen der ausführbaren Datei, und enthält die Daten/text
RUNASADMIN
; der Wert muss erstellt werden:HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
wenn Sie es ändern wollen, für die der aktuelle BenutzerHKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
wenn Sie es ändern wollen, für alle Benutzer (dies in der Regel erfordert, dass Sie Administratorrechte haben)Das problem dabei ist, dass es nicht tragen, wenn Sie das Programm verschieben (Sie haben es zu tun alle immer wieder), oder es an jemand anderen geben (Sie haben es zu tun oder haben zu laufen, etwas Werkzeug, es zu tun). Dies ist nicht sinnvoll.