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 12 von 18   « Erste     2101112 1314     Letzte »    
Benutzerbild von himitsu
himitsu Online
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)
 
Horst0815

 
Delphi XE Starter
 
#111
  Alt 3. Aug 2013, 21:16
Braucht Windows 8 ein neues Manifest-Format (bzw. neue Unterschlüssel etc), so dass himitsu sein Programm updaten muss , oder arbeitet es weiterhin problemlos mit den alten Manifesten zusammen?
Habs mal ein Update gemacht:

XE-XE4 hinzugefügt
Windows 8 Hinzugefügt


Edit: IDE Integration berichtigt
Prozessor Archtektur amd64 hinzugefügt (msil hab ich weggelassen)
Miniaturansicht angehängter Grafiken
unbenannt.jpg  
Angehängte Dateien
Dateityp: rar ManifestCreator.source.rar (1,07 MB, 24x aufgerufen)
Dateityp: xml ManifestCreatorLang.xml (49,1 KB, 19x aufgerufen)
Dateityp: rar ManifestCreator.rar (864,5 KB, 26x aufgerufen)

Geändert von Horst0815 ( 5. Aug 2013 um 21:51 Uhr)
  Mit Zitat antworten Zitat
nru

 
Delphi 7 Enterprise
 
#112
  Alt 9. Nov 2013, 02:30
Windows 8.1 Support wär noch toll. Gerade auch wg. der geänderten Versionsgeschichte ab 8.1

For applications that have been manifested for Windows 8.1. Applications not manifested for 8.1 will return the Windows 8 OS version value (6.2). To manifest your applications for Windows 8.1 please refer to the current Windows compatibility cookbook.

id {1f676c76-80e1-4239-95bb-83d0f6d0da78}.
Ich bekomms leider nicht compiliert.

Gruss
nru
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

 
Delphi 12 Athens
 
#113
  Alt 9. Nov 2013, 15:04
Ob es Delphi-7-kompatibel ist, kann ich jetzt nicht sagen.
Wie lautet denn die Fehlermeldung vom Compiler?

[edit] Compilieren des Quellcodes dürfte vermutlich erst ab Delphi 2006 möglich sein.



Den Rest lade ich demnächst hoch.

Geändert von himitsu ( 9. Nov 2013 um 20:37 Uhr)
  Mit Zitat antworten Zitat
nru

 
Delphi 7 Enterprise
 
#114
  Alt 10. Nov 2013, 10:56
Wie lautet denn die Fehlermeldung vom Compiler?
[edit] Compilieren des Quellcodes dürfte vermutlich erst ab Delphi 2006 möglich sein.
jup, so siehts aus. Angefangen bei pngimage.pas, was ich aus jvcl nehmen müsste über das zu lange String-Literal in ManifestCreatorLang.pas ("String-Literale können maximal 255 Elemente besitzen")
  Mit Zitat antworten Zitat
Horst0815

 
Delphi XE Starter
 
#115
  Alt 10. Nov 2013, 11:09
Windows 8.1 + XE5(keine ahnung obs was nutzt) Update

Ach himitsu Du bist ja wieder da, wollte Dir nicht vorweg greifen sorry
Angehängte Dateien
Dateityp: xml ManifestCreatorLang.xml (49,3 KB, 15x aufgerufen)
Dateityp: rar ManifestCreator.rar (867,2 KB, 18x aufgerufen)
Dateityp: rar ManifestCreator.source.rar (378,7 KB, 14x aufgerufen)

Geändert von Horst0815 (10. Nov 2013 um 11:35 Uhr)
  Mit Zitat antworten Zitat
nru

 
Delphi 7 Enterprise
 
#116
  Alt 10. Nov 2013, 11:57
Perfekt! Vielen Dank.
  Mit Zitat antworten Zitat
hathor
 
#117
  Alt 10. Nov 2013, 14:01
Mit level="requireAdministrator" und WIN 8.0 funktioniert es sehr gut -
VIELEN DANK!

