![]() |
Themes, Schemes, Apperance
Hallo,
Ich versuche Einstellungen betr. der Desktop-Darstellung zu sichern und wiederherzustellen. 1.Wie kann ich mit Delphi-Code z.B. auslesen (XP) welches Design aktiviert ist. 2.Wie kann ich ein bestimmtes Design aktivieren. 3.Wie kann ich das Farbschema ändern.
Code:
hiermit lassen sich z.B. Schemes umschalten, funktioniert allerdings nicht mit allen.
function SchemeSwitcher:LongInt;
Var Handle : THandle; DeskSetCurrentScheme: TDeskSetCurrentScheme; Begin sSchemeName := GetSchemeName(sSchemeName); Handle := LoadLibrary('desk.cpl'); If Handle <> 0 Then Begin DeskSetCurrentScheme := GetProcAddress(Handle, 'DeskSetCurrentScheme'); Try Result := DeskSetCurrentScheme(sSchemeName); Except End; End; end;
Code:
Hiermit lässt sich z.B. ein Design umschalten. Allerding wird dazu der Dialog aufgerufen
Procedure ThemeSwitcher;
Var wnd: HWND; sRunDLL: String; sParam: String; bEnd: Boolean; Begin bEnd := False; wnd := 0; If GetSystemDefaultLCID = 1031 Then Begin If IsWinXP Then sDialogName := sDialogNameDE_XP Else sDialogName := sDialogNameDE_Vista; End Else Begin If IsWinXp Then sDialogName := sDialogNameEN_XP Else sDialogName := sDialogNameEN_Vista; End; sRunDLL := 'C:\WINDOWS\system32\rundll32.exe'; sParam := Format('C:\WINDOWS\system32\shell32.dll,Control_RunDLL C:\WINDOWS\system32\desk.cpl desk,@Themes /Action:OpenTheme /file:"%s"', [sThemeFileEnv]); Try ShellExec(0, 'open', sRunDLL, sParam, '', SW_HIDE); Except End; While Not bEnd Do Begin Sleep(200); If sDialogName <> '' Then wnd := FindWindowByTitle(sDialogName); If wnd <> 0 Then ShowWindow(wnd, SW_HIDE); If sControlName <> '' Then bEnd := ClickButton(wnd, sControlName); End; End; und Remote auf den OK-Button geklickt. Nicht sehr schön. Gibt es irgendein API? ps: ich möchte nicht nur einzelne Controls stylen (UxThemes.pas) sondern die Shell/Desktop. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr. |
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 by Thomas Breitkreuz