AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vista und XP Manifest vereinigen

Ein Thema von Luckie · begonnen am 18. Jun 2007 · letzter Beitrag vom 18. Jun 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Vista und XP Manifest vereinigen

  Alt 18. Jun 2007, 01:42
Ich habe zum einm das XP Manifest:
XML-Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity version="6.0.0.0" processorArchitecture="X86" name="MyApp" type="win32" />
<description>Message Sender</description>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="X86" publicKeyToken="6595b64144ccf1df" language="*" />
</dependentAssembly>
</dependency>
</assembly>
Und zum anderen das Vista Manifest, um für mein Programm beim Start gleich administrative Rechte anzufordern (Das ist doch das richtige oder?):
XML-Code:
<?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="VistaLogonCustomizer.exe" type="*"/>
  <description>elevate execution level</description>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
   <security>
     <requestedPrivileges>
      <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
     </requestedPrivileges>
   </security>
  </trustInfo>
  <dependency>
   <dependentAssembly>
     <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
   </dependentAssembly>
  </dependency>
</assembly>
Aber wie sieht jetzt das jetzt zusammen aus? An welcher Stelle im XP-Manifest muss ich welchen Teil des Vista-Manifestes einfügen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von holliesoft
holliesoft

Registriert seit: 4. Apr 2005
Ort: Gau-Algesheim
250 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Vista und XP Manifest vereinigen

  Alt 18. Jun 2007, 06:26
Hi Luckie,

wenn ich das richtig erkenne, dann verweist auch Dein Vista Manifest bereits auf die Common Controls-Version, die für die Darstellung der Controls im WinXP/Vista-Design zuständig ist:

XML-Code:
<dependentAssembly>
     <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
Da musst Du nichts vereinen, es ist bereits im Vista-Manifest beides komplett

Gruß
Patrick
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#3

Re: Vista und XP Manifest vereinigen

  Alt 18. Jun 2007, 07:30
Die Beispiele von Microsoft aus dem Windows SDK zeigen den <trustinfo>-Teil (für Vista) immer nach <description> und vor dem abschließenden </assembly>-root-Knoten.
Wenn nicht gerade der Aufbau der XML-Datei per Schema geprüft wird, und wenn dabei nicht auf eine bestimmte Reihenfolge Wert gelegt wird, dann sollte dein zweites Beispiel, @Micha, auch richtig sein.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#4

Re: Vista und XP Manifest vereinigen

  Alt 18. Jun 2007, 08:09
So ist es.

Das Manifest für Vista ist auch für XP gültig. Der Abschnitt ( <trustInfo ...> </trustInfo> )
ist für XP uninteressant.

Hier noch ein Vista (& XP) Manifest:
XML-Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly
   xmlns="urn:schemas-microsoft-com:asm.v1"
   manifestVersion="1.0">
   <assemblyIdentity
      processorArchitecture="x86"
      version="5.6.0.0"

      
      type="win32"
      name="XPUsermanager.exe"/>
      <description>Windows XP & Vista Usergroup Control Center</description>

      <dependency>
      <dependentAssembly>
      <assemblyIdentity
         type="win32"
         name="Microsoft.Windows.Common-Controls"
         version="6.0.0.0"
         publicKeyToken="6595b64144ccf1df"
         language="*"
         processorArchitecture="x86"/>
    </dependentAssembly>
    </dependency>

    
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
      <security>
        <requestedPrivileges>
          <requestedExecutionLevel
            level="requireAdministrator"
            uiAccess="false"/>
          </requestedPrivileges>
         </security>
    </trustInfo>

</assembly>

// Edit:

Ist noch keiner auf die Idee gegommen ein Manifest-Generator Tool zu schreiben ?
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#5

Re: Vista und XP Manifest vereinigen

  Alt 18. Jun 2007, 08:15
Zitat von turboPASCAL:
Ist noch keiner auf die Idee gegommen ein Manifest-Generator Tool zu schreiben ?
Doch, Novell z.B. Das Ding ist allerdings so rabiat, dass das Manifest gleich in der Exe abgelegt wird.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.336 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Vista und XP Manifest vereinigen

  Alt 18. Jun 2007, 08:26
Hallo,

ich find es sehr interessant ein Manifest zu haben, das für XP und Vista ist.

Kann mir einer verraten, wie man daraus eine komponente macht, wie das TXPMan in Delphi7?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
CCRDude
(Gast)

n/a Beiträge
 
