Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.06;
Скачать: CL | DM;

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.04 c
14-1085085506
тихий вовочка
2004-05-21 00:38
2004.06.06
глупые вопросы по проектированию


3-1084514809
lightix
2004-05-14 10:06
2004.06.06
Компоненты прямого доступа к Oracle 8 (9)


3-1084763354
ss300
2004-05-17 07:09
2004.06.06
Trigger


11-1072366669
Xtz
2003-12-25 18:37
2004.06.06
Пороблема с мск


14-1084813056
_student
2004-05-17 20:57
2004.06.06
Как распараллелить задачу на несколько машин?