Versionsinformation von meiner EXE anzeigen JAPBE

Für allgemeine Fragen zur Programmierung mit PureBasic.
gonimaus
Beiträge: 27
Registriert: 26.09.2004 14:21
Wohnort: Günzburg

Versionsinformation von meiner EXE anzeigen JAPBE

Beitrag von gonimaus »

Hallo,
kann ich die Versionsinformation, die ich bei den Projekteinstellungen in JAPBE eintragen kann, irgendwie auslesen, damit ich diese z. B. in der Titelleiste meines Programmes anzeigen kann?
Ich erhöhe meine Versionsnummer und muß dann jedesmal die Titelleiste dazu anpassen.

Vielen Dank für Eure Hilfe
sbehrens
Beiträge: 274
Registriert: 08.09.2004 18:41
Kontaktdaten:

Beitrag von sbehrens »

Ob das geht weiß ich nicht, aber du könntest eine Konstante Deklarieren, in der deine Versionsnummer enthalten ist.

Code: Alles auswählen

#Version="1.83a"
Dann müsstest du nur noch die Konstante ändern und die Versionsinfo unter 'Project Options'.

mfG
Basti
enjoy life... while you can!
gonimaus
Beiträge: 27
Registriert: 26.09.2004 14:21
Wohnort: Günzburg

Beitrag von gonimaus »

Hallo Basti,
genau das will ich nicht machen. Ich will nur an einer einzigen Stelle ändern müssen.
Toll wäre es, wenn es ein Makro gäbe, welches die Info aus der Projekteinstellung übernimmt und vor dem Compilieren in den Code einfügt. Wenn ich den Joker %build% einsetze, zählt dieser die Versionen hoch und ich brauche mich nicht mehr darum zu kümmern.

Gruß Gonimaus
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

die stehen direkt mit im quelltext .. werden nur nicht angezeigt
öffnen ne PB-Datei die du mit dem jaPBe erstellt hast mal mit dem Notepad (o.ä.) und schau Dir die letzten Zeilen an.
‮pb aktuel 6.2 windoof aktuell und sowas von 10
Ich hab Tinnitus im Auge. Ich seh nur Pfeifen.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Weiß jetzt leider nicht mehr wer der Original-Autor ist:

Code: Alles auswählen

Procedure.s GetFileVersion(FileSpec.s) 
  Dummy.l 
  *Buffer 
  BufferLen.l 
  
  VerBuffer.VS_FIXEDFILEINFO 
  VerPointer.l 
  VerBufferLen.l 

  FileVersion.s 
  
  If OpenLibrary(0, "version.dll") 
    *GFI_Size = IsFunction(0, "GetFileVersionInfoSizeA") 
    *GFI_Info = IsFunction(0, "GetFileVersionInfoA") 
    *GFI_Value = IsFunction(0, "VerQueryValueA") 
    
    If *GFI_Size And *GFI_Info And *GFI_Value 
      ; get size of version information buffer 
      BufferLen = CallFunctionFast(*GFI_Size, FileSpec, @Dummy) 
      If BufferLen 
        ; allocate buffer and get version information 
        *Buffer = AllocateMemory(BufferLen) 
        CallFunctionFast(*GFI_Info, FileSpec, 0, BufferLen, *Buffer) 
        ; find file version and copy into structure 
        CallFunctionFast(*GFI_Value, *Buffer, "\", @VerPointer, @VerBufferLen) 
        CopyMemory(VerPointer, VerBuffer, VerBufferLen) 
        ; build file version string "x.x.x.x" 
        FileVersion = Str((VerBuffer\dwFileVersionMS & $FFFF0000) >> 16) + "." + Str(VerBuffer\dwFileVersionMS & $0000FFFF) + "." + Str((VerBuffer\dwFileVersionLS & $FFFF0000) >> 16) + "." + Str(VerBuffer\dwFileVersionLS & $0000FFFF) 
      EndIf 
    EndIf 

    CloseLibrary(0) 
  EndIf 

  ; return file version string 
  ProcedureReturn FileVersion 
EndProcedure
Debug GetFileVersion("C:\Programme\Internet Explorer\iexplore.exe")
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
GPI
Beiträge: 1511
Registriert: 29.08.2004 13:18
Kontaktdaten:

Beitrag von GPI »

#jaPBe_ExecuteBuild
CodeArchiv Rebirth: Deutsches Forum Github Hilfe ist immer gern gesehen!
gonimaus
Beiträge: 27
Registriert: 26.09.2004 14:21
Wohnort: Günzburg

Beitrag von gonimaus »

Hallo GPI,

ganaus das wars. SUUUPER :allright: .

Gibt es noch mehr so Konstanten?

DANKE auch an alle anderen.
TS-Soft. Dein Code-Beispiel hat mir auch sehr geholfen.

Viele Grüße

Gonimaus
Antworten