Показать сообщение отдельно
  #1  
Старый 08.02.2014, 01:50
DJDrugsounD DJDrugsounD вне форума
Прохожий
 
Регистрация: 29.06.2012
Сообщения: 11
Репутация: 10
Вопрос Рисование на рабочем столе под иконками

Доброго времени суток! Народ, помогите пожалуйста, целый день бороздил гугл в поисках нужной инфы, и результата ноль...

Моя цель: выводить графику вместо обоев рабочего стола под иконками, в моём случае графика рисуется средствами OpenGL

варианты:
Код:
function GetDesktopListViewHandle: THandle;
var
  S: String;
begin
  Result := FindWindow('ProgMan', nil);
  Result := GetWindow(Result, GW_CHILD);
  Result := GetWindow(Result, GW_CHILD);
  SetLength(S, 40);
  GetClassName(Result, PChar(S), 39);
  if PChar(S) <> 'SysListView32' then Result := 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  dc: HDC;
begin
  dc := GetDC (GetDesktopListViewHandle);
  Rectangle (dc, 10, 10, 110, 110);
  ReleaseDC (Handle, dc);
  DeleteDC (DC);
end;
и их подобные нужного результата не дают, рисуется поверх иконок

оверлей тоже не катит, так как на Win7 он работает только тогда когда выбран упрощённый стиль, и то с ужасными артефактами в области иконок.

Есть ли ещё рабочие варианты как это можно сделать? или придётся рисовать уже собственный рабочий стол и лепить его поверх стандартного
Ответить с цитированием