AGB  ·  Datenschutz  ·  Impressum  







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

Manifest-Datei verwenden

Ein Thema von taaktaak · begonnen am 16. Mai 2010 · letzter Beitrag vom 17. Mai 2010
Antwort Antwort
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#1

Manifest-Datei verwenden

  Alt 16. Mai 2010, 22:12
Moin, Moin.

Eigentlich bin ich ja ein verbohrter Verfechter des "Uralt-Designs", möchte nun aber doch im rzDelphiGuide die Möglichkeit eröffnen, optional ein modernes Design zu verwenden. Das funktioniert grundsätzlich auch auf diesem Weg:

Delphi-Quellcode:
implementation
{$R WindowsXP.res}
{$R *.dfm}
Damit ergeben sich für mich ungeahnte Betätigungsfelder: Das bekannte "Panel-Problem" erfordert bei "gefühlten" hunderten Panels Anpassungsarbeiten. Auch so einige andere Sachen schauen plötzlich unerwartet anders (und damit falsch) aus. Daher möchte ich die Nutzung des Manifestes grundsätzlich optional gestalten.

Damit scheidet der bisher beschrittene Weg, "WindowsXP.res" einzubinden, ja wohl aus. Nun meine ich aus einigen DP-Beiträgen entnommen zu haben, dass der gleiche Effekt erzielt wird, wenn im Programmverzeichnis eine Manifest-Datei mit dem gleichen Namen wie das Programm placiert wird - das "schlaue Windows" schaut da vor dem Programmstart nach und passt dann die Programmoptik an. Ich habe nun nach einer Vorlage von RWarnecke eine solche Manifest-Datei erzeugt, die oben stehende Compileranweisung wieder aus dem Quelltext entfernt und mal einen Versuch gestartet: Das Programm verändert unter VISTA seine Optik nun leider nicht mehr!

Frage: Wie funktioniert denn dass mit der separaten Manifest-Datei?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#2

Re: Manifest-Datei verwenden

  Alt 17. Mai 2010, 04:47
Moin Moin Ralph,

wie hast Du denn die Manifest-Datei benannt ? Die Manifest-Datei muss den gleichen Namen wie die EXE-Datei haben, plus .manifest dahinter. Als Beispiel, wenn Deine EXE-Datei rzDelphiGuide.exe heißt, dann muss Deine Manifestdatei rzDelphiGuide.exe.manifest heißen. Zusätzlich muss in der Manifest-Datei noch der Name rzDelphiGuide.exe an einer Stelle stehen. Sind diese beiden Voraussetzungen gegeben, dann sollte es kein Problem mit der Manifest-Datei geben.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von H4ndy
H4ndy

Registriert seit: 28. Jun 2003
Ort: Chemnitz
515 Beiträge
 
Delphi XE3 Professional
 
#3

Re: Manifest-Datei verwenden

  Alt 17. Mai 2010, 05:14
Es liegt vermutlich ein Parsing-Program vor, d.h. dein Manifest ist fehlerhaft.

Dieses setzte ich ein (fordert Admin-Rechte unter Vista an).
Das "name="Application.exe"" kann so bleiben, das hab ich noch nie angepasst und es funktioniert trotzdem (Vista & Win7).

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="1.0.0.0"
    type="win32"
    name="Application.exe"/>
    <description>Application</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>
Manuel
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

Re: Manifest-Datei verwenden

  Alt 17. Mai 2010, 05:30
Hallo Manuel,

mit Deinem Manifest könntest Du eventuell Probleme unter Windows XP ohne Service Pack bekommen. Schaue Dir mal diesen Link an. Da habe ich es mit dem Manifest beschrieben, warum es Probleme gibt.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

Re: Manifest-Datei verwenden

  Alt 17. Mai 2010, 08:46
Soweit ich das mitbekommen hab, ist Name "irgendein Name" und nicht der "Name der EXE" ... also wäre es egal, was da steht ... einzige Vorgabe ist, daß es ein "eindeutiger Name sein soll"

Aber offiziell wird von MS sowas vorgeschlagen:
"Organization.Division.Name", also z.B. "Microsoft.Windows.mysampleApp"
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.651 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Manifest-Datei verwenden

  Alt 17. Mai 2010, 09:10
Wichtig ist noch, dass das Manifest auch noch zu einem Fehler führen wird! Bisher landen die Einstellungen und sowas bei dem Programm ja unter Vista z.B. unter:
C:\Users\Sebastian\AppData\Local\VirtualStore\Prog ram Files\rzDelphiGuide Build 1287
(Das Programm liegt in "C:\Program Files\rzDelphiGuide Build 1287".)

Wenn das Manifest existiert, passiert das aber nicht mehr, denn damit sagst du Windows XP und höher ja, dass es für diese Windowsversionen kompatibel ist. Das ist es aber nicht. Das Programm ist nur für Windows 9x kompatibel, da es ins eigene Verzeichnis schreibt, also wird es mit dem Manifest Schreibfehler geben...
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#7

Re: Manifest-Datei verwenden

  Alt 17. Mai 2010, 13:19
Moin, Moin.

Vielen Dank für die hilfreichen Antworten - nun klappt es! Es waren allerdings gleich zwei Umstände, die zu dem "Nichtfunktionieren" führten:
  • Der Dateiname war falsch: Verwendet hatte ich "DelphiGuide.manifest", richtig ist "DelphiGuide.exe.manifest"
  • Da ich derartige Programme NIE unter "c:\programme\.." ablege, wurde der Test auf dem Laufwerk "D:" ausgeführt. Auch mit dem korrekten Dateinamen hat das Manifest auf Laufwerk D: keinen Effekt. Einer Eingebung folgend habe ich dann ein Verzeichnis "c:\test" angelegt und darin erneut probiert - mit Erfolg! Offenbar berücksichtigt Windows die Manifest-Dateien also nur, wenn der Programmstart auf dem Laufwerk C: erfolgt
  • Der im Manifest verwendete Name ist tatsächlich irrelevant, egal was da steht, es funktioniert
zur Anmerkung von jaenicke:

Das Dateihandling von rzDelphiGuide in diesem Punkt so flexibel gestaltet, dass es entsprechend seiner ihm zugewiesen Schreibrechte agiert. Erneute Tests haben allerdings ergeben, dass in diesem Punkt tatsächlich noch nachgearbeitet werden muss - vielen Dank für den Hinweis!
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Manifest-Datei verwenden

  Alt 17. Mai 2010, 13:43
Zitat von taaktaak:
Offenbar berücksichtigt Windows die Manifest-Dateien also nur, wenn der Programmstart auf dem Laufwerk C: erfolgt
Das halte ich für ein Gerücht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.993 Beiträge
 
Delphi 7 Professional
 
#9

Re: Manifest-Datei verwenden

  Alt 17. Mai 2010, 15:18
Zitat:
Das halte ich für ein Gerücht.
- und Recht hat der Luckie!

Nun funktioniert es auch auf dem Laufwerk D: meiner VM - leider kann ich nicht mehr ergründen, wieso heute morgen keine Wirkung zu erkennen war und ich mich zu dieser falschen Vermutung habe hinreissen lassen.
Ralph
  Mit Zitat antworten Zitat
Antwort Antwort


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 02:05 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