![]() |
Mit version und Buildnummer arbeiten
Hi,
ich habe möchte gerne innerhalb des programms die daten der Versionskontrolle auslesen. Und zwar wollte ich das so ausgeben. Version 1.1.0 {build 4444} wobei 4444 die compilierungsnummer ist. Die zählt er ja beim erstellen selber hoch. Nun zur frage, kann ich das innerhalb des programms abrufen ob muss man wirklich den umweg über die .exe nehmen?? Alles was ich gefunden habe (bestimmt wieder falsch gesucht) geht diesen umweg. Danke im voraus |
Re: Mit version und Buildnummer arbeiten
Meinst du sowas?
Damit kannst du dir die Versionsinformationen aus der Datei holen, die du mit fileName übergibst.
Delphi-Quellcode:
type tFileVersionRec = record Fixed : TVSFixedFileInfo;
hauptversion, nebenversion, Ausgabe , Compilierung:word; BetaVersion : boolean; end; function GetVersionInfo (filename : shortstring;var fw : tFileVersionRec ) : boolean; var dw,size,len : longword; p : par64; s : string[10]; p2 : pointer; ok : boolean; begin result:=false; filename:=filename+#0; dw:=1; size:=GetFileVersionInfoSize(@filename[1],dw); if (size=0) or (dw<>0) then exit; getmem(p,size); ok:=GetFileVersionInfo(@filename[1],dw,size,p); if ok then begin s:='\'+#0; ok:=VerQueryValue(p,@s[1],p2,len); move(p2^,fw.fixed,maximum(len,sizeof(fw.fixed))); fw.hauptversion:=hiword(fw.fixed.dwFileVersionMS); fw.nebenversion:=loword(fw.fixed.dwFileVersionMS); fw.Ausgabe :=hiword(fw.fixed.dwFileVersionLS); fw.Compilierung:=loword(fw.fixed.dwFileVersionLS); fw.betaversion :=(fw.fixed.dwfileflags and $2)>0; end; freemem(p); result:=ok; end; |
Re: Mit version und Buildnummer arbeiten
|
Re: Mit version und Buildnummer arbeiten
Ja sowas in der art. Aber halt OHNE diesen "umweg" über das exe-file. Ich will ja kein anderes prg abfragen sondern nur den kram von meinem prg wissen. Ich dachte das kann man "intern" ermitteln.
|
Re: Mit version und Buildnummer arbeiten
Wenn du das von deinem programm abfragen willst, nehm doch
Delphi-Quellcode:
var fw : tFileVersionRec;
begin GetFileVersion(Application.Exename,fw); end; |
Re: Mit version und Buildnummer arbeiten
Zitat:
|
Re: Mit version und Buildnummer arbeiten
Ich dachte es gibt einen Record oder was weiss ich, der gesetzt ist. Aber den antworten und meinen google ergebnissen entnehme ich das es sowas wohl nicht gibt. Schade.
Da dem wohl nicht so ist, also es keinen interne variable/record oder so gibt, nehme ich dankend die routine von daywalker9. :thumb: |
Re: Mit version und Buildnummer arbeiten
Klar gibt es den Record, denn irgendwo müssen die Daten ja gespeichert sein. Dieser Record steht in den Ressourcen der Exe und diese sind natürlich einkompiliert:
Code:
Oder wo sollte dieser Record deiner Meinung nach stehen?
IDR_VERSION VERSIONINFO
FILEVERSION 1, 0, 0, 15 PRODUCTVERSION 1,0,0,0 FILEOS 0x00000004 FILETYPE 0x00000001 BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "04090000" BEGIN VALUE "FileVersion", "1, 0, 0, 15\0" VALUE "FileDescription", "nonVCL Dialog Template\0" VALUE "LegalCopyright", "Michael Puff\0" VALUE "ProductName", "Dialog Template\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x0409, 0x0000 END END |
Re: Mit version und Buildnummer arbeiten
Ich glaube wir reden aneinander vorbei. Mir ist auch klar das der kram in der exe stehen muss. Nu weiss ich garnicht wie ich mich ausdrücken soll....
BEISPIEL!!!!!!!! Versionsnummer:=RecordWasWeissIch.Version; SubVersion:=RecordWasWeissIch.SubVersion; Ich dachte sowas gibt es. |
Re: Mit version und Buildnummer arbeiten
Erst nach dem Linken, deshalb muss dies auch aus der Exe gelesen werden!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 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