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
Seite 17 von 18   « Erste     7151617 18      
Benutzerbild von himitsu
himitsu
Registriert seit: 11. Okt 2003
Moin Leutchen,

hatte mir eben mal schnell 'nen billiges (inzwischen leicht aufgemotztes) Progrämmchen erstellt,
womit man sich 'nen XP-Manifest zusammenklicken könnte.

vielleicht kann's ja wer gebrauchen



Ist jetzt nix Besonderes und ich weiß auch noch nicht, ob auch alles so richtig läuft

Erstellt wird die XML-Resource, welche man in eine *.manifest kopiert/speichert
und dann entweder so mit seinem Programm mitliefert oder direkt in die Resourcen einbindet.
Wie man es halt so kennt.

Zusätzlich wird noch ein Resourcen-Script erstellt, welches die Resource direkt enthält und nicht erst von einer externen Datei einbindet.
  • Standardmäßig ist eine Englisch-Deutsche-Sprachdatei direkt integriert
  • wird eine externe Sprachdatei "ManifestCreatorLang.xml" im Projektverzeichnis gefunden, so wird diese stattdessen beim Programmstart geladen
  • es kann sich also jeder die angehängte ManifestCreatorLang.xml nehmen, um weitere Sprachen erweitern (zum Format in die ersten Kommentare der ManifestCreatorU.pas reinschauen oder einfach mal nach >>"eng"<< suchen, dieses direkt übersetzen
    und dann natürlich hier im Thread hochladen )
  • es werden keinerlei Informationen gespeichert (weder in der Registry, noch in irgendeiner Datei ... abgesehn von den Dateien, welche ihr euch selber manuell speichert, dazu zählen auch die Optionen, welche im Programmverzeichnis gespeichert liegen)
  • und falls wem noch die eine oder andere Section fehlt, dann möge er sich einfach melden
    (nachsehn kann man z.B. hier http://msdn.microsoft.com/en-us/library/aa375632.aspx )
  • die ActiveX-Libraries werden standardmäßig nicht geladen,
    da es sonst etwas langsamer läd (bei mir so 2-5 Sekunden, statt fast sofort)
  • das Laden der ActiveX-Libs läßt sich aber zuschalten
    > einfach als Parameter "-LoadActiveX" mit angeben
  • es läßt sich via Parameter ein Projekt (*.ini) erstellen/laden
    gespeichert muß aber selber werden (sowas wie Autosave beim Beenden gibt's nicht)
    > das Projekt kann via Parameter geladen werden "-IniFile=..."
  • dieses Programm läßt sich als Tool in die IDE integrieren
    Code:
    Titel:     Manifest-Creator
    Programm:  [color=gray]C:\ ... \[/color]ManifestCreator.exe
    Parameter: -IniFile=$PROJECT -CreateIni
    oder
    Code:
    ...
    Parameter: -IniFile=$PROJECT -CreateIni -LoadActiveX
    bis Delphi 2007 so
    Code:
    Parameter: -IniFile== $PROJECT -CreateIni
    und bis Delphi 7 so
    Code:
    ...
    Parameter: -IniFile== $EXENAME -CreateIni
  • in die Resourcedatei (.rc) können nun auch ein Programmicon und Versionsinformationen integriert werden
  • in dem Suchfeld kann man Einträge über ihren Namen suchen und es werden Teilweise auch untegeordnete Infos berücksichtigt, z.B. die CLSIDs und der DLL-Name im Bereich ActiveX
  • die ComboBox mit dem * dahinter, ändert nix an dem Manifest, sondern zeigt nur rechts im InfoMemo passende Texte an, also in diesem Fall was mit der Anwendung unter verschiedenen Rechten passiert.




[initial] v1.2 2009-09-02
[update] v1.3 2009-10-24 19:05
...
[update] v1.4b 2009-12-18 22:45 - Fehler in Sprachdatei
[update] v1.4d 2010-05-25 18:30 - siehe Beitrag #59 (Vieles)
[update] v1.4f 2010-05-29 14:00 - siehe Beitrag #60-#72 (neue IDE-Integration)
[update] v1.4g 2010-05-31 22:00 - siehe Beitrag #74 (kleinere Fehler und neue Parameterbehandlung)
[update] v1.4g2 2010-06-01 09:00 - siehe Beitrag #75 (kleiner Fehler in Sprachverwaltung)
[update] v1.4h 2010-06-01 12:00 - siehe Beitrag #78 (Probleme mit der Projektverwaltung)
[update] v1.5 2010-06-03 00:30 - siehe Beitrag #80 (gewaltige Aufräumaktion)
[info] v1.5a 2010-08-04 08:06 - Neues Forum (URLs der Delphi-PRAXiS haben sich geändert)
[info] v1.5a 2010-08-27 12:45 - Anhänge neu hochgeladen (das Forenupdate hatte die Dateinamen geschrottet) und dabei gleich das UPX weggelassen (man darf nun eh keine EXE mehr hochladen )
[upload] beim Update gehen die Counter verloren > alt = 303x exe, 30x xml und 48x Sources (Memo an mich selbst, da ich garnicht neugierig bin)
[update] v1.5b 2010-08-27 15:33 - CMDs überarbeitet (UPX deaktiviert)
[update] v1.5c 2013-10-03 21:16 - siehe Beitrag #111 - Horst0815 (Support: XE-XE4 & Win8 / Archtektur: amd64)
[update] v1.5d 2013-11-09 20:38 - siehe Beitrag #109 & #112 - blablab & nru (Bugfix: $RESOURCE / Support: Win8.1)
[update] v1.6 2013-11-10 23:23 - siehe Beitrag #122 (Support: XE5 / Codeformatierung und einige Komponentennamen überarbeitet / Funktionen soriert (Regionen) / große Funktionen aufgeteilt / XML als Resource eingebunden)
[update] v1.6a 2013-11-11 01:44 - assemblyIdentity:language berichtigt und kleiner Bugfiges
[update] v1.6b 2013-11-11 23:43 - siehe Beitrag #125 (Bugfix: Ressource-Typ / weitere Komponenten benannt / Windows Server-Namen aufgenommen / Systemsprache laden )
[upload] beim Update gehen die Counter verloren > alt = 557x exe, 248x xml und 279x Sources (860x 278x 327x)
[update] v1.x 2013-12-15 - Sprachbehandlung überarbeitet / angefangen alle Komponenten zu übersetzen / neue XML-Behandlung angefangen (siehe __TestButton)
[update] v2.0 2015-02-08 23:23 - siehe Beitrag #137 (XE6-XE8 / Windows 10 / IdentityType win32 / alle Komponenten fertig übersetzt
[update] v2.0a 2015-02-13 04:05 - siehe Beitrag #140 (DPI-Aware / Hilfe-URLs / Sprachenladefunktion überarbeitet / Suche für fehlende Hilfetexte )
[upload] beim Update gehen die Counter verloren > alt = 176x exe, 84x xml und 104x Sources (1036x 362x 431x)
[update] v2.0b 2015-02-14 12:38 - siehe Beitrag #147 (Bugfix: DPI-Aware / Bugfix: File-Version / Übersetzungen)


Online: http://svn.geheimniswelten.de:8080/!/#ManifestCreator
Checkout: http://svn.geheimniswelten.de:8080/s...reator/Develop
Login, falls nötig: Gast (gast)

Es wird nur die EXE benötigt.
Die Sprach-XML kann man nutzen, um die Übersetzng oder bestimmte Optionen zu erweitern. (z.B. neue Sprache oder OperatingSystemIDs)
Und wofür der Quelltext (inkl. XML) ist, sollte wohl klar sein.
Miniaturansicht angehängter Grafiken
screeny_201.png  
Angehängte Dateien
Dateityp: 7z ManifestCreator.exe.7z (702,1 KB, 398x aufgerufen)
Dateityp: xml ManifestCreatorLang.xml (69,0 KB, 159x aufgerufen)
Dateityp: 7z ManifestCreator.source.7z (213,7 KB, 167x aufgerufen)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (19. Mär 2015 um 11:53 Uhr)
 
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#161
  Alt 19. Mär 2015, 11:56
Online: http://svn.geheimniswelten.de:8080/!/#ManifestCreator
Checkout: http://svn.geheimniswelten.de:8080/s...reator/Develop
Login, falls nötig: Gast (gast)

Jetzt noch bissl mit SSL rumspielen und nach und nach versuchen alle Projekte irgendwie auf einen einheitlichen Stand zu bringen.
  Mit Zitat antworten Zitat
Willie1

 
Delphi 10.1 Berlin Starter
 
#162
  Alt 7. Sep 2015, 17:12
Hallo himitsu,
ich bin zu diesem Thema Neuling. Auf Rat hier im Forum habe ich mir den Creator herunter geladen. Wenn ich ein exe-Datei laden will kommt "Stream-Lesefehler" und nichts geht mehr. Was mache ich falsch?
Ich habe eben ein Programm erzeigt, dass nur aus einem leeren Formular mit einem Button besteht, wieder nur "Stream-Lesefehler". Das ist frustrierend, da ich den Mani-Creator pripiell für sehr git halte, wenn es funktionierte. Bitte Autor mal melden, danke!
Gruß Willie.

Geändert von Willie1 ( 7. Sep 2015 um 19:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#163
  Alt 8. Sep 2015, 13:23
Keinem ist aufgefallen, dass im SVN eine Version mit aktivem Testcode eingecheckt ist?
Jetzt am Einfachsten erstmal die ManifestCreator.exe.7z aus Post #1 verwenden, oder einfach drüberwegsehen.



Eine EXE = Die von dir erstellte Anwendung mit einem Manifest drin?


Wo kommt der Stream-Lesefehler?
Was sagt der Debugger wo es her kommt?

Eine Testanwendung mit kompilierter EXE kannst du nicht zufällig hier mal anhängen?
  Mit Zitat antworten Zitat
Willie1

 
Delphi 10.1 Berlin Starter
 
#164
  Alt 13. Sep 2015, 11: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 12:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

 
Delphi 5 Professional
 
#165
  Alt 13. Sep 2015, 15: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

 
Delphi 10.1 Berlin Starter
 
#166
  Alt 13. Sep 2015, 18: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 18:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

 
Delphi 5 Professional
 
#167
  Alt 13. Sep 2015, 18: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

 
Delphi 10.1 Berlin Starter
 
#168
  Alt 13. Sep 2015, 18: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

 
Delphi 5 Professional
 
#169
  Alt 13. Sep 2015, 19: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

 
Delphi XE8 Professional
 
#170
  Alt 13. Sep 2015, 20: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
Antwort Antwort
Seite 17 von 18   « Erste     7151617 18      


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 19:08

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:59 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