Где взять приличную доку на программирование скринсейверов на С++?
Или исходники, плиззз.
Пока.
08.11.06 17:50: Перенесено модератором из 'C/C++. Прикладные вопросы' — Odi$$ey
Re: скренсейвер
От:
Аноним
Дата:
30.10.06 07:16
Оценка:
А>Где взять приличную доку на программирование скринсейверов на С++? А>Или исходники, плиззз.
В MSDN точно есть и то и другое. Думаю, что MSDN поиск или гугль найдут без проблем.
Re[2]: скренсейвер
От:
Аноним
Дата:
30.10.06 10:52
Оценка:
Здравствуйте, Аноним, Вы писали:
А>>Где взять приличную доку на программирование скринсейверов на С++? А>>Или исходники, плиззз.
А>В MSDN точно есть и то и другое. Думаю, что MSDN поиск или гугль найдут без проблем.
Я думаю что скринсейверы — это не то, для чего требуется дока.
А что касается MSDN, то там про них почти ничего нет. Только функции ScreenSaverProc, DefScreenSaverProc, ScreenSaverConfigureDialog и RegisterDialogClasses. Ну и еще в качестве хелпа можно использовать файл <scrnsave.h>
Здравствуйте, <Аноним>, Вы писали:
А>Где взять приличную доку на программирование скринсейверов на С++?
Платформа какая? Windows, Linux (KDE, Gnome, другие среды), другая ОС?
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[3]: скренсейвер
От:
Аноним
Дата:
30.10.06 12:51
Оценка:
Здравствуйте, Аноним, Вы писали: А>А что касается MSDN, то там про них почти ничего нет. Только функции ScreenSaverProc, DefScreenSaverProc, ScreenSaverConfigureDialog и RegisterDialogClasses. Ну и еще в качестве хелпа можно использовать файл <scrnsave.h>
Когда-то всё было — и статейка (может в их журнале) и пример. В посл. время наблюдаю как старые (но ценные) сведения в MSDN перекочевывают в какие-то закрома родины, где их днём с огнём не найдёшь. Поиск у них, ИМХО, на редкость дрянной — мне гугль часто находит в MSDN то, что собственный MSDN-вский поиск не находит.
Здравствуйте, Аноним, Вы писали:
А>А что касается MSDN, то там про них почти ничего нет.
Угу, старье, пару строк с ошибками, но и этого хватило. :-)
Санкс адестуд... :-)
Как програмно вызвать desc.cpl и где про его параметры вызова прочесть.
Скрин собрал. Но как програмно(при первом запуске) прописать этот скринсейвер в диалог свойств экрана, вызвать desc.cpl и установить позицию комбобоксы на него?
Здравствуйте, <Аноним>, Вы писали:
А>Как програмно вызвать desc.cpl и где про его параметры вызова прочесть. А>Скрин собрал. Но как програмно(при первом запуске) прописать этот скринсейвер в диалог свойств экрана, вызвать desc.cpl и установить позицию комбобоксы на него?
Здравствуйте, <Аноним>, Вы писали:
XZ>>rundll32.exe desk.cpl,InstallScreenSaver c:\windows\system32\ssaver.scr А>А оно у меня в другой папке c:\windows.0\system32\ssaver.scr А>а у кого-то может ещё где...
Если InnoSetup, то путь будет выглядеть как "{sys}\ssaver.scr". Или вы не знаете, куда ставится сэйвер?
Серёжа Новиков,
программист
Re[7]: скренсейвер
От:
Аноним
Дата:
08.11.06 13:27
Оценка:
Здравствуйте, Xander Zerge, Вы писали:
XZ>Здравствуйте, <Аноним>, Вы писали:
XZ>>>rundll32.exe desk.cpl,InstallScreenSaver c:\windows\system32\ssaver.scr А>>А оно у меня в другой папке c:\windows.0\system32\ssaver.scr А>>а у кого-то может ещё где...
XZ>Если InnoSetup, то путь будет выглядеть как "{sys}\ssaver.scr". Или вы не знаете, куда ставится сэйвер? :)
Я же могу поставить его куда угодно. Потом в регистре прописать путь на него и порядок.
Если я его поставлю в свою любимую папку, desk.cpl его сам не увидит.
А кнопки бровсе я что-то не наблюдаю.
Если же я его посталю в правильную папку (даже не прописывая его в регистр, как дефолтный), то при вызове rundll32.exe ... , в комбобоксе будет аж два скринсейвера с одним и тем же названием и оба будут показывать на один ss.scr.
Один, которыя я поставил до вызова rundll32.exe (его desk.cpl находит сам) и другой, который rundll32.exe собирается инстолить моим же вызовом.
При повторном запуске desk.cpl (из командной строки или свойств дисплея) уже видит только один скринсейвер, как оно и есть на самом деле.
???
Есть ли способ вызвать deck.cpl с нужными параметрами без инстоляции?
Да и где же эти параметры задокументированы?
Здравствуйте, Аноним, Вы писали:
А>Я же могу поставить его куда угодно. Потом в регистре прописать путь на него и порядок.
Не куда угодно, а туда, где его увидит система.
А>Если я его поставлю в свою любимую папку, desk.cpl его сам не увидит.
Вот-вот.
А>А кнопки бровсе я что-то не наблюдаю.
Какой кнопки? Где?!
А>Если же я его посталю в правильную папку (даже не прописывая его в регистр, как дефолтный), то при вызове rundll32.exe ... , в комбобоксе будет аж два скринсейвера с одним и тем же названием и оба будут показывать на один ss.scr.
Ещё раз, какая папка правильная?
А>Один, которыя я поставил до вызова rundll32.exe (его desk.cpl находит сам) и другой, который rundll32.exe собирается инстолить моим же вызовом.
Он ничего не инсталит, только пропишет его как дефолтный и тут же откроет вкладку Screensaver.
А>Есть ли способ вызвать deck.cpl с нужными параметрами без инстоляции?
С командной строки через rundll32...
А>Да и где же эти параметры задокументированы?
В гугле, ё-моё! http://www.google.com/search?q=desk.cpl+parameters http://www.robvanderwoude.com/rundll.html
Серёжа Новиков,
программист
Re[9]: скренсейвер
От:
Аноним
Дата:
09.11.06 09:53
Оценка:
А>>Я же могу поставить его куда угодно. Потом в регистре прописать путь на него и порядок. XZ>Не куда угодно, а туда, где его увидит система.
Если я помогу системе, через регистр, то куда угодно.
В регистре прописывается полный путь на дефолтный скринсервер.
Система не увидит, а работать будет. Уже работает из c:\windows.0\system32\ss\ss.scr Попробую в корень или в любую другую папку.
Здравствуйте, <Аноним>, Вы писали:
А>В регистре прописывается полный путь на дефолтный скринсервер. А>Система не увидит, а работать будет. Уже работает из c:\windows.0\system32\ss\ss.scr Попробую в корень или в любую другую папку.
Зачем???
Здравствуйте, Аноним, Вы писали:
А>Привет!
А>Где взять приличную доку на программирование скринсейверов на С++? А>Или исходники, плиззз.
А>Пока.
Блин как меня бесят люди которые на вопрос отвечают типа: "ну это фогня вопрос", "это не то, для чего требуется дока". Ты что ответить не можешь, дать ссылку.
Короче отвечаю, как могу:
Во первых: в МСДН есть статья называется "Handling Screen Savers" почитай интересно.
Во вторыъх:
там ты найдеш описание 3-х ф-ий, которые ты можеш в тупую копи/паст (ScreenSaverProc, ScreenSaverConfigureDialog, RegisterDialogClasses) их объявление может не совпадать с твоим SDK, поэтому правильный declaretion посмотри в <ScrnSave.h>.
вставляеш функции из МСДН-а, создаеш диалоги, определяеш переменные нужные, удаляеш лишние (у меня такие нашлись и CTRL+F5.Переименовываеш в *.scr ФСЕ.
P.S.Если последняя строчка не понятна RTFM WinAPI.
Здравствуйте, kaz, Вы писали:
kaz>Блин как меня бесят люди которые на вопрос отвечают типа: "ну это фогня вопрос", "это не то, для чего требуется дока". Ты что ответить не можешь, дать ссылку.
Ух какой злой, а главное, шустрый!
http://www.wischik.com/scr/
Находится гуглом за пять секунд по фразе "Screensaver Programming". Там пошире расписано для начинающих.
По-нормальному же, scrnsave.lib недостаточно, гибкости не хватает, не говоря уж об отсутствии поддержки многоэкранных систем, потому если по-взрослому, то писать надо всё своё.
Протокол же сам по себе простенький: это список параметров командной строки, строковый ресурс-название, да не забывать информировать систему через SPI_SETSCREENSAVERRUNNING. Это всё в MSDN действительно описано.