Ich habe mithilfe der Winrar SFX-Funktion eine Patch-Datei mit einer darin enthaltenen ausführbaren Datei erstellt.
Nach der Ausführung der SFX-Datei und dem Abschluss der Extraktion wird meine ausführbare Datei nicht mehr ausgeführt, da sie keine Administratorrechte hat. Ich frage mich, WIE ich auf Programmierbasis (z. B. über eine Batchdatei) Administratorzugriff auf diese Datei gewähren kann.
Ich weiß, dass ich mit der rechten Maustaste darauf klicken, zu „Eigenschaften“ gehen, die Registerkarte „Kompatibilität“ wählen und dann das Kontrollkästchen „Als Administrator ausführen“ aktivieren kann.
Das Problem besteht darin, dass die Benutzer, die diesen Patch herunterladen, ihn nicht kennen (und meine EXE nur ausgeführt wird, wenn Sie mit der rechten Maustaste darauf klicken und „Als Administrator öffnen“ wählen, andernfalls wird sie nie geöffnet und das UAC-Popup wird auch nicht angezeigt).
Ich habe einige Möglichkeiten ausprobiert, wie „Elevator Runner (Elevate me)“ usw., aber eigentlich suche ich nach etwas Einfacherem.
Ich muss nur dafür sorgen, dass die EXE immer als Administrator ausgeführt wird.
Antwort1
Was Sie tun müssen, ist einbetten einAnwendungsmanifestin die EXE.
Speichern Sie Folgendes als Textdatei mit dem NamenApp.exe.manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly>
Laden Sie das Windows SDK herunter.
Im Inneren finden Siemt.exed.h. dieManifest-Tool. Rufen Sie es wie folgt auf:
mt.exe -manifest "App.exe.manifest" -outputresource:"App.exe";#1
Wenn keine Fehler auftreten, sind Sie fertig. Sie können die Manifestdatei löschen und nur die EXE verteilen. Wenn Sie sie ausführen, sollte sie jedes Mal automatisch Administratorzugriff anfordern.
Antwort2
Wenn Sie Ihr Archiv erstellen,Administratorzugriff anfordern.