Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Вниз

Скринсервер.   Найти похожие ветки 

 
studentRSU   (2004-05-20 14:42) [0]

При запуске скринсервера в процедуре FormShow я проверяю, с какими параметрами запущена программа и соответственно запускаю либо сам скринсервер либо окно настроек. Но если он запущен с параметром /p, то я хочу показать картинку типа JPEG в окне настроек экрана (на закладке заставка). С помощью каких процедур это можно сделать? Если кто знает, напишите, пожалуйста, небольшой пример. Заранее спасибо.


 
WebErr ©   (2004-05-20 14:53) [1]

Запусти сначала то самое стандартное окно.
Потом найди класс окна с помощью
FindWindow(0, 0), GetNextWindow и GetClassName.
Класс окна известен!
Теперь можешь сам создавать такое же окно с помощью CreateWindow.
Запускаем!
Дальше нужно просто найти хэндл HDC и рисовать там, где хочешь.
Но самое страшное - это будет просто глупая копия того окна, к которому все привыкли! Т.е. она ничего не сможет сделать так, как это делает то же самое окно под управлением винды.
(Если это не получится, то придётся копаться в интерфейсах!)


 
studentRSU   (2004-05-20 15:28) [2]

Честно признаюсь, нихрена не понял. Я программист начинающий, и все это для меня слишком сложно. Неужели нельзя никак попроще. Может ты не понял вопрос. Повторяю подробнее: в WINDOWS есть окно свойств экрана (правой кнопкой на рабочем столе - свойства), в этом окне есть закладка "Заставка" (там еще две панели - параметры заставки и параметры питания: кнопка питание). Так вот, в параметрах заставки есть выпадающий список всех заставок (из директории windows\sysem32) и если в нем выбрать какую-либо заставку то в специальном окошке сверху (в виде монитора) появится либо сама заставка, либо просто картинка какая-нибудь, например с логотипом фирмы (в разных заставках по-разному). Так вот, дело в том, что когда мы выбираем заставку из этого списка WINDOWS запускает её с параметром /p (если нажать на кнопку "Параметры", то она запустится с параметром /c:xxxx). В своей программе (заставке) я сделал проверку параметров, с которыми запущен скринсервер (если /c:xxxx то я запускаю окно настройки - Options.ShowModal;), а если он запущен с параметром /p, то мне нужно показать в том специальном окне картинку типа JPEG. Неужели для этого нужно создавать такое же окно, что-то там перерисовывать и т.д. Кто знает, как это сделать попроще, помогите, пожалуйста. Заранее благодарен.


 
Ega23 ©   (2004-05-20 16:01) [3]

screenSAVEr, а не screenSERVER.


 
WebErr ©   (2004-05-20 16:09) [4]


> Кто знает, как это сделать попроще, помогите, пожалуйста.
> Заранее благодарен.

Попроще не получится!
Как ты заставишь чужую программу сделать что-то по-твоему иначе, кроме как через параметры или интерфейсы?
Поясняю, параметра запускающего нужную картинку на "монитор" в этом окне ты не найдёшь, я по крайней мере не нашёл - это надо чтобы в программе выбрался нужный item из списка. Это можно сделать при помощи интерфейсов - здесь копайся сам - я в это лезть не хочу! ...


 
wicked ©   (2004-05-20 18:17) [5]

жуть тут понаписывали....
всё гораздо проще - сделать маленькую заготовку, которая показывает ВСЕ параметры, переданные программе...
когда будет запускаться режим просмотра, явно можно увидеть ДВА параметра - "/p" и некое число, которое и является хендлом окна, в котором должен появиться скринсейвер...


 
studentRSU   (2004-05-20 19:07) [6]

Читаю ответы и понимаю, что я не просто чайник, а чайник без носика. Вот код:
procedure TScreenS.FormShow(Sender: TObject);
begin
   if ParamCount>0 then
   begin
     if ParamStr(1)="/p" then begin что должно быть здесь??? end
     else if ParamStr(1)[2]="c" then begin ShowCursor(true); Options.ShowModal; Close; exit end
   end;
end;


 
wicked ©   (2004-05-20 19:48) [7]


> if ParamStr(1)="/p" then begin что должно быть здесь???
> end

должен быть код, рисующий каким-либо образом на окне, хендл которого передан во втором параметре...
как это сделать - писать много и лениво....


 
studentRSU   (2004-05-20 23:17) [8]

Кому не лениво, напишите, пожалуйста.


 
studentRSU   (2004-05-21 23:44) [9]

Ну хоть кто-нибудь. Очень надо, напишите, плиз. Или хотя бы укажите, где это может описано, чтоб я знал, где искать. Заранее благодарен.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.032 c
4-1082626644
BJValentine
2004-04-22 13:37
2004.06.06
WinMain


1-1085340678
Alex Friend
2004-05-23 23:31
2004.06.06
Формы в DLL


14-1084967558
лена
2004-05-19 15:52
2004.06.06
Кнопка


3-1084416711
JetMan
2004-05-13 06:51
2004.06.06
DBGridEh


14-1084973432
slaga
2004-05-19 17:30
2004.06.06
как узнать какие значения принемает кнопка на клавиатуре ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский