{{notification.text}}

MirGames

15.01.08 20:02
0
Есть у меня небольшой вопросик. Написал вот такую вот прогу, типа заставки - идёт снег на рабочем столе. Прорисовываю через средства канвы :)

Вопрос такой. А возможно сыпать снежок (или нечто подобное) на рабочем столе, <позади> иконок? Никак не могу найти статьи или обьяснения, где бы это описывалось.

И наоборот, существует ли способ выводить картинки поверх всех окон, чтобы эта процедура не мешала работе, т.е. окна продолжали стандартно обновлять своё содержимое?

И никто не знает, кстати, как работает Cursor XP, т.е., каким макаром он выводит свои курсоры? Получить-то координаты не проблема, скрыть реальный курсор, я думаю, тоже не сложно, а вот как реализовтаь вывод, не мешая другим приложениям?

P.S. Выход из приложения - Escape или Alt+F4 :)
Отредактировано: 15.01.08 20:03
#1
16.01.08 04:28
0
NubiliusНу, есть злобный идейко. Правда не помню где, но видел, как можно получить координаты иконок с раб.стола в экранных координатах, там же с ними ещё имена файлов есть. Так вот, через реестр можно получить изображение иконки по расширению файла. Так фоновую картинку тоже найти без проблем можно. Ну, и напоследок рас это скринсейвер, то развёртываешь форточку во всю дверь и рисуешь на ней сначала фон потом на фоне картинки, а потом уже иконки. Ну, а как подписывать их я думаю объяснять не надо. Курсором программно рулить можно, смотри на свойство Mouse.CursorPos- вроде.
#3
16.01.08 10:09
0
to Adler
т.е., вручную прорисовывать скринсейвер, потом фон, потом иконки... А как тогда потом заставить прорисовываться и все окна чужих программ? МНе нужно, чтобы снег шел позади всего, там, где

to Qu1nt
Ну, судя по всему, CursorXP работает без использования оверлеев, т.к. цитирую статью "каждой видеокарте возможно создать одновременно только один оверлей", а едь паралельно с Cursor XP вполне возможно проигрывать видео.

Этот примерчик я в идел. А есть возможность создать оверлей без использования DirectX ? Прорисовывать средствами OpenGl или Canvas?
#4
16.01.08 18:13
0
Nubilius
А нафига тебе окна? Напиши свою ОС и всё будет так..., как получиться.
Кстати можно прошить user32.dll и создавать окна самому хоть под OpenGL, только ещё продеться обработку сообщёний самому писать. Хорошо что исх*д*и*и XP наити можно на t*rre*ts.ru(хы… шифруемся).
#5
16.01.08 23:06
0
to Adler
так бы и сказал, что понятия не имеешь, как эо реальизовать, а не паясничал, как Мартовский Кролик.
#6
17.01.08 02:51
0
Nubilius
Так и не скажу. Просто WinXP на такие извраты не рассчитан. Если это в XP и заделаешь, то от XP станица лишь иллюзия, т.к всё окна придется написать самому. :)
#7
Хранитель Флейма
17.01.08 04:29
0
Интересно как тогда BSPlayer умеет выводить видео прямо на рабочий стол "под папки"?
#8
17.01.08 16:24
0
Вам может приходилось видеть такую чтуку - если сделать принт-скрин окошка, в котором идет видео, то оно будет идти и в пейнте, или другом редакторе, куда вы его вставите. Возможно как-то можно воспользоваться этим глюком. Или вот еще идея - мне кажется, что HDC обоин отличается от HDC иконок, т.к. иногда бывает что обоину не видно, и она залита каким-нибудь цветом, а иконки вполе исправно видны и работают поверх фона. Остается только найти этот самый DC обоин, и рисовать на нем как обычно.
#9
17.01.08 18:32
0
Цитата(DeadMage @ Сегодня, 14:24)
[snapback]73801[/snapback]
Возможно как-то можно воспользоваться этим глюком.

Это не глюк. Это обычный оверлей с DCK. По ссылке в #3 об этом рассказано.
#10
17.01.08 19:27
0
Цитата(Vga @ Сегодня, 17:32)
[snapback]73812[/snapback]
Это не глюк. Это обычный оверлей с DCK. По ссылке в #3 об этом рассказано.

Ааргх, да пускай хоть оверлей. Все равно я буду считать это глюком, т.к. нормальный скрин сделать не получится.
#11
17.01.08 20:55
0
DeadMage
Выключи оверлей либо делай скрин средствами проигрывателя либо делай скрин скриншотером с поддержкой оверлея.
#12
17.01.08 22:11
0
Vga
Ясно, с вами, блин, и не поспоришь:)
#13
Axyz Dile
27.01.08 03:07
0
Рабочий стол как известгно имеет ещо и функцию Web-браузера :) туда и копай, там собака ;)
#{{post.Index}}
{{post.Author.Login}}
{{post.CreatedDate | date:'dd.MM.yy HH:mm'}}
{{post.VotesRating}}
Отредактировано: {{post.UpdatedDate | date:'dd.MM.yy HH:mm'}}