Seite 1 von 3
Vista & Manifest Datei für Administrator Rechte
Verfasst: 11.01.2007 10:58
von funk.munich
Hi zusammen,
um ein Programm direkt mit Administrator Rechte unter Vista ausführen zu lassen muss man wohl eine Manifest Datei mit folgenden Inhalt hinzufügen.
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<!-- Identify the application security requirements. -->
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
Wie kann ich denn nun das bewerkstelligen? Muss ich diese Informationen in eine rc Datei mit einbinden oder ...?
Danke schon einmal im vorraus,
Daniel
Verfasst: 11.01.2007 17:31
von bingo
so ...
1 24 MOVEABLE PURE "c:\source\manifest.txt"

dann erhältst du unter vista beim starten der anwendung die grosse hinweisbox (orange umrandet ...) , dass die anwendung usw... (wenn die benutzersteuerung eingeschaltet ist) . anschliessend läuft deine anwendung als 100%iger admin . kannst dass mit IsUserAnAdmin_() testen !
Verfasst: 11.01.2007 19:14
von ts-soft
Wenn das auch Resource 24 ist, gibts doch probleme mit der XP manifest von
PB? Man könnte ja die versteckte xp.res aus dem Compilers-Verzeichnis
erweitern, aber das laufend ändern

Verfasst: 12.01.2007 10:37
von funk.munich
Hi Bingo,
wo muss ich denn Deine Anweisung eintragen?
Hi Thomas,
ich hatte es schon probiert mit in die xp.res zu hinterlegen, aber das wird dann bei mir nicht übernommen
Gruß,
Daniel
Verfasst: 12.01.2007 11:42
von funk.munich
Hi zusammen,
es funktioniert doch mit in die xp.res hinzuzufügen, jedoch musste ich andere Informationen zum Erhalt des Administrator Rechts einfügen.
Vielleicht kann das ja jemand gebrauchen.
::XP.res
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="launcher.exe"
type="win32"
/>
<description>launcher description</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="X86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
<ms_asmv2:trustInfo xmlns:ms_asmv2="urn:schemas-microsoft-com:asm.v2">
<ms_asmv2:security>
<ms_asmv2:requestedPrivileges>
<ms_asmv2:requestedExecutionLevel level="highestAvailable">
</ms_asmv2:requestedExecutionLevel>
</ms_asmv2:requestedPrivileges>
</ms_asmv2:security>
</ms_asmv2:trustInfo>
</assembly>
Somit kann man mit dem Programm alles genauso machen wie unter XP. Also diese Funktion meines erachtens hätte sich Microsoft sparen können, da die meisten nach und nach diese Informationen in ihren Manifest Dateien hinterlegen werden.
Nun gut.
Danke für eure Hilfe.
Gruß,
Daniel
Verfasst: 12.01.2007 14:29
von ts-soft
>> Also diese Funktion meines erachtens hätte sich Microsoft sparen können
Diese sinnlose Manifest haben sie doch schon mit XP eingeführt. Wenn die
nicht da ist, kein Style. Eine Resource mit: Style=1 wäre IMHO besser

Verfasst: 08.03.2007 16:47
von jpd
Hallo funk.munich,
versuche deine xp.res Datei in ein program von mir anzubinden...
da ich meine anwendung immer mit admin rechte ausführen möchte.
aber ... ja so wie es ist ,bei mir tut's nicht.
also ich mache folgendes
in mein code füge ich
Import "XP.res" : EndImport
und beim versuch zu compilieren bekomme ich eine fehlermeldung:
linker error:
POLINK Fatal error: Invalid or corrupt resource file "XP.res"
die einzige änderung in der Datei habe ich beim name vorgenommen
bei dir
bei mir name="test.exe".
Was mache ich falsch?
eine Idee ?
Danke
jpd
Verfasst: 08.03.2007 19:06
von ts-soft
Import "XP.res" : EndImport
funktioniert nur, wenn die XP.res eine kompilierte Resource ist. Die genauso
genannte Datei, die sich im Compilersverzeichnis von PB befindet ist nur eine
Textdatei, die kannst Du so nicht einbinden.
Verfasst: 08.03.2007 19:21
von jpd
Hallo TS-soft,
ich wusste das irgend was nicht stimmt!
so wie generiere ich eine gültige xp.res datei?
mit deiner library "RAResEd.lib"
oder wie geht das ?
Ciao
jpd
Verfasst: 08.03.2007 19:30
von ts-soft
Mach aus Deiner XP.res eine xml-Datei! manifest.xml z.B.
Dann erzeugste eine XP.rc mit folgendem Inhalt:
Wichtig ist, das sich auch nach der letzten Zeile ein Return befindet!
..\purebasic\compilers\porc.exe "...\XP.rc"
in einer Commandozeile oder notfalls als Batch. Pfade vervollständigen!