![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Стили оформления (XP, Классический)
Nevermind © (2003-07-15 08:43:00)
Как узнать, какой из стилей оформления используется на машине?
Nevermind (2003-07-16 23:54:00) [1]
> Song © (15.07.03 22:00)
Хорошо, только надо через try|except все делать) На строке
OleCheck(GetCurrentThemeName(.. вылетает оно самое, в том случае, если используется классическое оформление).
А так, однако, при изменении стиля на XP, в реестре, вот здесь: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager\
появляется несколько интересных параметров, включая полученные при использовании GetCurrentThemeName. Спасибо за помощь.)
Song (2003-07-15 22:00:00) [2]
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;
Nevermind (2003-07-15 21:54:00) [3]
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ThemeManager\ThemeActive = 1?
Spawn (2003-07-15 10:50:00) [4]
Посмотри Themes API. Может там что есть.