Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2012, 19:24   #1
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
Вопрос программирование скринсейвера.

Вот на дельфи, или на Builder C++, не составляет труда написать, скрин сейвер, а как же сделать его на MSVC 2010??? Помогите пожалуйста. Надо сделать его в jpeg.
VintProg вне форума Ответить с цитированием
Старый 16.01.2012, 19:37   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Надо сделать его в jpeg.
для банального показа картинки то есть же стандартный сейвер.
а так scr это обычный exe.

просто проверяйте параметры запуска.
Код:
    if (ParamCount > 0) and (UpperCase(ParamStr(1)) = '/S') then
    begin
      //просмотр
    end
    else
    begin
      //настройки
    end;
думаю тут все ясно.

а из остального вам нужно блокировать запуск второй копии.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.01.2012, 19:38   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

и в чем сложности? в винде есть специальный тип приложений, так и называются - скрин сейверы. у них нет специфичной для исполняемых файлов функции WinMain, но зато есть ScreenSaverProc (которая по сути является той же точкой входа), и ScreenSaverConfigureDialog, вызов которой покажет диалог с настройками скринсейвера (ну или что ты захочешь)
тут подробности http://msdn.microsoft.com/en-us/libr...g_Screen_Saver

Цитата:
Надо сделать его в jpeg
facepalm


2Пепел Феникса
Цитата:
а так scr это обычный exe.
как я уже сказал - не совсем обычный
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 16.01.2012, 19:39   #4
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

не, я не так видать сказал. Мне надо сделать снимки с рабочего стола, и сохранить их в jpeg. На MSVC 2010 хрен поймешь что как делать...
VintProg вне форума Ответить с цитированием
Старый 16.01.2012, 19:53   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
как я уже сказал - не совсем обычный
ровно обычный.
просто тот тип проекта делает за нас работу что я сказал нужно сделать.(определение по параметру нужно запускать конфигурирование или показ, и поидее запрет на запуск второй копии)
Цитата:
Мне надо сделать снимки с рабочего стола, и сохранить их в jpeg. На MSVC 2010 хрен поймешь что как делать...
ну и в чем проблема?
функции создания битмапов и рисования изменились чтоль?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.01.2012, 19:59   #6
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Пепел Феникса
Цитата:
просто тот тип проекта делает за меня работу что я сказал нужно сделать.
тот тип проекта что ты описал не является скринсейвером в виндовом понимании чтобы он был скинсейвером нужно реализовать интерфейс виндового скринсейвера (а это как минимум 2 экспортируемые функции ScreenSaverProc и ScreenSaverConfigureDialog).
а то что ты предложил - приложение, похожее на скринсейвер
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 16.01.2012, 20:05   #7
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Просто снимки с экрана. Я же говорил. Нужно сделать одной функцией. Или найти уже готовое решение...
VintProg вне форума Ответить с цитированием
Старый 16.01.2012, 20:18   #8
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
а то что ты предложил - приложение, похожее на скринсейвер
в ХР скринсейвер делает именно то что я сказал.
и никакого экспорта там нету.

ТС, вот из гугла первые ссылки:
http://www.cyberforum.ru/post1534559.html
http://forum.ixbt.com/topic.cgi?id=26:41407
тут в BMP

насчет JPEG остается на дом.

а вот чуть полезного:
http://www.sysman.ru/index.php?showtopic=7170
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 16.01.2012 в 20:33.
Пепел Феникса вне форума Ответить с цитированием
Старый 16.01.2012, 20:33   #9
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

2Пепел Феникса
Цитата:
в ХР скринсейвер делает именно то что я сказал.
ну и упертый же ты. собери тестовую прогу, которая работает как ты описал, а именно
Код:
  if (ParamCount > 0) and (UpperCase(ParamStr(1)) = '/S') then
    begin
      //просмотр
    end
    else
    begin
      //настройки
    end;
переменуй расширение в scr, кинь в system32 (где лежат все скринсейверы) и попробуй запустить Настройки из Свойства экрана - заставка. эта кнопка у тебя не будет даже активна. почему? потому что ты НЕ РЕАЛИЗОВАЛ ИНТЕРФЕЙС скринсейвера (не экспортнул ScreenSaverConfigureDialog).

вывод - твоя прога не скринсейвер, а пародия на сринсейвер, с твоими идеями (параметры в командной строке).

честно, я не знаю как еще объяснить


Цитата:
и никакого экспорта там нету.
нуну. открой любой стандартный *.scr бинарник и посмотри на список экспорта
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 16.01.2012, 20:37   #10
VintProg
not
Участник клуба
 
Аватар для VintProg
 
Регистрация: 27.06.2009
Сообщений: 1,399
По умолчанию

Просто ужас, какой-то. Я очумею... Скрин-шот на MSVC не так уж и прост. Ну где же нормальные решения? А не эти извращение ошибки...

http://www.sysman.ru/index.php?showtopic=7170

вот эта ссылка зачем? Если нужен для MSVC 2010. Borland вообще должен быть исключен из этого топика... Там нету не каких TCanvas-ов и TBitmap-ов

Последний раз редактировалось VintProg; 16.01.2012 в 20:40.
VintProg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование или web-программирование? Дмитрий Батогов Помощь студентам 3 23.06.2011 14:14
Написание скринсейвера Dojikito Помощь студентам 3 11.04.2011 16:37
Создание новогоднего скринсейвера (веб камера) Ghost_V Помощь студентам 3 15.12.2009 23:33
Как задать время до появления скринсейвера Vask Win Api 4 17.01.2009 21:30
Скринсейвера на С++ zender Общие вопросы C/C++ 1 10.01.2008 11:37