Изменяем миниатюру программы в Windows 7

Многим пользователям давно известно, что в операционных системах Windows Vista и Windows 7 при наведении курсора мышки на приложение в панели задач, вылетает окно с миниатюрой (мини-видом) этой программы (рис.1). Нашей сегодняшней задачей будет изменить эту картинку, подставив туда своё произвольное изображение.

Ну что поехали, открываем Delphi и создаем новый проект. Первым делом в раздел uses дописываем dwmapi. Надеюсь с этим вы справились, потому что теперь нам необходимо заставить разрешать изменение картинки. Для этого выделяем форму и создаем на ней обработчик событий OnCreate, полный листинг данной процедуры представлен ниже:


procedure TForm1.FormCreate(Sender: TObject);  
var  
DEnable: DWORD;  
bmp: TBItmap;  
begin  
DEnable:= DWMNCRP_ENABLED;  
If S_OK <>  
DwmSetWindowAttribute(Handle,DWMWA_FORCE_ICONIC_REPRESENTATION,  
@DEnable,SizeOf(DEnable));  
then MessageBox(0,’Error’,0,0);  
  
If S_OK <>  
DwmSetWindowAttribute(Handle,DWMWA_HAS_ICONIC_BITMAP,  
@DEnable,SizeOf(DEnable));  
then MessageBox(0,’Error’,0,0);  
  
Bmp:= TBitmap.Create;  
Bmp.LoadFromFile('полный путь к нужной картинке');  
If S_OK <>  
DwmSetIconicThumbnail(Handle,Bmp.Handle,0);  
then MessageBox(0,’Error’,0,0);  
end;  

Вот и все ! В принципе здесь нет ничего сложного, стоит лишь пояснить, что означает каждый параметр функций.

Функция DwmSetWindowAttribute

1-ый параметр, это ссылка на идентификатор окна (иначе хэндл).
2-ой параметр задаёт атрибуты для изменения
3-ий это служебный параметр, им может быть определенная переменная - всё зависит от атрибута.
4-ый задаёт размер служебного параметра.

Функция DwmSetIconicThumbnail

1-ый - параметр её отвечает за идентификатор нашей формы.
2-ой - ссылка на HBitmap.
3-ый в нём задаются параметры экрана, или можно выставить 0 чтобы не морочить голову.

Внимание !
Для тех, у кого стоит версия ниже Delphi 2009 – и операционная система Windows 7 Необходимо перед ключевым словом implementation после описания класса дописать импортируемые функции:


function DwmSetWindowAttribute(hwnd: HWND; dwAttribute: DWORD;  
pvAttribute: Pointer; cbAttribute: DWORD): HResult; stdcall; external 'dwmapi.dll';  
  
function DwmSetIconicThumbnail(hwnd: HWND; hbmp: HBITMAP;  
dwSITFlags: DWORD): HResult; stdcall; external 'dwmapi.dll';   
Теги:
миниатюра программы
Добавлено: 01 Августа 2018 08:27:34 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...