2010年4月22日 星期四

如何取得Media Player版本?

如何取得Media Player版本?
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MediaPlayer\Setup\Installed Versions
function GetWMPlayerVersion(out Major, Minor, Revision, Build: Word): boolean; 
var 
Reg: TRegistry; 
Version: array [0..1] of Cardinal; 
begin 
Result := False; 
Reg := TRegistry.Create; 
try 
Reg.RootKey := HKEY_LOCAL_MACHINE; 
if Reg.OpenKey('\SOFTWARE\Microsoft\MediaPlayer\Setup\Installed Versions', False) then 
begin 
Result := Reg.ReadBinaryData('wmplayer.exe', Version, SizeOf(Version)) = SizeOf(Version); 
Major    := HiWord(Version[0]); // Hauptversion  (Major) 
Minor    := LoWord(Version[0]); // Nebenversion  (Minor) 
Revision := HiWord(Version[1]); // Ausgabeversion (Revision) 
Build    := LoWord(Version[1]); // Buildnummer  (Build) 
Reg.CloseKey; 
end; 
finally 
Reg.Free; 
end; 
end; 

procedure TFormX.ButtonDingsClick(Sender: TObject); 
var hv, sv, sv2, bv: word; 
begin 
if GetWMPlayerVersion(hv, sv, sv2, bv) 
then Label1.Caption := format('Mediaplayer Version: %d.%d.%d Build %d', [hv, sv, sv2, bv]) 
else Label1.Caption := format('Mediaplayer Version: %s', ['konnte nicht ermittelt werden.']); 
end;


另外的參考

function GetFileVersion(Datei : TFileName) : String; 
//Ermittelt die Programmversion 
var 
VerInfoSize, VerValueSize, Dummy : DWord; 
VerInfo                          : Pointer; 
VerValue                         : PVSFixedFileInfo; 
begin 
VerInfoSize := GetFileVersionInfoSize (PChar (Datei), Dummy); 
//Speicher anfordern 
GetMem (VerInfo, VerInfoSize); 
//Versionsinformationen der Datei abfragen 
GetFileVersionInfo (PChar (Datei), 0, VerInfoSize, VerInfo); 
VerQueryValue (VerInfo, '\', Pointer (VerValue), VerValueSize); 
with VerValue^ do 
begin 
//Einzellne Versionsschritte zusammenfassen 
result := IntTostr (dwFileVersionMS shr 16); 
result := result + '.' + IntTostr (dwFileVersionMS and $FFFF); 
result := result + '.' + IntTostr (dwFileVersionLS shr 16); 
result := result + '.' + IntTostr (dwFileVersionLS and $FFFF); 
end; {with - VerValue^} 
//Speicher Freigeben 
FreeMem (VerInfo, VerInfoSize); 
end; 

GetFileVersion(Dateiname);

沒有留言:

張貼留言