#7

Re: Vista und XP Manifest vereinigen

  Alt 18. Jun 2007, 08:44
Naja, so ein Manifest-Generator ist so simpel, daß ihn sich wahrscheinlich jeder selberbastelt
Allgemein bin ich dazu übergegangen, alle Resourcen (auch Icon und Versionsinfos - letztere erlaubt die IDE ja leider nur monolingual, der entsprechende QC-Eintrag wird auch nur regelmässig auf "Next Rel" verschoben) mit einem externen Tool zusammenzubauen. Das kompiliert und codesigniert dann auch gleich, denn vor Delphi 2007 gab es ja noch keine direkte After-Compile-Möglichkeiten innerhalb der IDE.

Übrigens ein Unterschied zwischen den beiden oben angezeigten: trustInfo ist einmal v2 und einmal v3. Die Unterschiede habe ich noch nirgendwo erklärt gefunden; Certified for Vista spezifiert nicht näher, was benötigt wird, aber InstallShield Enterprise erwartet zwingend v3. Keine Ahnung wieso, aber da v3 scheinbar auch nicht schadet, würde ich empfehlen das zu verwenden.

Eine Komponente daraus machen, dürfte schwer möglich sein. Der Knackpunkt ist ja, daß schon XPMan eigentlich etwas zu "dumm" ist und als Programmnamen immer "Delphi Application" anzeigt. Scheinbar funktioniert der XPManager nur darüber, daß eine irgendwas.res mit Standard-Manifest eingebunden wird. Unter Vista gibt es jetzt drei Berechtigungsstufen, plus UI-Switch, d.h. selbst wenn man den Namen weglässt, bräuchte man für 6 Situationen 6 verschiedene Komponenten in 6 verschiedenen Units, und wär dann noch "unschön" anonym, und inkompatibel zu Delphi 2007 (was aber eh sehr halbgar ist, s.u.).

Ich hatte da mal ins QC einen entsprechenden Eintrag geschrieben. Der ist auch als "in 2007 gefixt" markiert. Der "Fix" sieht allerdings nur so aus, als daß eine Standardberechtigungsstufe vorgegeben wird, d.h. es ist weiterhin ein festes Manifest, nur jetzt über die Projekteinstellungen statt über eine Komponente wählbar.

Edith hat diesen Link gefunden:
Report No: 37448 (RAID: unavailable) Status: Closed
Current XPManifest is incompatible to "Certified for Vista" program
http://qc.codegear.com/wc/qcmain.aspx?d=37448
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.201 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Vista und XP Manifest vereinigen

  Alt 18. Jun 2007, 08:50
"Einfache" Komponente wird nicht möglich sein. Hier müßte der Compiler abhängig von Projekteinstellungen ein Manifest dynamisch generieren müssen. Wieso das man das nicht in den D2007-Compiler (der ja für Vista entwickelt wurde) gleich ergänzt hat ist m.E. komisch.

Habs bei uns über mehrer Res-Dateien gelößt die per Compiler-Switch ausgewählt werden. Als App-Name etwas unverfängliches genommen (Als Anwendungs-Name hat man ja noch die Infos in den "normalen" Versionsinfos).
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#9

Re: Vista und XP Manifest vereinigen

  Alt 18. Jun 2007, 09:39
Zitat von MathiasSimmack:
Zitat von turboPASCAL:
Ist noch keiner auf die Idee gegommen ein Manifest-Generator Tool zu schreiben ?
Doch, Novell z.B. Das Ding ist allerdings so rabiat, dass das Manifest gleich in der Exe abgelegt wird.
Äh, ja. Das Teil ist aber nur eine GUI für das Microsoft Manifest Tool (MT.exe) was im SDK
enthalten ist. Was man so alles findet beim suchen...
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Vista und XP Manifest vereinigen

  Alt 18. Jun 2007, 10:20
Zitat von holliesoft:
Hi Luckie,

wenn ich das richtig erkenne, dann verweist auch Dein Vista Manifest bereits auf die Common Controls-Version, die für die Darstellung der Controls im WinXP/Vista-Design zuständig ist:

XML-Code:
<dependentAssembly>
     <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/>
Da musst Du nichts vereinen, es ist bereits im Vista-Manifest beides komplett
Dann hab eich das gestern Nacht übersehen.

Aber ist das richtig, wenn ich unter Vista erzwingen will, dass mein Programm Administratorenrechte beim Start anfordert:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz