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 8 von 18   « Erste     678 910     Letzte »    
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)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

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

 
Delphi 12 Athens
 
#71
  Alt 28. Mai 2010, 13:53
Zitat von taveuni:
Danke. Ich hab aber D2007 nicht D7. Aber vermutlich egal.
Die 2007 hab ich halt nicht, aber ich denke mal, als Vergleich dürfte die 2006 (Turbo Delphi) ausreichen, denn dort sieht der Fehler auch so aus.

Ich mach rade einen anderen Thread dazu auf, denn es liegt eindeutig an Delphi
und vielleicht kennt ja jemand eine Lösung.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#72
  Alt 29. Mai 2010, 14:15
Wenn die IDE-Integration jetzt nicht läuft, dann weiß ich auch nicht mehr weiter.

Zitat:
aber aus gegebenem Anlaß geht ich nun erstmal über eine zweite Anwendung, welche die/den "einen" übergebenen Parameter analysiert, beim Fehlen der " die vielen Parameter wieder zu Einem zusammensetzt, alles um das Parameter-Prefix und den zweiten Parameter erweitert und das dann an meinen MC weiterleitet.
> http://www.delphipraxis.net/internal...156608#1156608

Nicht wuntern, die zweite Anwendung ist direkt in der EXE integriert und wird bei Bedarf ins Programmverzeichnis kopiert.
(witzig nur, daß diese EXE in D4 kompiliert größer ist, als mit D7 ... ok, danach wird es immerhin wieder größer)
  Mit Zitat antworten Zitat
taveuni

 
Delphi 11 Alexandria
 
#73
  Alt 31. Mai 2010, 07:44
Guten Morgen!

Erfreulich was Du übers Wochenende gemacht hast. Ich hab Deine letzte Version getestet.
Funktioniert bei mir perfekt!

Etwas vermutlich nebensächliches:
Im Programmverzeichnis des Creators wird eine .manifest erstellt
(vermutlich die letzte welche bearbeitet wurde?).

Wunsch: Eine Kleinigkeit würde ich mir noch wünschen:
Nämlich die Möglichkeit ein komplettes (Creator-)Projekt als default Template zu erstellen.
Die Abweichung zum Programmdefault könntest Du ja in der ManifestCreator.ini im Programmverzeichnis
speichern? Wenn dann der Creator aus der IDE aufgerufen wird und kein $Project.manifest.ini vorhanden
ist könnten einfach die Parameter aus dem default geladen werden.
Damit würde sich meiner Meinung nach auch erübrigen noch mehr Parameter via Kommandozeile zu integrieren.

Vielen Dank für Deine Arbeit für etwas was eigentlich schon lange in die IDE gehört hätte.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#74
  Alt 31. Mai 2010, 22:21
  • neue Parameterbehandlung
    wenn dieses noch ein bissl ausgefeilter ist, dann könnte die IDE-Integration vielleicht auch wieder ohne Hilfsprogramm laufen
  • die IDE-Integragion scheint aber wenigstens erstmal zu laufen
  • ActiveX und die unterstützen OS werden nun unmissverständlicher in der Projektdatei gespeichert, so daß es zu weniger Ladeproblemen kommt, wenn sich die entsprechende Liste inzwischen geändert hatte
  • außerdem wird nun die ActiveX-Liste gespeichert, wenn sie von einem zu ladenden Projekt benötigt wird, und somit auch die Einträge richtig geladen werden
  • das Manifest in der Resource wird nicht mehr komprimiert ... Windows mochte es irgendwie nicht, wenn da zuviele Leerzeichen und Zeilenumbrüche fehlten (es meinte dann die Datei sei nicht Standardkonform)
  • man kann ein Standardprojekt abspeichern (siehe Optionen)
  • alternativ kann man via Parameter auch ein anderes Standardprojekt angeben
  • via Parameter lassen sich auch die Versionsinfos unter Idendity/Identität ändern
  • für diese Parameter einfach mal in den [info]-Teil des Programms schauen
  • eine über die IDE-Integration erstelle Projektdatei wird nicht mehr gleich zu Programmstart angelegt/gespeichert (war etwas blöd, wenn man das Programm beendete und "Nee, nicht speichern" sagte)
  • Zitat:
    Im Programmverzeichnis des Creators wird eine .manifest erstellt
    (vermutlich die letzte welche bearbeitet wurde?).
    Hier wurde nur etwas falsch verglichen und je eine "namenlose" Datei angelegt, wenn über den Parameter eine Projektdatei geladen wurde, aber darin kein .manifest oder .rc angegeben war.
  • aktuelle Dateien siehe Post #1
    und hier im Anhang liegt eine Debugversion, welche vor Dateizugriffen (lesen oder speichern) eine Messagebox mit dem Dateinamen anzeigt ... falls dennoch irgendwo verdächtige Dateien auftauchen (im Code siehe DEFINE ShowFileAccess)

