Einzelnen Beitrag anzeigen

delphitrixer

Registriert seit: 12. Aug 2004
55 Beiträge
 
Delphi 10.3 Rio
 
#1

Aktueller Windows XP Style abfragen

  Alt 20. Jul 2007, 10:59
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?
  Mit Zitat antworten Zitat