Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 1 764

/ вопрос открыт /

Доброго времени суток, уважаемые эксперты!
Для пользователей Висты наверное не секрет что такое анимированные обои в формате .dream ( http://www.stardock.com/products/deskscapes/ ). Формат может быть и хорош, хотя бы тем что поддерживает триггеры и динамический контент. Но есть один большой минус - разработчики не опубликовали для широких масс SDK для создания этого динамического контента. Поэтому возник вопрос: допустим в своей программе я получил условие что пора поменять одни анимированные обои на другие ( прогноз погоды например новый получил, и под данную погоду у меня другие обои заготовлены ). Как в своей программе заставить Windows это сделать ?

Приложение:
  1. Vista SP1 32bit, Delphi 2007


Сергей П. Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Сергей П. (статус: Посетитель)
Вопрос отправлен: 11 июля 2008, 18:10
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 51; последнее сообщение — 22 июля 2008, 22:22; участников в обсуждении: 3.

Страницы: [1] [2] [3] [Следующая »]

Вадим К

Вадим К (статус: Академик), 11 июля 2008, 18:22 [#1]:

я думаю стоит попробовать как и раньше - заменить в реесте (это место сравнительно легко найти поиском) а потом отслать широковещательный запрос, что бы всё обновилось.
К счастью, у меня нет Висты и врядли будет, так что проверить кодом никак не могу.
Галочка "подтверждения прочтения" - вселенское зло.
Сергей П.

Сергей П. (статус: Посетитель), 11 июля 2008, 18:39 [#2]:

В реестре и на диске уже нашел, а вот как сделать чтобы поменялось (отслать широковещательный запрос) не знаю.
Вадим К

Вадим К (статус: Академик), 11 июля 2008, 18:51 [#3]:

пробуйте такие способы
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0 , '\\My Documents\\My Pictures\\Flower', SPIF_SENDCHANGE);
второй
после правки в реестре
PostMessage(HWND_BROADCAST, WM_SETTINGCHANGE, SPI_SETDESKWALLPAPER, 0);
Галочка "подтверждения прочтения" - вселенское зло.
Сергей П.

Сергей П. (статус: Посетитель), 11 июля 2008, 19:14 [#4]:

Кажется от идеи придется отказаться, т.к. еще раз заглянув в реестр обнаружил следующее:
Windows Registry Editor Version 5.00

[HKEY_USERS\S-1-5-21-2520135383-1085963358-3216831772-1000\Software\Stardock\Deskscapes\CurrentDream]
"FilePath"="C:\\Users\\1\\Documents\\Stardock\\Dreams\\Opera Mount.Dream"
"FileChecksum"=dword:acd54176
"PositionStyle"=dword:00000002
"LastContentFile"="C:\\ProgramData\\Stardock\\DeskScapes\\ExtractedData\\Opera Mount {4A6ACACB-7602-412F-B09C-8239397D9D26}\\DreamTriggers.xml"
"LastContentPath"="C:\\ProgramData\\Stardock\\DeskScapes\\ExtractedData\\Opera Mount {4A6ACACB-7602-412F-B09C-8239397D9D26}"
"LastContentType"=dword:00000002
"TriggerFile"="C:\\ProgramData\\Stardock\\DeskScapes\\ExtractedData\\Opera Mount {4A6ACACB-7602-412F-B09C-8239397D9D26}\\DreamTriggers.xml"

Т.е. мало того что из файла .dream содержимое распаковывается в несколько файлов (каким образом не понятно), вычисляется контрольная сумма (тоже не известно как), и к названию папки, в которую всё это извлекается, прибавляется еще идентификатор {4A6ACACB-7602-412F-B09C-8239397D9D26}.

Хотя на вскидку, можно сначала установить поочередно все dream'ы, которые в дальнейшем предполагается менять програмно (они все остаются распакованными в определенной папке) и потом менять как задумывалось выше. Но это какой-то не очень красивый способ.
Вадим К

Вадим К (статус: Академик), 11 июля 2008, 19:28 [#5]:

очень страно. хотя МС постаралась и сделала очень недружелюбную для программистов ОСь.
попробуйте первый мой способ, он позволяет указать путь к изображению.
Галочка "подтверждения прочтения" - вселенское зло.
Сергей П.

Сергей П. (статус: Посетитель), 11 июля 2008, 20:22 [#6]:

В первом способе тебует указатель вместо строки.
В справке нашел:
BOOL SystemParametersInfo(
UINT uiAction,
UINT uiParam,
PVOID pvParam,
UINT fWinIni
);


SPI_SETDESKWALLPAPER (Sets the desktop wallpaper. The value of the pvParam parameter determines the new wallpaper. To specify a wallpaper bitmap, set pvParam to point to a null-terminated string containing the name of a bitmap file. Setting pvParam to "" removes the wallpaper. Setting pvParam to SETWALLPAPER_DEFAULT or NULL reverts to the default wallpaper.)

Однако подставив параметры из описания получаю подобные ошибки. Требует указатель.
Сергей П.

Сергей П. (статус: Посетитель), 11 июля 2008, 20:27 [#7]:

И я так понимаю что этим способом получится менять только статичные обои .bmp или можно попробовать .dream подсунуть ?
Сергей П.

Сергей П. (статус: Посетитель), 11 июля 2008, 20:37 [#8]:

С параметром разобрался, но обои не поменялись.
Сергей П.

Сергей П. (статус: Посетитель), 11 июля 2008, 20:48 [#9]:

Не менялись потому что в этот момент были установлены анимированные. Если установлены обычные то этим способом меняются.
Сергей П.

Сергей П. (статус: Посетитель), 12 июля 2008, 15:10 [#10]:

Может есть способ программно менять 'обычные' анимированные обои в формате .mpg или .wmv, чтобы не связываться с .dream ? Они вроде считаются стандартными для Висты, значит, должно быть и способ найти легче. Только вот в сети пока ничего не нашел.
Вадим К

Вадим К (статус: Академик), 12 июля 2008, 15:46 [#11]:

Зачем видео на рабочем столе как обои???
Галочка "подтверждения прочтения" - вселенское зло.
Сергей П.

Сергей П. (статус: Посетитель), 12 июля 2008, 16:47 [#12]:

Видео как отдельный видеофайл может и не к чему, речь идет конечно не о фильме или ролике, а о циклическом видео. Встречаются очень качественные работы. Но даже не об этом, а о формате .dream, который держит не просто видео, а динамически меняющий контент, т.е. если пришли мне новости RSS, и отобразились бегущей строкой в нужном мне месте на экране, поменялся погодный информер (который у меня установлен) и отобразился не статически, а нехитрой анимацией. И таких событий немало. По моему неплохо когда все это настроено под собственные предпочтения и отслеживается одной программой, в данном случае DeskScapes. Но как я уже говорил SDK не был выпущен. В связи с этим возникло желание сделать что-либо по проще - программно сформировать некий видеофайл в котором будет отображено что-то в зависимости от событий которые в той или иной мере отслеживает пользователь и вывести это на экран в виде обоев.
Сергей П.

Сергей П. (статус: Посетитель), 12 июля 2008, 17:01 [#13]:

Раньше очень многих интересовал вопрос как интегрировать календарь в установленные обои, а теперь в свете новых возможностей возникают новые подобные вопросы. В принципе мне нужно только узнать как их поменять. Старые способы для статичных обоев не подходят.
Вадим К

Вадим К (статус: Академик), 12 июля 2008, 17:28 [#14]:

я не понимаю, зачем вообще это выводить на обои. У меня и многих моих друзей на рабочем столе стоит незамыслованая картинка. Сами обои я вижу только несколько минут при включении и выключении. А так у меня всегда на рабочем столе развернуто какое то окно.
А эти "недосистемы", извините за слово, рисуют на столе, тратят кучу ресурсов и толку? всё равно не видно основную часть времени.
У всех, кто мне жалуется на тормознутость компа, я удаляю все эти анимации, экранных животных и прочих "друзей", которые жрут память. Потом удивляются, как комп может так быстро работать.
Галочка "подтверждения прочтения" - вселенское зло.
Сергей П.

Сергей П. (статус: Посетитель), 12 июля 2008, 17:49 [#15]:

Хорошо сделанные обои у меня занимают 3% - 5% дополнительной нагрузки на процессор, не занимая оперативки вообще (практически все ресурсы берутся у видеокарты), и всё это автоматически отключается как только на весь экран развернуто окно или запущено что-либо полноэкранное.
Вадим К

Вадим К (статус: Академик), 12 июля 2008, 18:05 [#16]:

по первым двум пунктам. ага-ага. мне кажеться, вы слабо разбираетесь в теме.
по третему пункту.
Если это так, то у меня они вообще работать и не будут. собственно время, когда все окна были свёрнуты, то у меня и многих других юзеров составляет доли процента. Ну кроме ситуации, когда отхожу от компютера, но в этот момент я обычно сворачиваю сеанс.
Но память они жрут!
Галочка "подтверждения прочтения" - вселенское зло.
Сергей П.

Сергей П. (статус: Посетитель), 12 июля 2008, 18:28 [#17]:

Сужу об использовании ресурсов по всем имеющимся у меня индикаторам (системным и от других разработчиков). Четко вижу разницу в поедании ресурсов когда ставлю одно и то-же видео кодированное разными кодеками, но опять же замечу оперативки не убывает нисколько, как и заявленно разработчиками.
Сергей П.

Сергей П. (статус: Посетитель), 12 июля 2008, 18:38 [#18]:

Только что специально поставил обычные, почистил память, поставил видео, в результате не убавилось свободной памяти.
Сергей П.

Сергей П. (статус: Посетитель), 12 июля 2008, 19:13 [#19]:

Вот небольшая статья по поводу анимированных обоев:
http://www.thevista.ru/page.php?id=7888

А в конце статьи такая фраза: 'Главное, что такая красота будет теперь доступна без потерь в производительности и удобстве работы.'

И это заявление по моим наблюдениям не расходится с делом.
Вадим К

Вадим К (статус: Академик), 12 июля 2008, 23:16 [#20]:

Прочитал статью и, как инженер по образованию, надеялся увидить хоть какие то тесты с измерениями. А голословные заявления, что это не влияет на производительность, меня смешат.

С другой стороны, можно было бы даже логически додуматься, что обычные обои и динамические обои просто не могут потреблять однаковое кол-во ресурсов.

А пользоваться TaskManager надо ещё уметь. его показания надо уметь читать.
Вы недеетесь, что почистив память noname утилитой освободить все ресурсы??? Вы точно не знаете, как ставить эксперементы. Для чистоты, как минимум надо подготовить чистую ось, где будет минимум неопределённостей (антивирусы, фаерволы...). Потом перед каждым испытанием надо перегружать компьютер и много чего другого.

Подумайте, что вы просто пишете. Хотя я не знаю вашего возраста, может эти заявления и вполне адекватны.
Галочка "подтверждения прочтения" - вселенское зло.

Страницы: [1] [2] [3] [Следующая »]

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 25 июня 2017, 16:56
Выполнено за 0.05 сек.
Рейтинг@Mail.ru