|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.04.2008, 17:07 | #1 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 32
|
Sreen Saver отлов событий
Здраввствуйте!!! Практически написал скрин, да вот небольшая проблемка, когда на файл *.scr жмёш: "установить", то в программу передаётся параметр - "/p хэндл окна", ну я этот хэндл в переменную (hWnd) загнал, далее я хочу, чтобы события этого окна проходили ч/з мою процедуру:
Код:
Код:
Имеющий желание - ищет возможность,
не имеющий желание - ищет причину. --- Истина где-то рядом Последний раз редактировалось Alexoid; 25.04.2008 в 17:12. |
25.04.2008, 17:13 | #2 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Не совсем понял вводную, окно из этого же процесса?
|
25.04.2008, 17:38 | #3 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 32
|
нет!!! Картинка здесь в низу Хандле этого у меня в hWnd, а вот как я его получаю:
Код:
А что WinApi SetWindowLong может переопределять прцедуры окон только для окон ( извеняюсь за тавтологию ) процесса этой программы (ssFotoalbum.scr), т.е. где она вызвана. Окна других программ она не может контролировать по их ХЭНДЛу ?
Имеющий желание - ищет возможность,
не имеющий желание - ищет причину. --- Истина где-то рядом Последний раз редактировалось Alexoid; 25.04.2008 в 18:09. |
25.04.2008, 17:49 | #4 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Цитата:
|
|
25.04.2008, 18:14 | #5 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 32
|
Всё ясно, я так и понял!!! Да окно другого процесса.
А нет ли какого-то стандартного выхода из этой ситуации, или microsoft об непозаботился, ну для языка VC++ они это решили, введя процедуры обратного вызова ScreenSaverConfigureDialog, ScreenSaverProc и тд. в библиотеке: "ScrnSave.Lib", а тут я должен к нестандартным методам программированя прибегать (ХУКИ использовать) я ВОЗМУЩЁН
Имеющий желание - ищет возможность,
не имеющий желание - ищет причину. --- Истина где-то рядом Последний раз редактировалось Alexoid; 25.04.2008 в 18:38. |
25.04.2008, 18:39 | #6 | |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Цитата:
Во-вторых, если Вы собираетесь делать превью, то, если память меня не подводит, это делалось "втыканием" дочернего окна в переданное параметром чужое окно (собственно, не такое редкое явление), честное слово не помню деталей, а вовсе не перехватом чужого. |
|
25.04.2008, 19:52 | #7 | |
Пользователь
Регистрация: 20.04.2008
Сообщений: 32
|
Хорошо, раз уж я снова( на другом форуме дело было) затронул эту тем давйте разберёмся попорядку
1. Цитата:
Когда на Masm перешёл, сначало я тоже хотел воспользоваться этими ф-циями, тем более, что в Masm32 9 в include`ах и Lib`ах тоже есть scrnsave.inc и scrnsave.lib, но в *.ехе(*.scr) у меня этого не получилось, точка входа в ехе то одна "Start:", вот что мне сказали ТАМ, что: "поидее первый вариант - это exe, второй вариант - это dll", давайте разберёмся для начала с этим, можно ли ScreenSaverConfigureDialog и др ф-ций использовать в МASM, и зачем тогда в него включены scrnsave.inc и scrnsave.lib. Я несовсем понял тех форумчан. 2.Да чаво уж тут греха таить - я тоже в курсе этого подхода
Имеющий желание - ищет возможность,
не имеющий желание - ищет причину. --- Истина где-то рядом Последний раз редактировалось Alexoid; 25.04.2008 в 20:09. |
|
25.04.2008, 20:18 | #8 |
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
ScreenSaverConfigureDialog - должна быть объявлена экспортной. Какая разница на чём писать, если линкер всё равно везде один? Так что не понял, в чём проблема. А scrnsave.lib включена, очевидно, потому, что это часть Platform SDK. Она даже в DDK есть...
|
26.04.2008, 15:37 | #9 |
Пользователь
Регистрация: 20.04.2008
Сообщений: 32
|
Ну с теоритической базой мне всё понятно, да был неправ, что бочку на микрософт катил, наверное в силу своих поверхностых знаний, реньше прогил в основном на Delphi, а там же, как всё компоненты делают, а если и приходилось к API обращаться, то кое как что-то получалось и да ладно(давало поверхносные знания), короче мне стало ясно, то что предлагет Borland да microsoft идёт к этому со своей техногией FrameworkNet-это чистой воды для облегчения прикладухи (прикладного программирования). Для тех, тех кто хочет познать, все технологии любой ОСи, начать разбираться в них, это надо изучать их снизу , а не сверху (в др. жизненых ситуациях я советы довать не буду кому, как больше нравиться), т.е. с API. Я даже на буду ракомендовать, какой-то определённый Язык программирования (Asm, C или Delphi-Pascal), просто в учебных целях всё решает, то насколько ты, Вы, мы понимаем суть этой технолгии. Вот мой ВЫВОД.
И в заключении, как на практике мне Экспортнуть Screen`вские ф-ии, чтобы их понимала Винда, как точки входа? чето немогу понять, допустим RegisterDialogClasses - это настройка, вот код Код:
Код:
Имеющий желание - ищет возможность,
не имеющий желание - ищет причину. --- Истина где-то рядом Последний раз редактировалось Alexoid; 26.04.2008 в 16:24. |
26.04.2008, 17:48 | #10 | ||
Новичок
Джуниор
Регистрация: 18.01.2008
Сообщений: 1,720
|
Alexoid, зачем Вы экспортируете RegisterDialogClasses? Читайте документацию:
Цитата:
Цитата:
Вообще все эти тонкости подробно описаны в файле scrnsave.h в PSDK. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
обраьотка событий | Geddar | PHP | 5 | 04.07.2008 23:53 |
Проверка событий в onCreate | Михаил Юрьевич | Общие вопросы Delphi | 5 | 12.06.2008 13:17 |
Отлов кликов мыши | LAFUDR | Помощь студентам | 9 | 24.05.2008 01:32 |
обработчик событий | ben95 | Помощь студентам | 5 | 28.01.2008 17:46 |
Screen Saver на Паскале | Акашаев Нурлан | Паскаль, Turbo Pascal, PascalABC.NET | 4 | 28.07.2007 21:36 |