Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Versionsnummern seiner Anwendung unter Vista ermitteln? (https://www.delphipraxis.net/85283-versionsnummern-seiner-anwendung-unter-vista-ermitteln.html)

Pfoto 7. Feb 2007 08:14

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
Klasse, vielen Dank für's Posten!

Gruß
Pfoto

Daniel Schuhmann 7. Feb 2007 09:16

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
OT (@Jürgens Download): Ich hoffe, dass jetzt nicht innerhalb kürzester Zeit 50% der neuen Tools über geskinnte Oberflächen verfügen, die auch unter XP aussehen wie bei Vista. Abgesehen davon, dass diese Programme gerade mit schwachbrünstigen Grafikkarten (Notebooks...) langsam werden und wie Kaugummi reagieren - wer die visuellen Styles ausschalten möchte (und das geht auch unter Vista), der hat sicherlich auch seinen Grund dazu.

mschaefer 7. Feb 2007 10:49

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin moin zusammen. Im Anhang ist die D6-Version von Ralfs GetFileVersion. // Grüße Martin

juergen 9. Feb 2007 21:47

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
Hallo zusammen,
habe nun einiges probiert...
Auch den Source zuerst übernommen von Ralf und jetzt von mschaefer...(Danke an dieser Stelle für eure Mühen)

Bei mir will es aber einfach nicht funktionieren. :cry:
Ich habe jetzt das Projekt von mschaefer komplett in ein neues Projekt übernommen.

Delphi-Quellcode:
unit GetFileVersionTest;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    procedure Label1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
function GetFileVersion: string;
implementation

{$R *.dfm}

function GetFileVersion: string;
var
  Filename: string;
  Size, Size2: Cardinal;
  Buffer, Buffer2: pointer;
begin
  Result := '?';
  Filename := Application.ExeName;
  Size := GetFileVersionInfoSize(pchar(Filename), Cardinal(Buffer));
  GetMem(Buffer, Size);
  if Size > 0 then
  try
    if GetFileVersionInfo(pchar(Filename), 0, Size, Buffer) then
    begin
      if VerQueryValue(Buffer, '', Pointer(Buffer2), Size2) then
      begin
        with TVSFixedFileInfo(Buffer2^) do
        begin
          Result := inttostr(pword(integer(@dwFileVersionMS) + 2)^) + '.' +
            inttostr(pword(integer(@dwFileVersionMS) + 0)^) + '' +
            inttostr(pword(integer(@dwFileVersionLS) + 2)^) + ' - ' +
            inttostr(pword(integer(@dwFileVersionLS) + 0)^);
        end;
      end;
    end;
  finally
    Dispose(Buffer);
  end;
end;

procedure TForm1.Label1Click(Sender: TObject);
begin
  Label1.Caption := GetfileVersion
end;

end.
Und ratet mal: es funktioniert nicht, es erscheint nur das Fragezeichen....
Nehme ich das Projekt von mschaefer und kompiliere dieses, funktioniert es!!! :gruebel:
Ich sehe zw. meinem Projekt und dem Projekt von mschaefer keinen Unterschied! (außer dass ich mir den Button gespart habe...)

Was kann das denn noch sein?
Ich bin da nun ziemlich ratlos.

Für verständliche Ratschläge wäre ich sehr dankbar.

//Edit: Mir kam gerade noch eine Idee. Ich habe bis jetzt nur von der Original CD installiert, also noch keine SP... Hole ich gleich mal nach.

juergen 15. Feb 2007 18:30

Re: Versionsnummern seiner Anwendung unter Vista ermitteln?
 
Hallo zusammen,

die Lösung des Problemes welches ich hatte, will ich hier nicht vorenthalten; evtl. geht es anderen ja noch genauso.

Ein unter Windows XP erstelltes Projekte kopiere ich komplett nach VISTA.
In den Projekteigenschaften wo die Versionsnummer steht, hatte ich unter Windows XP dann auch einen Kommentar hinterlegt.
Genau hier lag das Problem. Bei mir wird unter VISTA der Kommentar falsch übernommen!
Es standen tausende von sinnlosen Zeichen drin. Der Originaltext bestand aber weiter
-deswegen hatte ich es ja auch nicht sofort finden können-
aber "hintendran" am Kommentar folgten dann tausende sinnloser Zeichen.Im Projekteigenschafts-Fenster sieht man ja erst einmal nur einen Teil des Kommentars.

Das Problem war also NICHT "GetFileVersion", sondern das D7 die Projekteigenschaften nicht mit kompilieren konnte, wegen dem falsch "konvertierten" Komentar.

Auszugsweise "einige" der Zeichen, welche bei mir im Kommnetar mit standen:

... (BinÃÃÃ⠀ ’†â€ ™Ãƒâââ⠂¬Å¡Ã‚¬Ã‚ ÃƒÂ¢...........


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:43 Uhr.
Seite 3 von 3     123   

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