AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

EXE FileVersion auslesen

Ein Thema von delphinia · begonnen am 24. Sep 2011 · letzter Beitrag vom 27. Sep 2011
Antwort Antwort
Seite 1 von 2  1 2   
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#1

EXE FileVersion auslesen

  Alt 24. Sep 2011, 19:17
Delphi-Version: XE
Hallo ich habe auf einmal das Problem (weiss nicht ob es an XE o. W/ liegt habe beides zeitlgeich gewechselt) das ich nur noch Müll beim Auslesen meienr Exe File Version erhalte...


Nutze bis dato ohne Fehler:
Delphi-Quellcode:
function GetFileVersion(const FileName: string): string;
var i, W: LongWord;
  P: Pointer;
  FI: PVSFixedFileInfo;

begin
  Result := 'NoVersionInfo';
  i := GetFileVersionInfoSize(PWideChar(FileName), W);



  if i = 0 then Exit;
  GetMem(P, i);
  try
    if not GetFileVersionInfo(PWideChar(FileName), W, i, P)
      or not VerQueryValue(P, '\', Pointer(FI), W) then Exit;
    Result := IntToStr(FI^.dwFileVersionMS shr 16)
      + '.' + IntToStr(FI^.dwFileVersionMS and $FFFF)
      + '.' + IntToStr(FI^.dwFileVersionLS shr 16)
      + '.' + IntToStr(FI^.dwFileVersionLS and $FFFF);
    if FI^.dwFileFlags and VS_FF_DEBUG <> 0 then Result := Result + ' debug';
    if FI^.dwFileFlags and VS_FF_PRERELEASE <> 0 then Result := Result + ' beta';
    if FI^.dwFileFlags and VS_FF_PRIVATEBUILD <> 0 then Result := Result + ' private';
    if FI^.dwFileFlags and VS_FF_SPECIALBUILD <> 0 then Result := Result + ' special';
  finally
    FreeMem(P);
  end;
end;

Nun bekomme ich total andere Werte... keine Ahnung warum
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: EXE FileVersion auslesen

  Alt 24. Sep 2011, 19:43
Ich habe das jetzt mal mit einem frischen XE2 Projekt probiert und es funktioniert einwandfrei:
ShowMessage(GetFileVersion(Application.ExeName)) -> 1.0.0.0 Allerdings stecken die Attribute (debug usw.) nicht in FileFlags sondern in FileFlagsMask.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: EXE FileVersion auslesen

  Alt 24. Sep 2011, 19:46
Verstehe ich nicht...

Ich habe unter Windows 7 64BIT -- nur eine ganz komische Zahl - selbige die auch im Explorere Angezeigt bekomme wenn ich auf eigenschaften klicke!

Einen Nummer die ich nicht beinflussen kann
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#4

AW: EXE FileVersion auslesen

  Alt 24. Sep 2011, 19:52
Also wenn ich mir die Details im Explorer anzeigen lasse (64 bit W2k8r2) sehen die Ok aus:
Miniaturansicht angehängter Grafiken
fileversioninfo.png  
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: EXE FileVersion auslesen

  Alt 24. Sep 2011, 19:56
wie ich schon 2 mal schrieb Windows 7 nutze ich! Vor dem Wechsel hatte ich das Problem nicht!

Siehe Screenshot!
Miniaturansicht angehängter Grafiken
unbenannt.png  
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#6

AW: EXE FileVersion auslesen

  Alt 24. Sep 2011, 20:56
Also der Windows-Server 2008 ist vom Kern identisch mit Windows 7. Ich habe die "User Experience" ausgeschaltet wegen RDP.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.011 Beiträge
 
Delphi 12 Athens
 
#7

AW: EXE FileVersion auslesen

  Alt 24. Sep 2011, 22:11
Allerdings stecken die Attribute (debug usw.) nicht in FileFlags sondern in FileFlagsMask.
Hä?

In Flags stecken die gesetzen Attribute und in Mask stecken die gültigen Attribute, welche in Flags gesetzt sein könnten.

Definition der Bits:
Flags=0 Mask=0 : Wert nicht vorhanden
Flags=0 Mask=1 : Wert nicht vorhanden
Flags=1 Mask=0 : Wert nicht gesetzt
Flags=1 Mask=1 : Wert gesetzt
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#8

AW: EXE FileVersion auslesen

  Alt 24. Sep 2011, 22:21
Ich rede nicht von der Definition laut MS sondern davon wie es in XE abläuft. Im Bild links der Record im Debugger, rechts die Projektoptionen.
Miniaturansicht angehängter Grafiken
versioninfo.png  
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.011 Beiträge
 
Delphi 12 Athens
 
#9

AW: EXE FileVersion auslesen

  Alt 24. Sep 2011, 22:36
Dann wäre das ja ein Bug, welchen die hoffentlich in XE3 behoben haben werden ... nur deswegen den Code jetzt zu verändern würde ich deswegen nicht

Was ist, wenn du die Attribute nicht gesetzt hast?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.487 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: EXE FileVersion auslesen

  Alt 24. Sep 2011, 22:44
Wenn ich in den Optionen etwas an den Modulattributen ändere, spiegelt sich das ausschließlich im dwFileFlagsMask wieder. Z.b. nur Debug angekreuzt = 1.

Frage mich aber was man da für Fehler machen kann. Die Struktur ist richtig, und es wird eine Winapi-Funktion aufgerufen. Delphi 7 Kennt die W-Typen noch nicht und 2009 startet bei mir nicht mehr nach der XE2 Installation.

[edit]
Es ist definitiv ein Fehler - aber nicht beim Auslesen sondern beim Speichern während des Buildvorganges. Beim Einlesen der Info aus einer "Fremden" exe stimmt es:

Code:
Name des Ausdrucks      Wert
dwFileFlagsMask   63 {$3F}
dwFileFlags   8
[/edit]
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all

Geändert von Union (24. Sep 2011 um 22:50 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz