UAC per Manifest?
-
Hallo
Ich möchte, das beim Start eines Programmes der UAC-Dialog erscheint, damit das Programm
im Anschluss mit Administrator-Rechten läuft. Dies aber ohne das der User das per Eigenschaften
oder Registry oder Rechtsklick ("Als Administrator ausführen") selbst erledigen muss.Arbeite ich mit VisualStudioExpress ist das kein Problem. Dort gibt es per IDE eine
Linkeroption.Aber arbeite ich mit Openwatcom oder codeblocks kann ich die Manifestdatei in das exefile
zwar einbinden lassen, aber es wird beim Programmstart kein UAC ausgelöst.Hat jemand einen Tip, wie man das auch mit anderen Linkern (IDEs) als VSE hinbekommt ?
Oder habe ich das grundsätzlich falsch verstanden, dass das gewünschte Verhalten per manifest
erzielt werden kann?
-
Manifest manuell erzeugen und in der RC Datei manuell einfügen.
-
Problem ist sozusagen gelöst.
Aus irgendeinem Grund wird hier RT_MANIFEST
nicht richtig aufgelöst. Ich muss im rc-file
dann so einbinden:1 24 xy.manifest
Seltsamerweise erhalte ich aber keine Fehler-
meldung bei Einsatz von RT_MANIFEST. Demnach
kennt der Compiler die Konstante also ...
-
RT_MANIFEST ist 24. Du kannst fast jede Zahl verwenden. Letzten Endes sind Ressourcen nur binäre Streams in bestimmten Formaten der EXE.
-
Martin Richter schrieb:
RT_MANIFEST ist 24. Du kannst fast jede Zahl verwenden. Letzten Endes sind Ressourcen nur binäre Streams in bestimmten Formaten der EXE.
Ich habe hier unter OpenWatcom nur mit diesem Schema Erfolg ( 1 und 24 ):
1 24 xyz.manifest
Bei anderen Werten erhalte ich keinen UAC-Dialog.
Ich habe keine Ahnung, warum das so ist.
-
Typ ist 24, ID ist 1 für EXE und 24 für DLLs (Side by Side).
Das steht doch alles in der MSDN...Entsprechend sucht Windows auch nur nach diesen IDs.
-
Alberecht siehe hier:
https://msdn.microsoft.com/en-us/library/bb384691.aspx[/code]
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"/>
</requestedPrivileges>
[code="xml"]
-
Hm, habe ich mich so schlecht ausgedrückt ?
Es funktioniert ja (mittlerweile). Warum es anfangs nicht ging, lag daran,
das ich RT_MANIFEST anstatt dessen Wert 24 verwendet hatte. So, wie es
eigentlich sein soll. Aber, obwohl RT_MANIFEST im OpenWatcom korrekt
initialisiert ist, kann ich es nicht einsetzen.1 24 xy.manifest geht
1 RT_MANIFEST xy.manifest geht nicht ...
Seltsam zwar, aber jetzt wo ich es weiss, ist das Problem
im Grunde gelöst.
-
Martin Richter schrieb:
ID ist 1 für EXE und 24 für DLLs (Side by Side).
Danke. Diese Zuordnungen kannte ich nicht.
-
Mr C schrieb:
Alberecht siehe hier:
https://msdn.microsoft.com/en-us/library/bb384691.aspxIch hab mal versucht, diese Seite selbst zu finden, indem ich in der MSDN nach Manifest, Linking etc. gesucht habe. Es ist mir nicht gelungen. Wie geht man sinnvollerweise vor, um so detaillierte Informationen in der MSDN zu lokalisieren?
-
Belli direkt in MSDN habe ich noch nie gesucht, ich bekomme Ergebnisse in google.