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.
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!!!
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.