![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Фон рабочего стола - динамическое изменение [D5, Win2k]
Vcoder © (2005-08-22 22:47:00)Здравствуйте, Мастера!
Есть такая задумка - сформировать изображение в памяти (например в TBitmap), а затем сделать его рисунком рабочего стола, не сохраняя в файл. Понятно, что это до первой перезагрузки - больше и не надо. Вопрос в том, как вообще это реализовать.
Пробовал код:
procedure DrawOnDesktop;
var
h : THandle;
DC : HDC;
begin
h := FindWindow('ProgMan', 'Program Manager');
h := GetWindow(h, GW_CHILD);
DC:=GetDC(h);
if DC=0 then exit;
try
...
// Рисуем на DC, используя API функции,
// например SetPixel
...
finally
ReleaseDC(h, DC);
end;// try
end;// procedure DrawOnDesktop
Работает через раз, но рисует на поверхности рабочего стола, причем закрашивает даже иконки. Но полученный рисунок стирается любым окном - проявляется предыдущий фон.
Кстати, если взять
GetDC(0);
то закрашивается ВЕСЬ ЭКРАН. Правда, с тем же результатом...
Итак, возможно ли сделать как я хочу - поменять рисунок фона на сеанс, не сохраняя его на диск? И если да, то как?
XProger (2005-08-23 07:59:00) [1]gif ставь ;)
Zeqfreed (2005-08-22 23:53:00) [2]Vcoder © (22.08.05 22:47)
Материал к размышлению:
http://www.delphimaster.ru/articles/directx/index.html
Думаю, ещё как вариант можно рассмотреть ActiveX-элемент на рабочем столе.
Vcoder (2005-08-22 23:04:00) [3]Не, не вирус. Вирус - он размножается.
Помнится, была как-то програмка, делающая фон рабочего стола анимированным. Вроде даже видео можно было туда воспроизводить. Вот играясь с примером плазмы и подумал - а здорово бы сделать чтобы этот рисунок выводился на рабочий стол и менялся периодически.
Eraser (2005-08-22 22:58:00) [4]Vcoder © (22.08.05 22:47)
На диск сохранять всё таки прийдётся... а в чём проблема то? Сохраняй во временные файлы к примеру, а потом удаляй.
Или "вирус" пишем? )