![]() |
DDevExtensions und CompileTime
Hallo zusammen,
ich benutze die DDevExtensions von Andy ( ![]() Meine Frage ist nun, wie greife ich per Code in Delphi auf diese Informationen zu ? Wie kann ich den Inhalt dieses Feldes auslesen ? |
AW: DDevExtensions und CompileTime
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hatte mal so eine Klasse geschrieben, mit der das ging. Muss die gerade mal raus suchen -- einen Moment bitte 8-)
-- EDIT Also ich hab die Klasse mal gefunden, wobei ich diese noch etwas überarbeiten muss. Ist schon recht alt ;) Soweit ich weiß, klappt das Auslesen für DLLs leider nicht. Dazu gabs mal einen Thread hier im Forum. Zudem musst du die Klasse im Moment selbst erweitern, eben um die besagte Information! In Zeile 261 kannst ja schon mal ansetzen. |
AW: DDevExtensions und CompileTime
|
AW: DDevExtensions und CompileTime
Hallo himitsu,
mit Deiner Unit geht das wunderbar, allerdings stimmt die Zeit um eine Stunde nicht. Anscheinend unterscheidet sich die Unix-Zeit von der aktuellen Winterzeit. Einfacher wäre es aber in der Tat gegangen, wenn ich die Versionsinformationen aus DevExtensions hätte verwenden können. Naja, das bleibt dann mal als offene Aufgabe im TODO... |
AW: DDevExtensions und CompileTime
Standardmäßig gibt es in den PE-Headern der EXE ein Feld für dieses Datum.
Leider stand da nie ein Datum drin, sondern nur eine (von irgendwem) sogenannte Delphi-Magic-Time, also ein bestimmert fester Wert. Wenn dieser Delphi-Magic-Time gefunden wird, dann sucht der Code an einer anderen Stelle nach der gewünschten Zeit (zum Glück hat Delphi einen Datums-Wert da abgelegt). Wird keine Delphi-Magic-Time gefunden, dann wird diese Zeit als Compile-Time genommen (so wie es eigentlich von Microsoft geplant war). Die DDevExtensions schreiben bestimmt die CompileTime in das "richtige" Feld mit rein. "Leider" kann ich das hier nicht direkt prüfen, was die DDevExtensions machen (aber im Notfall kann Andy das ja aufklären), da Delphi 2010 anschinend die Compile-Time nun endlich in der richtigen Stelle einträgt. Zitat:
da Delphi leider die lokale Zeit da einträgt. Man könnte nun zwar über ![]() ![]() |
AW: DDevExtensions und CompileTime
Liste der Anhänge anzeigen (Anzahl: 1)
So, habs nun ein Rework der ExeInformation-Klasse geschrieben. Nun sind auch beliebige Informationen auslesbar, in so fern man den Key weiß -- so wie bei den DDevExtensions. Es gibt drei statische
Delphi-Quellcode:
-Klassenmethoden. Aufgrund einer Demo liefere ich hier mal keine großartige Demo, ist ja auch nicht all zu schwer zu verstehen. Ich habe die Demo auch mal mit der DDevExtensions-Version-Info "Last Compile" ausgestattet, wie man ebenso in der Demo sehen kann.
Read()
Hinweis: Problem ist an einigen Stellen, dass man die Informationen von manchen Echsen und DLLs nicht lesen kann, da diese nicht an die von MS vorgeschlagenen Stellen geschrieben wurden. Aber selbst dafür gib es Abhilfe, wie ich neulich raus gefunden habe: ![]() Sollten jedenfalls Probleme oder Fragen auftauchen, dann schickt mir einfach eine PN! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:05 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