Экспертная система 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] [Следующая »]

Сергей П.

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

Я тоже как инженер по образованию совсем не собирался делать никакие заявления (если бы собирался, то подготовил бы материал), беседу веду как обычный пользователь компьютера. Ссылку дал первую попавшуюся по этой теме для того чтоб было с чем сравнивать мое мнение. Если найдете статью с противоположным мнением с удовольствием почитаю.

На счет TaskManager. Я вижу то что я вижу. Если я что-то запустил, то сразу вижу - оперативки ушло столько-то, загрузка увеличилась на столько-то. И меня в принципе не волнует сколько ее ушло с точностью до байта, важно что убыло. Так же и здесь, запустил видео-обои, увидел, что нагрузка возрасла, оперативки сколько было столько и осталось.

Освобождать все ресурсы утилитой, и не собирался. Для чего ? Просто подчистил память после использования видео-обоев и установки обычных, затем опять поставил видео. Результат уже писал.

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

Вот думаю, что пишу. Мне кажется мы друг друга недопонимаем немного, уклоняемся от главного вопроса и начинаем доказывать что-то напоминающее спор пользователей о Висте. Одни кричат что она полный тормоз, другие отвечают - меняйте железо. И у тех и у других есть свои обоснованные доводы. Мне например на XP приходилось почти каждый месяц ось переустанавливать из-за каких-то критических ошибок, которые накапливались как снежный ком. Месяца четыре на Висте - никаких проблем.

По этой ссылке http://forums.wincustomize.com/316815
человеку обьясняют с чем связана его проблемма с нагрузкой на процессор при использовании DreamScenes.
В Reply #6 упомянается какая память используется. Если перероете весь указанный форум - не найдете (надеюсь) ни одного человека кто жалуется на пожирание оперативки этим продуктом.
Вадим К

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

зашёл я для начала на указанный форум. Читаю
"P.S. your computer will use your ram on your graphics card first, then when no more is available it will start borrowing some ram from your cpu."
ну, ничего необычного мне не сказали. Есть такое понятия как "откусываемая память". Вот на моем ноуте 128Мб у видеокарточки своей, и до 512 она может откусить от основной.
НО!
Сама программа, графические файлы и всё что будет связано с обоями, крути не крути будет использовать оперативную память. А посмотрев на первый маломальски понравишийся dream файл, я увидел, что размер больше 40 Мб. Смущает.

А пользоваться TaskManager надо уметь. он показывает то, что выгодно МС. А можно включить в нём дополнительное отображение и балдеть. Правда перед этим прийдётся почитать Рихтера и ему подобных, иначе смотря на цифры ничего можно и не увидеть.
По поводу Висты. Внутри она действительно красива, но где то там глубоко, в середине ядра - её всетаки два раза переписывали с нуля.

Почему же эта "программа для рисования обоев" не "жрёт" много памяти? да всё банально - не туда смотим. Прога просто управляет графической подсистемой.

А теперь по теме. Мне вот интересно, что представляет dream файл изнутри. у меня есть большое подозрение, что там не просто картинки и звуки, а и программный код.
Учитывая это, а почему бы не сделать свой dream файл.

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

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

Ну вот что я увидел когда определенный дрим устанавливается. В определенной папке оказываются несколько файлов (из одного дрим файла):
1.один, два или более видеофайлов, в зависимости от наличия и количества триггеров.

2.Триггер. Сам по себе описан в XML файле. Для примера:
<?xml version="1.0"?>
<dream version="1.0">
<version>100</version>
<triggerset type="time">
<trigger id="1" video="Night.wmv" hour="0" minute="0" second="0"/>
<trigger id="2" video="Day.wmv" hour="8" minute="0" second="0"/>
<trigger id="3" video="Evening.wmv" hour="20" minute="0" second="0"/>
</triggerset>
</dream>

3. Если имеется динамический контент (ДК), то как минимум две dll-ки для 32 и 64 битных систем.

4. Дополнительно подключаемые файлы. Обязательно их наличие или нет не знаю, т.к. подключить даже для примера нечего.

Есть программка DreamMaker которая всё это собирает в .dream, она все хорошо делает если задуманный вами дрим не имеет ДК. В этом случае ей нужно указать только видео файлы, и когда какой включать. В принципе она соберёт и дрим с ДК, если у нас есть эти две dll-ки. Но их нет, а расковырять что у них внутри чтобы понять как что взаимодействует ..., для меня это точно очень сложно.

А UAC я отключил почти сразу. Достаточно этого или нет не знаю, но отключил не так чтоб сообщений его не видеть, а его самого.
Вадим К

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

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

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

