Seite 1 von 1

Versionsinformation von meiner EXE anzeigen JAPBE

Verfasst: 01.02.2005 10:08
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

Verfasst: 01.02.2005 13:45
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

Verfasst: 01.02.2005 13:54
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

Verfasst: 01.02.2005 14:25
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.

Verfasst: 01.02.2005 18:59
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")

Verfasst: 01.02.2005 19:05
von GPI
#jaPBe_ExecuteBuild

Verfasst: 02.02.2005 00:13
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