DeskIcons

DeskIcons.pas Unit unit DeskIcons; interface uses Graphics; // Будет использоваться TColor procedure SetDesktopIconColor(Forground, Background: TColor; Trans: Boolean); procedure SetDefaultIconColors; implementation uses Windows, CommCtrl; // будут использоваться HWND и ListView_XXXXX procedure SetDesktopIconColor(Forground, Background: TColor; Trans: Boolean); var Window: HWND; begin // Находим нужное окно в три этапа Window := FindWindow('Progman', 'Program Manager'); // Используем FindWindowEx для нахождения дочернего окна Window := FindWindowEx(Window, HWND(nil), 'SHELLDLL_DefView', ''); // SysListView32, это список с иконками на рабочем столе Window := FindWindowEx(Window, HWND(nil), 'SysListView32', ''); // Используем макрос для очистки цвета фона if Trans then ListView_SetTextBkColor(Window, $ffffffff) // фоновый цвет else ListView_SetTextBkColor(Window, Background); // фоновый цвет ListView_SetTextColor(Window, Forground); // передний цвет // теперь перерисовываем иконки ListView_RedrawItems(Window, 0, ListView_GetItemCount(Window) - 1); UpdateWindow(Window); // даём команду "немедленно перерисовать" end; procedure SetDefaultIconColors; { Эта процедура устанавливает цвета, которые заданы в windows по умолчанию } var Kind: Integer; Color: TColor; begin Kind := COLOR_DESKTOP; Color := GetSysColor(COLOR_DESKTOP); SetSysColors(1, Kind, Color); end; end.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: