Dateiversion auslesen ?

Anfängerfragen zum Programmieren mit PureBasic.
Thatsanee
Beiträge: 116
Registriert: 11.03.2005 05:12

Dateiversion auslesen ?

Beitrag von Thatsanee »

Hi,

wie kann ich die:

Dateiversion
Produktversion
Produktname
.....

aus dem exe-file auslesen ?
Benutzeravatar
zigapeda
Beiträge: 1753
Registriert: 06.03.2005 17:22
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag von zigapeda »

Wie kann man diese eigentlich festlegen?
kluger Mann + kluge Frau = Romanze | dummer Mann + dumme Frau = Schwangerschaft
kluger Mann + dumme Frau = Affäre | dummer Mann + kluge Frau = Shopping <)
Benutzeravatar
bobobo
jaAdmin
Beiträge: 3873
Registriert: 13.09.2004 17:48
Kontaktdaten:

Beitrag von bobobo »

jaPBe benutzen , da kann man das einstellen
‮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 »

hab hier mal ein Beispiel, weiß aber nicht mehr von wem :oops:

Code: Alles auswählen

;- get version of specified file as string 
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")
Gruß
Thomas
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
Antworten