[edit]
Anhang entfernt ... neue Version in Beitrag #80
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#75
  Alt 1. Jun 2010, 09:00
Zitat von taveuni:
In der neuesten Version ist bei mir "Unterstütztes BS" leer.
Ups, ist mir garnicht aufgefallen
(hatte aber auch garnicht danach geguckt, weil ich doch eigentlich nichts geändert hatte, außer die Lokalisierung für diese Liste abzuschalten ).

Delphi-Quellcode:
Function TForm1.LangCount(Typ, Name, Lang: String): Integer;
  Var Nodes: IXMLDOMNodeList;

  Begin
    ...
    If Result = 0 Then Result := LangCount(Typ, Name, '*');
  End;
Was eine kleine (mal absichtlich weggelassene) Zeile später für Auswirkungen haben kann.

Mal sehn, wie ich dieses dennoch besser lösen kann.
Denn falls man nun sprachabhänige und sprachunabhängige Texte hinterlegt, stimmt die Zählung nicht mehr, aber mir fällt ein, daß sie dann vorher auch nicht stimmte ... da hatte ich mir wohl was falsches gedacht ... und nein, Folgendes geht auch nicht.
If Lang <> '*' Then Inc(Result, LangCount(Typ, Name, '*'));

Aber da hier aktuell nix gemischt ist, geht es erstmal so.
  Mit Zitat antworten Zitat
taveuni

 
Delphi 11 Alexandria
 
#76
  Alt 1. Jun 2010, 09:48
Zitat von himitsu:
[*] eine über die IDE-Integration erstelle Projektdatei wird nicht mehr gleich zu Programmstart angelegt/gespeichert (war etwas blöd, wenn man das Programm beendete und "Nee, nicht speichern" sagte)
Da versteh ich das Konzept nicht (mehr).
Das automatische anlegen und speichern war sehr praktisch.
So wie es nun aussieht werden die Änderungen welche gemacht werden auf die Speichern? abfrage beim schliessen des Creators
in der Ini welche im Creator Verzeichnis liegt gemacht? Sollte das nicht die default.ini sein?.

Muss ich nun jedes Mal für jedes Projekt den Namen des Mainifests und der *.rc angeben? (Und der Ini?)



Edit:
Hab eben gesehen das der Parameter mit dem IniFile nicht mehr drin ist.
Wie muss ich den die Parameter setzen wenn ich will:
- Wennn keine $Project.manifest.ini vorhanden lade default.manifest.ini und speichere diese als $Project.manifest.ini
- Wenn eine da nimm diese.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#77
  Alt 1. Jun 2010, 10:26
[edit]
Es hatte sich ein Fehler beim Laden des Defaultprojekts ergeben ... hatte vergessen den Projektnamen danach zu entfernen
[/edit]

Beim Programmstart wurde "ausversehn" schon eine Projekt-Ini erstell/gespeichert, wenn diese noch nicht existierte.
Das bereitete soweit auch keine Probleme, solange man am Ende das Projekt speicherte.
Wenn man aber am Ende doch nicht speicherte, dann blieb ja dennoch diese Datei zurück (mit Standardeinstellungen).

Also diese Datei(en) werden dennoch angelegt, wenn man beim Programmende speichert (also einfach auf "JA" klickt) und nicht die Änderungen verwirft.

Zitat:
Muss ich nun jedes Mal für jedes Projekt den Namen des Mainifests und der *.rc angeben? (Und der Ini?)
Wenn man von der IDE aus den Creator startet und er noch kein Manifest-Projekt entdeckt, dann wird das Standardmanifest genommen, dazu wird über den Delphi-Projektnamen, durch änderung der Dateierweiterung, ein Manifest-Projektname generiert und standardmäßig erstmal die .RC zur Generierung eingerichtet.
Außerdem ist standardmäßig der Haken bei RES-erstellen gesetzt.
Klickt man am Ende auf "Ja, ich will die Änderungen speichern", dann würde somit die INI, die RC und die RES erstellt.

Zitat:
Hab eben gesehen das der Parameter mit dem IniFile nicht mehr drin ist.
Da es ja einige Probleme seitens der IDE gibt, wird von da nur noch der Projektname rausgerückt und die IDEForward.exe prüft dann diesen Namen, paßt ihn notfalls an und ergänzt den kompletten Parameter so, daß er dann für den Manifest-Creator dann wieder stimmt.

