Вниз
Скачать: CL | DM;

Фон рабочего стола - динамическое изменение   Найти похожие ветки 

 
Vcoder ©   (2005-08-22 22:47) [0]

Здравствуйте, Мастера!

Есть такая задумка - сформировать изображение в памяти (например в 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);

то закрашивается ВЕСЬ ЭКРАН. Правда, с тем же результатом...

Итак, возможно ли сделать как я хочу - поменять рисунок фона на сеанс, не сохраняя его на диск? И если да, то как?


 
Eraser ©   (2005-08-22 22:58) [1]

Vcoder ©   (22.08.05 22:47)

На диск сохранять всё таки прийдётся... а в чём проблема то? Сохраняй во временные файлы к примеру, а потом удаляй.

Или "вирус" пишем? )


 
Vcoder ©   (2005-08-22 23:04) [2]

Не, не вирус. Вирус - он размножается.

Помнится, была как-то програмка, делающая фон рабочего стола анимированным. Вроде даже видео можно было туда воспроизводить. Вот играясь с примером плазмы и подумал - а здорово бы сделать чтобы этот рисунок выводился на рабочий стол и менялся периодически.


 
Zeqfreed ©   (2005-08-22 23:53) [3]

Vcoder ©   (22.08.05 22:47)
Материал к размышлению:
http://www.delphimaster.ru/articles/directx/index.html

Думаю, ещё как вариант можно рассмотреть ActiveX-элемент на рабочем столе.


 
XProger ©   (2005-08-23 07:59) [4]

gif ставь ;)



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.031 c
15-1137489290
Некто
2006-01-17 12:14
2006.02.05
Корпоративная ICQ


9-1124630358
Sphinx
2005-08-21 17:19
2006.02.05
Получить данные из VB Mesh-а


2-1137419869
pathfinder
2006-01-16 16:57
2006.02.05
Вопрос по БД.


2-1137477099
pathfinder
2006-01-17 08:51
2006.02.05
Подскажите пожалуйста в чем отличие следующих кодов?


15-1136257542
Искатель
2006-01-03 06:05
2006.02.05
Где можно дать объявление о поиске работы по написанию программ?




   Наверх