Vista & Manifest Datei für Administrator Rechte

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

Danke für die Anleitungen, konte ich gerade gut gebrauchen.

Nach Einbinden der mit porc.exe compilierten XP.res per Import : EndImport finde ich allerdings in einem Dump der Exe die Inhalte der originalen XP.res und der von mir eingebundenen XP.res.

Kann das schaden? Wie könnte ich es unterbinden?
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Hallo TS-soft,

dass ist Super! :allright:

funktioniert einwandfrei.

so wie ich verstehe funktioniert es auch folgendermasen.

mache aus der res-datei die manifest.xml

die datei test.rc generieren

Code: Alles auswählen

#define MANIFEST 24
1 MANIFEST "D:/CODE/test/manifest.xml"


dann diese über Menu

Compilers | Compiler Options | Resources

die test.rc anbinden

in diese fall ist auch das generieren oder importieren der res datei nicht
notwendig.

Danke
jpd
PB 5.10 Windows 7 x64
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Beitrag von dysti »

.....wenn ich das richtig verstehe,
wird die XP.RES eingebunden, läuft mein PRG mit Admin-Rechten.
Oder ist das falsch was ich denke?
Gibt es sowas auch für WIN2000?
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

@jpd
in diesem Fall ist auch das Generieren oder Importieren der res-Datei nicht notwendig.
Das hatte ich gestern auch probiert und heute wiederholt: danach finde ich aber im Dump der Exe keinerlei Hinweis auf das einebundene Manifest. Nur der Inhalte der originalen XP.res ist zu sehen!
Wo bleibt das Manifest denn bei der Methode?
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Hallo jear,

da ich mich mit diese sache zum erstenmal beschäftige,

habe ich die ganze prozedur wiederholt,

und kann dier bestätigen dass es funktioniert.

Allerdings habe ich den eindruck das es nicht so sauber ist weil:

ich verwende diese manifest.xml

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="admin.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> 
wenn ich den name unter "assemblyIdentity"

ändere wird die exe datei generiert und bei starten wird eine fehlermeldung generiert ...

Diese Anwendung konnte nicht gestartet werden, weil die Anwenungskonfiguration nicht korrekt ist. Zur Problembehebung sollten Sie die Anwendung neu installieren.

also wie soll ich es sagen ... es ist als ob man den vorgaugelt das es sich um eine andere anwendung handelt und das gefällt mir überhaupt nicht!


währe schön wenn jemand das erklären würde.

Grüsse

jpd
PB 5.10 Windows 7 x64
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

@jpd
hier der originale Code aus der im PB-Verzeichnis Compilers zu findenden 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="CompanyName.ProductName.YourApp"

type="win32" 

/> 

<description>Your application description here.</description>

<dependency> 

<dependentAssembly> 

<assemblyIdentity 

type="win32" 

name="Microsoft.Windows.Common-Controls" 

version="6.0.0.0" 

processorArchitecture="X86" 

publicKeyToken="6595b64144ccf1df" 

language="*" 

/> 

</dependentAssembly> 

</dependency> 

</assembly> 
Denke daher, dass ein Eintrag wie

Code: Alles auswählen

name="admin.exe"
statt :
name="CompanyName.ProductName.YourApp"
irreführend ist. Hier werden offenbar Namen gebraucht und keine Dateibezeichnungen. Möglicherweise liegt es daran.

Habe hier gar kein Vista laufen. Daher kann ich nur vom Hörensagen berichten.
Ein mit einem (nach der in diesem Thread empfohlenen Methode erstellten) Manifest versehener Setup-Installer läuft offenbar unter Vista. Die installierte Applikation aber nicht, denn sie hat noch kein Manifest.

Neuland halt, auf dem wir uns bewegen.

Daher meine Frage an die Könner, das ich es noch nicht ausprobieren kann:

Dass ein Setup-Installer Admin-Rechte braucht, das ist einsichtig. Er erzeugt Registry-Einträge, legt Desktop-Symbole an und assoziiert Dateiendungen mit Anwendungen.
Welche Rechte muss denn eine normale Anwendung haben, wenn sie nur bestehende Registry-Werte verändert oder Werte zu einem Key hinzufügt?
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
Benutzeravatar
jpd
Beiträge: 380
Registriert: 14.02.2005 10:33

Beitrag von jpd »

Hallo jear,

eigentlich müsste es so sein das ein benutzer nur in mache bereiche schreiben kann z.b HKCU in alle andere bereiche müsste er nur lesend zugreifen können es sei dem die zugriffberächtigung in der registry verändert wurden sind.


Grüsse
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 »

jear hat geschrieben: Kann das schaden? Wie könnte ich es unterbinden?
In den Compileroptionen den XP-Style abschalten!
jpd hat geschrieben: die test.rc anbinden

in diese fall ist auch das generieren oder importieren der res datei nicht
notwendig.

Danke
jpd
Du benötigst aber absolute Pfade und es ist so nicht weitergebbar. In jaPBe gehts aber auch
ohne fixe Pfade. Ich finde das Importieren besser.
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
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

In den Compileroptionen den XP-Style abschalten!
Will das Kind nicht mit dem Bade ausschütten sondern lediglich das Einbinden des Standard-Manifestes vermeiden.
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
Benutzeravatar
jear
Beiträge: 288
Registriert: 17.10.2004 01:59
Wohnort: Ammerland

Beitrag von jear »

Das Einbinden des kombinierten XP- und Vista-Manifests per Import scheint gut zu klappen.

Hier in meiner Entwicklungsumgebung gibt es aber ein Problem, möglicherweise eines, das man dem jaPBe zuordnen kann.

Bild

Diese Fehlermeldung verhindert das Erstellen einer Exe:
- wenn eine der Include-Dateien aktiv ist fast immer,
- wenn die Hauptdatei aktiv ist relativ selten.

Im ersten Fall aktiviere ich die Hauptdatei. Dann wird die Exe meist erstellt. Im zweiten Fall muss ich jaPBe beenden und neu starten. Dann läuft es wieder einige Zeit.
Man ist nie zu alt zum lernen, auch wenn man dabei manchmal alt aussieht!
Antworten