siehe
Zitat:
Nun, in meinem Fall wollte ich aber nicht die Parameterbehandlung im eigenem Programm verändern und hab mir somit ein Hilfsprogramm erstellt, welches den Parameter parst, anpaßt und an die eigentlich Anwendung weitergibt.
http://www.delphipraxis.net/internal...156755#1156755



Zu dem Default-Projekt:

Unter [Optionen] kannst du das aktuelle Projekt als Standardprojekt intern abspeichern.
(man könnte auch irgendwo ein anderes Projekt anlegen, welches man via Parameter als Standardprojekt festlegt, aber dieses geht aktuell nicht über die IDE-Integration)
Wenn nun der Creator gestartet und kein Projekt geladen/gefunden wird, so werden diese Daten geladen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#78
  Alt 1. Jun 2010, 12:08
Zitat von taveuni:
Vermutlich bin ich zu blöd.

- Ich habe den Creator ersetzt.
- Ich speichere ein Standartprojekt.
- Ich öffne in IDE ein Projekt ohne manifest.ini
Das Standardprojekt wird geladen
Aber keines erstellt (weder ini noch rc)
- Ich ändere die Parameter und schliesse den Creator
Es kommt keine Abfrage
Tschuldschung.

Nach dem Laden des Projektes setze ich nun den internen "Änderungs"-Speicher zurück,
somit sollte die Abfrage nun erscheinen.

Oh man, es ist garnicht so einfach eine Abfrage zu gestalten, ob sich etwas im Projekt verändert hat.
(hier wird ja nur auf "richtige" Änderungen ragiert ... etwas ändern und rückgängig machen wird da mit beachtet, außerdem kann ich nicht einfach so z.B. auf "OnChange" irgendwelcher Controls reagieren und dementsprechend den Änderungsstatus setzen, da sich diese Ereignisse auch mit ungespeicherten Controls vermischen ... wird alles über's selbe Event behandelt)

Außerdem gab es einen winzigen Fehler in der IDEForward.exe, welcher ein "-" unterschlug.
Die IDE-Integration müßte also neu eingerichtet werden.
(falls es nochmal eine Änderung diesbezüglich gibt, wird die nächste Version des MF eine Warnung ausgeben, wenn die Integration geupdatet werden müßte)


Und wehe jemand finde jetzt noch 'nen Fehler ... dann heul ich
So, nun abwaschen (aufgegessen hab'sch schon ) und dann zurück zu den RegExen.
  Mit Zitat antworten Zitat
taveuni

 
Delphi 11 Alexandria
 
#79
  Alt 1. Jun 2010, 13:22
Juppii - Es läuft

Ich hab auf Anhieb keinen Fehler mehr gefunden und kann himitsu's Manifest-Creator nun
uneingeschränkt empfehlen. Mit diesem ist es nun endlich einfach möglich alle die Projektoptionen,
das Manifest und das Icon in einem Guss zu halten und auch zu pflegen (sogar in der IDE!).

(Meinen Arbeitskollegen hatte ich heute Morgen eine nicht-funktionierende Version angedreht.
Ich werd nun die neueste Version reinkopieren und bin sicher da wird die Begeisterung ebenfalls
grenzenlos sein.)

Danke
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

 
Delphi 12 Athens
 
#80
  Alt 3. Jun 2010, 00:53
Funktionsteschnich nicht viel
  • "kleine" Geschwindikeitssteigerung bei der Auswertung/Dateizusammenstellung
    (bei zeilenweiser Befüllung bremsen die Memos ja gewaltig)
  • Parameterbehandlung weiter verbessert (nun klappts auch wieder mit der IDE)
  • Code gewaltig aufgeräumt ... die Hauptunit ist nun knapp 1000 Zeilen schlanker
  • einiges an Code ausgelagert (für andere zugänglich)
    FileInfo (Dateiversion und andere Resourcen)
    Programmparameter auslesen
  • die IDE-Integration funktioniert dadurch endlich auch ohne Hilfsmittel
    (siehe Parameter-Thread)
  • das Programm meldet sich nun, falls IDE-Integration sich beim Upgrad ändert ... also jetzt
  • die IDEForward.exe kann danach (manuell) gelöscht werden
  • man kann nun zwischen zwei Resourcen-Compilern auswählen
  • entsprechend wurde die .rc etwas optimiert

Das Icon-Problem nehm ich mir wohl übers Wochenende mal vor.
Angehängte Dateien
Dateityp: exe manifestcreator_debug_508.exe (655,0 KB, 10x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 8 von 18   « Erste     678 910     Letzte »    


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 04:30 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