AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Manifest-Creator
Thema durchsuchen
Ansicht
Themen-Optionen

Manifest-Creator

Ein Thema von himitsu · begonnen am 2. Sep 2009 · letzter Beitrag vom 26. Dez 2015
Antwort Antwort
Willie1

Registriert seit: 28. Mai 2008
698 Beiträge
 
Delphi 10.1 Berlin Starter
 
#1

AW: Manifest-Creator

  Alt 13. Sep 2015, 10:53
Hallo Himitsu, ich war ein paar Tage offline.

Ich habe uralte Delphi's aber dein Crearor unterstützt ja Delphi 2005 und 06. Ich habe festgestellt, dass der Stream-Lesefehler nur bei von Delphi 2006 compilierten Programmen auftritt. Bei Delphi 2005 ist alles in Ordnung. So bin zu Delphi 2005 gewechselt. Der Lesefehler tritt auf, wenn ich die Exe-Datei in den Creator einbinden will. Also ab jetzt mit Delphi 2005.
Ein kleines Testprogramm (ohne Manifest-Komponente) nur mit einem Button, das ShellAbout aufruft, zeigt korrekt Windows 10.0 (Built10240) an.
Ween ich jedoch ein größeres Projekt von mir mit einem Windows 10-Manifest versehen will, funktioniert das aber ShellAbout zeigt 6,2 also Windows 8 an!!!

So sieht der Aufruf aus:
ShellAbout(Application.Handle,'','(C) 2015 ...',Application.Icon.Handle)

So sieht das vom Creator erzeugte Manifest aus:
Delphi-Quellcode:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity
    version="1.21.0.118"
    name="Private.Unknown.MySampleApp"
    type="win32"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel
          level="asInvoker"
          uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
  <compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
    <application>
      <supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
      <supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
      <supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
      <supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
      <supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
    </application>
  </compatibility>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity
        type="win32"
        name="Microsoft.Windows.Common-Controls"
        version="6.0.0.0"
        publicKeyToken="6595b64144ccf1df"
        language="*"
        processorArchitecture="*"/>
    </dependentAssembly>
  </dependency>
</assembly>
Im Anhang ein Screenshot vom ShellAbout Fenster.
Verflucht, warum macht MS das so kompliziert! Kannst du mir, einem Hobbyprogrammierer, sagen, was ich falsch mache. Danke und
Gruß Willie.
Miniaturansicht angehängter Grafiken
screenshot01.jpg  