Могу отправить (скажите куда) из стандартного дрима под названием BouncingBox.
112 и 133 кб. (для 32 и 64 бит).

Да забыл еще имеется файл Cash. Содержимое выглядит так.

[CacheInfo]
DreamPath=C:\Users\1\Documents\Stardock\Dreams\Bouncing Box Sample.Dream
LastLoaded=D807070000000D0010000F0007007E0097
DreamChecksum=940af84

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

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

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

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

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

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

http://rapidshare.com/files/129366195/Bouncing_Box.rar.html
Вадим К

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

Анализ показал, что это добро написана но С++ от Майкрософт. Сама длл должна экспортировать 8 функций.
Небольшое гугление по их имени привело к единственному сайту, где описаны эти функции (http://www.aeroxp.org/board/index.php?showtopic=9312&st=0&start=0)
Беглый осмотр показывает, что вполне реально написать такую длл на Делфи, что открывает заманчивые перспективы.
Галочка "подтверждения прочтения" - вселенское зло.
Сергей П.

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

То есть из них можно понять как например вместо вращающегося куба, отобразить хотябы погодный информер ?
Вадим К

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

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

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

Ну это уже хорошо, главное начать. Между прочим, посторонний от StarDock человек написал программу для смены этих обоев по расписанию и просит за нее $9.95 (http://www.vistadreams.org/Dream-Manager-Software.htm)
Сергей П.

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

А механизма смены обоев там не видно ?
Вадим К

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

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

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

Не умею их смотреть к сожалению.
Аксион

Аксион (статус: 4-ый класс), 14 июля 2008, 10:42 [#36]:

Вадим К, извините меня конечно, но в Майкрософт отнюдь не дураки работают и почему нельзя верить указанным особенностям программы, это первое. Второе зачем всё это разводить? Разве вас спрашивали верите вы разработчикам или нет? Вас просто просили ответить на вопрос. Лично я понимаю Сергея, у меня обои меняются через каждые 5 минут, и не только у меня. И мне совершенно не важно что программа жрет системные ресурсы, кому это важно они просто не будут ей пользоваться. Третье, разве о глючности Висты речь? Что ХР в самом начале была безглючной ? , не была, да и до сих пор в ней полно их, лично для меня Виста намного стабильнее ХР.
Вадим К

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

Блазер:
Если внимательно присмотреться, то сам проблемный вопрос мы и обсуждаем, хоть и окольными путями.

Да, Виста, чудная ось, но она чудная что бы поиграться. Для серёзной работы надо поработать над ней напильником и хорошо поработать.

ответ на "во первых". Я инженер, и чужим фразам "это работатет лучше" без явных цифр не доверяю, если это хоть как то расходиться с тем, что мне известно. В таких случаях, я пытаюсь проверить.
ответ на "во вторых". Часто люди пытаясь решить вопрос, изобретают велосипеды, тратят жизнь на то, что не стоит и в своих попытках решить заходят в непонятные глубины.
на "во третих". Если просто смотреть на обои,то может и менее глючная, так как там графическая подсистема была вынесена с ядра и это было преподнесено как суперновшевство. А на самом деле только в Windows код графической подсистемы (ну и ещё в одной миниоси - минует) код был в ядре. Все остальные продакшн системы (то есть реально работающие. а не игрушки) таким не страдают. А если верить тем же наблюдениям Майкрософт, то процентов 70 падений оси - это проблемы с драйверами видео, драйверами NVidia и ATI. Если теперь переосмыслить вышенаписанное и учитывать то, что если графическая подсистема есть частью ядра, то её падение приводит к падению оси. в противном случае, работа может быть восстановленна без перегрузки.

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

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

Попробовал тоже код посмотреть. Если длл смотреть, то хоть вижу код на ассемблере, а в программе вообще только точка входа, переход на адрес, а дальше одни символы. Смотрю через PE Explorer. К сожалению должен отлучиться, буду к вечеру.
Вадим К

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

а вы им ничего и не увидите. это код на .NET:).
Галочка "подтверждения прочтения" - вселенское зло.
Сергей П.

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

Да, код действительно страшный. Хотя, я так понимаю из него видно практически весь механизм работы. Нужно только терпение и знания чтобы все распутать.
Ну вот заодно, просто ради интереса, в этой строке
if ((Register.isReg <> 0) and (string.Concat(regTo, regKey).GetHashCode = Register.isReg)) then ...

GetHashCode куда ведет, не могу пока понять.

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

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

Версия движка: 2.6+ (26.01.2011)
Текущее время: 26 апреля 2026, 04:57
Выполнено за 0.03 сек.