Eine Frage habe ich:
Wenn ein bereits gestartetes Programm minimiert ist und mit folgendem Code wieder angezeigt wird, statt es zum 2.Mal zu starten, ist es eigentlich unnötig, dass die Benutzerkontensteuerung aufpoppt - lässt sich das ändern?

Delphi-Quellcode:
program MyProg;

uses
  Forms, Windows, SysUtils,
  Unit1 in 'Unit1.pas{Form1};

{$R *.res}

procedure SwitchToThisWindow(h1: hWnd; x: bool); stdcall; external user32 Name
'SwitchToThisWindow'; {x = false: Size unchanged, x = true: normal size}

var
  hMutex: Cardinal;
  PreviousHandle : THandle;

BEGIN
  hMutex := CreateMutex(nil, True, PChar(UpperCase(ExtractFileName(ParamStr(0)))));
  if GetLastError = ERROR_ALREADY_EXISTS then
  begin
  PreviousHandle := Windows.FindWindow(NIL,PChar(UpperCase(ExtractFileName(ParamStr(0)))));
    if Windows.IsIconic(PreviousHandle) then
                Windows.ShowWindow(PreviousHandle, SW_RESTORE);
    SwitchToThisWindow(PreviousHandle, TRUE);
    SetForegroundWindow(PreviousHandle);
    SetWindowPos(PreviousHandle,
                HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_SHOWWINDOW);
  end else
  begin
    Application.Initialize;
    Application.MainFormOnTaskbar := True;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
  end;
end.
  Mit Zitat antworten Zitat
samso
 
#118
  Alt 10. Nov 2013, 19:24
Es reicht eigentlich die ManifestCreatorLang.xml zu modifizieren und sie in das Verzeichnis zur Exe zu kopieren.Erledigt
Angehängte Dateien
Dateityp: zip ManifestCreatorLang.zip (10,7 KB, 9x aufgerufen)

Geändert von samso (10. Nov 2013 um 19:28 Uhr) Grund: Bezog sich auf #112
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

 
Delphi 12 Athens
 
#119
  Alt 10. Nov 2013, 21:56
Eine Frage habe ich:
Wenn ein bereits gestartetes Programm minimiert ist und mit folgendem Code wieder angezeigt wird, statt es zum 2.Mal zu starten, ist es eigentlich unnötig, dass die Benutzerkontensteuerung aufpoppt - lässt sich das ändern?
Dein Code, welcher die zweite Instanz aktiverir und das "gestartete" Progamm wieder beendet, läuft in der Anwendung.

Und damit dieser Code ausgeführt werden kann, muß die Anwendung erstmal gestartet werden.
Da diese Anwendung Adminrechte anfordert, geht natürlich auch das UAC auf.

Die einzige Lösung, welche es diesbezüglich gibt, ist
eine Start-Anwendung ohne Adminrechte, welche schaut ob es die eigentliche Anwendung läuft.
Wenn ja, dann wird diese in den Vordergrund geholt (PS: eine Anwendung mit ungenügend Rechten darf einer Admin-Anwendung nicht einfach so alle möglichen Messages senden)
und wenn nicht, dann wird diese Anwendung gestartet. (und dabei springt dann das UAC erst an, weil diese Anwendung erst die nötigen Rechte anfordert)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

 
Delphi 12 Athens
 
#120
  Alt 10. Nov 2013, 21:59
Es reicht eigentlich die ManifestCreatorLang.xml zu modifizieren und sie in das Verzeichnis zur Exe zu kopieren.Erledigt
Jupp, wenn diese Sprach-XML im Programmverzeichnis liegt, dann wird diese verwendet.
Und ansonsten die interne Resource. (welche ab jetzt auch direkt als Resource eincompiliert wird, anstatt als String in der ManifestCreatorLang.pas zu liegen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 12 von 18   « Erste     2101112 1314     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 21:27 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