Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.02.2014, 01:55   #1
DJDrugsounD
Пользователь
 
Регистрация: 15.08.2012
Сообщений: 20
Вопрос Рисование на рабочем столе под иконками

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

Моя цель: выводить графику вместо обоев рабочего стола под иконками, в моём случае графика рисуется средствами 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 он работает только тогда когда выбран упрощённый стиль, и то с ужасными артефактами в области иконок.

Есть ли ещё рабочие варианты как это можно сделать? или придётся рисовать уже собственный рабочий стол и лепить его поверх стандартного
DJDrugsounD вне форума Ответить с цитированием
Старый 08.02.2014, 03:18   #2
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Лучше бы рисовать уже собственный рабочий стол взамен (а не поверх) стандартного.
northener вне форума Ответить с цитированием
Старый 08.02.2014, 08:30   #3
Rin
Негодник
Форумчанин
 
Аватар для Rin
 
Регистрация: 10.11.2009
Сообщений: 880
По умолчанию

Ох, попробуй поискать рисование на рабочем столе средствами DirectX. Либо на этом форуме я это видел, либо на gamedav'e. Там говорилось, что за рабочий стол отвечают 2 объекта. Имена этих объектов тебе как раз и нужны. А дальше чуть изменить код, написанный тобой.
Если помог, проси поставить минус. Будь оригинален!
Rin вне форума Ответить с цитированием
Старый 08.02.2014, 13:27   #4
DJDrugsounD
Пользователь
 
Регистрация: 15.08.2012
Сообщений: 20
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
Лучше бы рисовать уже собственный рабочий стол взамен (а не поверх) стандартного.
для этого придётся делать точную копию стандартного, думаю геморно
DJDrugsounD вне форума Ответить с цитированием
Старый 08.02.2014, 17:10   #5
DJDrugsounD
Пользователь
 
Регистрация: 15.08.2012
Сообщений: 20
По умолчанию

нашёл вот такой вот вариант ещё:
Цитата:
Как добраться до Оверлея базовыми средствами понятно:
Добираемся до SysListView32 на рабочем столе далее установить хук ловим WM_PAINT и рисуем. Тут все Ок! под иконками все рисуется.
с хуками опыта нет, буду разбираться :D
DJDrugsounD вне форума Ответить с цитированием
Старый 08.02.2014, 19:13   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Тут все Ок!
Бабушка надвое сказала...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 08.02.2014, 19:17   #7
DJDrugsounD
Пользователь
 
Регистрация: 15.08.2012
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Бабушка надвое сказала...
думаете не будет работать?
DJDrugsounD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Рисовалка на рабочем столе Downloads Общие вопросы Delphi 10 27.06.2012 23:12
Рисование на рабочем столе! Оверлеи! Hacker19_90 Мультимедиа в Delphi 4 22.05.2012 08:01
рисование в чужом окне или на рабочем столе FanRa3 Общие вопросы Delphi 1 01.01.2012 11:16
Рисование на рабочем столе... Johnson Общие вопросы Delphi 7 13.07.2011 19:22
Рисование текста на рабочем столе artemavd Общие вопросы Delphi 9 23.10.2010 06:08