Hallo Zusammen
Weiss jemand wie man zuverlässig den aktuell eingestellten Windows XP Style abfragen
kann? Ich benötige die Info welcher Stil (Klassisch oder XP) und welches Farbschema
(Blue, Silber etc.) in den Eigenschaften eingestellt ist.
Ich habe eine Code auf
http://www.swissdelphicenter.ch gefunden aber der stürzt ab wenn XP auf klassisch gestellt ist.
Der sieht so aus:
Delphi-Quellcode:
uses ComObj, SyncObjs;
var
GetCurrentThemeName: function (pszThemeFileName: LPWSTR; cchMaxNameChars: Integer;
pszColorBuff: LPWSTR; cchMaxColorChars: Integer; pszSizeBuff: LPWSTR;
cchMaxSizeChars: Integer): HRESULT; stdcall;
procedure TForm1.Button1Click(Sender: TObject);
var
FileName, ColorScheme, SizeName: WideString;
hThemeLib: THandle;
begin
try
hThemeLib := LoadLibrary('uxtheme.dll');
if hThemeLib > 0 then
GetCurrentThemeName := GetProcAddress(hThemeLib, 'GetCurrentThemeName');
if Assigned(GetCurrentThemeName) then
begin
SetLength(FileName, 255);
SetLength(ColorScheme, 255);
SetLength(SizeName, 255);
OleCheck(GetCurrentThemeName(PWideChar(FileName), 255,
PWideChar(ColorScheme), 255, PWideChar(SizeName), 255));
// show the the theme path and file name.
ShowMessage(PWideChar(FileName));
// show the color scheme name
ShowMessage(PWideChar(ColorScheme));
// show the size name
ShowMessage(PWideChar(SizeName));
end;
finally
FreeLibrary(hThemeLib);
end;
end;
Hat jemanden ein besseres Beispiel?