Vista & Manifest Datei für Administrator Rechte

Für allgemeine Fragen zur Programmierung mit PureBasic.
funk.munich
Beiträge: 123
Registriert: 27.03.2006 09:45

Vista & Manifest Datei für Administrator Rechte

Beitrag 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
Benutzeravatar
bingo
Beiträge: 118
Registriert: 16.09.2004 18:33
Wohnort: thüringen
Kontaktdaten:

Beitrag von bingo »

so ...

1 24 MOVEABLE PURE "c:\source\manifest.txt"

8) 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 !
1:0>1
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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 :freak:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
funk.munich
Beiträge: 123
Registriert: 27.03.2006 09:45

Beitrag 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
funk.munich
Beiträge: 123
Registriert: 27.03.2006 09:45

Beitrag 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
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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 :lol:
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag 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

Code: Alles auswählen

name="launcher.exe"
bei mir name="test.exe".

Was mache ich falsch?

eine Idee ?

Danke
jpd
PB 5.10 Windows 7 x64
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Hallo TS-soft,

ich wusste das irgend was nicht stimmt! :mrgreen:

so wie generiere ich eine gültige xp.res datei?

mit deiner library "RAResEd.lib"

oder wie geht das ?

Ciao

jpd
PB 5.10 Windows 7 x64
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Mach aus Deiner XP.res eine xml-Datei! manifest.xml z.B.
Dann erzeugste eine XP.rc mit folgendem Inhalt:

Code: Alles auswählen

#define MANIFEST 24
1 MANIFEST "manifest.xml"
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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten