View Full Version : Detect Classic Theme
بمب منطقی
پنج شنبه 06 اسفند 1383, 20:09 عصر
با سلام:
میخواستم بدونم که با کدوم تابع API و یا با چه روش دیگه ای میشه تو برنامه تشخیص داد که ویندوز XP از Classic Theme استفاده میکنه یا از Modern Theme .
با تشکر :flower:
مهدی کرامتی
جمعه 07 اسفند 1383, 01:38 صبح
یک تابع API بنام IsThemeActive در فایل uxTheme.dll برای انجام اینکار وجود دارد:
IsThemeActive Function
--------------------------------------------------------------------------------
Tests if a visual style for the current application is active.
Syntax
BOOL IsThemeActive(VOID);
مثال استفاده در دلفی:
type TIsThemeActive = function(): boolean;
function IsXpThemesActive : Boolean;
var
hThemeLib: HINST;
IsThemeActive: TIsThemeActive;
begin
if (Win32Platform = VER_PLATFORM_WIN32_NT) and
(((Win32MajorVersion = 5) and (Win32MinorVersion >= 1)) or
(Win32MajorVersion > 5)) then
begin
hThemeLib := LoadLibrary('uxtheme.dll');
if hThemeLib <> 0 then
begin
IsThemeActive := GetProcAddress(hThemeLib, 'IsThemeActive');
Result:= IsThemeActive();
end;
FreeLibrary(hThemeLib)
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
If IsXpThemesActive Then
ShowMessage('Theme Service is Active')
Else
ShowMessage('Theme Service is not Active');
end;
بمب منطقی
جمعه 07 اسفند 1383, 22:34 عصر
مثل همیشه . دستتون درد نکنه. :) :flower:
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.