Geändert von Willie1 (13. Sep 2015 um 11:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#2

AW: Manifest-Creator

  Alt 13. Sep 2015, 14:19
Der Lesefehler tritt auf, wenn ich die Exe-Datei in den Creator einbinden will. Also ab jetzt mit Delphi 2005.
Kannst du das mal näher erläutern? Ich wüsste nicht, wie das funktionieren soll. Vielleicht gibt's da auch ein Missverständnis (auf einer oder beiden Seiten).

Nochmal zur Erklärung: Mit dem Manifest-Creator kann man drei Dateien erzeugen: .manifest, .rc und .res (letztere nur, wenn man ein Delphi auf dem System hat). Und wenn man das erledigt hat, bindet man die .res Datei in den eigenen Quellcode ein:{$RESOURCE manifest.res} Fertig. Alternativ kann man auch die .rc einbinden und Delphi die Arbeit des Übersetztens in die .res überlassen; das hat bei mir im Delphi 5 allerdings nie zuverlässig funktioniert.

MfG Dalai
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
698 Beiträge
 
Delphi 10.1 Berlin Starter
 
#3

AW: Manifest-Creator

  Alt 13. Sep 2015, 17:03
Hallo Dalai,
der Fehler tritt bei Identität Dateiversion (Exe-)Datei auswählen auf. Aber wie gesagt, dass ist nicht mein Problem.
Mit Delphi 2005 klappt alles. Ich erzeuge die Manifest-Datei, die RC, die CMD und die fertige Resource. MeinProgramm.exe und die Resource nenne ich MeinProgramm.res. Wenn ich mit {$R MeinProgramm.res} kompilieren will, kommt Fehler E2161 Duplicate Resources ... XPManifest.res. Ich habe die XPManifest-Komponente entfernt!
Frage: Ist denn mein mit dem Creator erzeugtes Manifest in Ordnung?
MfG Willie.

Geändert von Willie1 (13. Sep 2015 um 17:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#4

AW: Manifest-Creator

  Alt 13. Sep 2015, 17:12
Hallo Dalai,
der Fehler tritt bei Identität Dateiversion (Exe-)Datei auswählen auf.
Ah, das ist eine Funktion, um die Versionsinfos aus einer vorhandenen EXE zu lesen und im Manifest zu hinterlegen. Kann man machen, aber ich würde einfach die Versionsnummer eintippen.

Zitat:
Wenn ich mit {$R MeinProgramm.res} kompilieren will, kommt Fehler E2161 Duplicate Resources ... XPManifest.res. Ich habe die XPManifest-Komponente entfernt!
Ich kenne D2005 nicht, aber vermutlich gibt es dort auch schon einen Schalter in den Optionen, der ein Manifest einbindet. Anders ausgedrückt: Will man ein eigenes Manifest verwenden, muss man Delphi daran hindern, das Standardmanifest einzubinden. Schau dir mal das Kompilat genau an (mit ResHack oder einem anderen Programm), welches Manifest dort hinterlegt ist und ob du dort die Angaben wiederfindest, die in deinem Manifest stehen. Wenn nein, dann hat Delphi ein Standardmanifest eingebunden.

MfG Dalai
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
698 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

AW: Manifest-Creator

  Alt 13. Sep 2015, 17:58
Danke.
Ich werde die Version Nr. von Hand eingeben,

Ich habe eine XPManifest-Komponente auf dem Formular abgelegt, die dann den XP-Style "auslöst". Auch wenn ich die Komponente wieder entferne, bleibt der neue Stil erhalten. Es sieht also so aus, als ob das Manifest nicht mehr entfernt werden kann. Könnte das möglich sein???
Bei dem Testprogramm hatte ich die XPKomponente nicht ein gebunden sondern das über das Manifest vom Creator ausführen lassen. So hat es funktioniert.

Frage: Wie kann ich das Programm vom falschen Manifest reinigen? Die Option "eigenes Manifest" gibt es bei D 2005 nicht nur die XPKomponente.
Gruß Willie.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#6

AW: Manifest-Creator

  Alt 13. Sep 2015, 18:56
Frage: Wie kann ich das Programm vom falschen Manifest reinigen? Die Option "eigenes Manifest" gibt es bei D 2005 nicht nur die XPKomponente.
Dann muss irgendwo im Quelltext eine Anweisung stehen, die Ressource bzw. die .rc-Datei einzubinden. Allein die Komponente reicht nicht, um Themes nutzen zu können, man braucht ein Manifest dazu. Wenn bei dir also Themes aktiv sind, obwohl du die Komponente wieder entfernt hast, muss ein Manifest eingebunden sein (entweder via Quelltext oder durch Delphi beim Kompilieren, was ggf. in den Optionen umschaltbar ist).

MfG Dalai
  Mit Zitat antworten Zitat
einbeliebigername

Registriert seit: 24. Aug 2004
140 Beiträge
 
Delphi XE8 Professional
 
#7

AW: Manifest-Creator

  Alt 13. Sep 2015, 19:07
Hallo,

Danke.
Frage: Wie kann ich das Programm vom falschen Manifest reinigen? Die Option "eigenes Manifest" gibt es bei D 2005 nicht nur die XPKomponente.
Gruß Willie.
Diese TXPManifest-Komponentte ist nur ein Hilfsmittel. Diese hat keinen speziellen Code
Delphi-Quellcode:
  TXPManifest = class(TComponent)
  end;
und dient ausschließlich dazu die Unit XPMan mit in die uses zu bringen. In dieser Unit steht ein {$R WindowsXP.res} , worin ein Manifest enthalten ist. Du muss nach dem entfernen der Komponente noch XPMan aus allen uses werfen.

einbeliebigername.
  Mit Zitat antworten Zitat
Willie1

Registriert seit: 28. Mai 2008
698 Beiträge
 
Delphi 10.1 Berlin Starter
 
#8

AW: Manifest-Creator

  Alt 14. Sep 2015, 15:52
Moin, Moin,
ich bin jetzt sicher zu wissen, warum es bei mir mit dem Windows 10-Manifest und dem Creator nicht klappt. Wenn ich die XPManifest-Komponente auf dem Formular plaziere, wird in die Resource ein Manifest geschrieben, dass den XP-Style einschaltet. Durch Wegnehmen der Komponente wird das nicht rückgängig gemacht. Daher lässt sich ein neues Manifest nicht in die Resource einbinden, daher die Fehlermeldung: dublicate resources und Abbruch. Wenn ich das vom Creator erzeugte Manifest in ein Programm ohne XPM-Komponente einbaue, ist alles OK! Das habe ich mit ResExplorer und meinem eigenen Hexeditor nachgesehen. Siehe Screenshot. Nochmal meine Frage: wie werde ich das falsche Manifest wieder los. Kann ich die Exe-Datei patchen, das Manifest ist ganz am Ende der Datei, danach folgen nur Nullen.
Die Formulare sind sehr aufwendig, ich kann sie nicht neu anlegen.
Gruß Willie

Nachtrag: Wenn ich die Starter-Edition kaufe, hättre ich das Problem nicht mehr?
Miniaturansicht angehängter Grafiken
screenshot-hexed.jpg  
  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:

(?)

LinkBack to this Thread

Erstellt von For Type Datum
Manifest ? BytecoreWiki This thread Refback 4. Aug 2010 18:08

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