| Автор
| Сообщение |
 deathraider
Постоянный участник

Возраст: 36
Знак зодиака: 
Зарегистрирован: 28.07.2003
Сообщения: 118
Откуда: Украина Сумы
|
|
|
Цитата |
|
Привет всем!
Подскажите можно ли поставить пароль на открытие свернутого окна
Если да то в каком хоть направлении "копать"
Заранее благодарен |
|
| В начало |
|
 |
|
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
В оконной функции по приходу соответствующего сообщения спрашивай пароль, и если пароль неправильный, просто не вызывай DefWindowProc. А вообще, лучше всего спроектировать логику работы программы так, чтобы не было этих извратов _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
 deathraider
Постоянный участник

Возраст: 36
Знак зодиака: 
Зарегистрирован: 28.07.2003
Сообщения: 118
Откуда: Украина Сумы
|
|
|
Цитата |
|
| Прикол в том что мне нужно поставить пароль на открытие окна дрогого приложения |
|
| В начало |
|
 |
 Шурик
Я живу тут....

Возраст: 42
Знак зодиака: 
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
|
|
|
Цитата |
|
Для этого нужно использовыать хуки. Смотри SetWindowsHookEx. Хук - это процедура, вызываемая системой по определённому событию. В твоём случае по получению сообщения окном. Поставить хук сравнительно просто. Но есть одна особенность. Хук-процедура при вызове выполняется в адресном пространстве вызвавшего её потока. Поэтому твои переменные (пароль и т.п.) ей будут недоступны.
Чаще всего хук для "чужого" процесса делают в виде отдельной dll. Но, вроде, можно и в том же ехе. Только нужно не забывать, что все данные этого ехе хуку будут не видны. _________________ Ответ готов, готов ли твой вопрос? |
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
А почему бы просто скринсейвер не запаролить?
Т.к. чтобы сделать такой гемморрой, нужно написать DLL, внедрить ее в код другого приложения, перехватить там оконную функцию и в ней уже делать все вышесказанное _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
 deathraider
Постоянный участник

Возраст: 36
Знак зодиака: 
Зарегистрирован: 28.07.2003
Сообщения: 118
Откуда: Украина Сумы
|
|
|
Цитата |
|
Что геморой понятно НО
если запаролить скринсейвер это будет слишком очевидно
все равно спасибо
буду юзать SetWindowsHookEx |
|
| В начало |
|
 |
 Ktf
Администратор

Возраст: 32
Знак зодиака: 
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
|
|
|
Цитата |
|
ну как же, SetWindowsHookEx только для мониторинга событий, она не может повлиять на работу программы!
имхо только через внедрение DLL _________________ Пойду посплю перед сном. |
|
| В начало |
|
 |
 Шурик
Я живу тут....

Возраст: 42
Знак зодиака: 
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
|
|
|
Цитата |
|
Да, правда. Хуки только мониторят что-либо. Я не подумал об этом.
А что тогда должна делать внедряемая DLL ?
Мне кажется тут нужно как-то перехватывать оконную процедуру и отсекать сообщения по каким-то условиям. Подменить оконную функцию -- это вроде SetWindowLong + GWL_WNDPROC. _________________ Ответ готов, готов ли твой вопрос? |
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
| Цитата: | | Мне кажется тут нужно как-то перехватывать оконную процедуру и отсекать сообщения по каким-то условиям. Подменить оконную функцию -- это вроде SetWindowLong + GWL_WNDPROC. |
Все верно. Чтобы отменить стандартное действие, надо просто не передавать его в DefWindowProc _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
|
|
 |
 NikotiN
Розовый мамонт

Возраст: 26
Знак зодиака: 
Зарегистрирован: 18.03.2005
Сообщения: 2137
|
|
|
Цитата |
|
Может внедриться в эксплорер?
Ну там в boot.ini назначить вместо эксплорера свою оболочку, которая будет запускать экплорер и внедряться в него...еси долго помучиться, то получится клёвая программа =)
хотя очень бесполезная) _________________ Сила дурака в том, что умный перед ним бессилен. |
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
| Цитата: | | Может внедриться в эксплорер? |
А толку? Максимизировать окно можно и по Alt+Tab, например.
| Цитата: | | Ну там в boot.ini назначить вместо эксплорера свою оболочку |
Это ты с Windows 95 перепутал, там в msdos.sys оболочка прописывалась _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
 NikotiN
Розовый мамонт

Возраст: 26
Знак зодиака: 
Зарегистрирован: 18.03.2005
Сообщения: 2137
|
|
|
Цитата |
|
нифига.
alt+tab небось эксплорер перехватывает...хотя это не важно, повесить хоткей свой, он перетрёт прошлый
в boot.ini можно выставить, кажется, ключём kernel имя своей проги, вместо эксплорера и прога будет грузиться вместо стандартной оболочки (эксплорера) _________________ Сила дурака в том, что умный перед ним бессилен. |
|
| В начало |
|
 |
DrPass
Знающий :) /Почетный Модератор/

Возраст: 31
Знак зодиака: 
Зарегистрирован: 02.05.2002
Сообщения: 5709
Откуда: Донецк
|
|
|
Цитата |
|
| Цитата: | | alt+tab небось эксплорер перехватывает... |
Неа, не перехватывает. Он процессы не переключает
| Цитата: | | в boot.ini можно выставить, кажется, ключём kernel имя своей проги, вместо эксплорера и прога будет грузиться вместо стандартной оболочки (эксплорера) |
>>>
| Цитата: | | Это ты с Windows 95 перепутал, там в msdos.sys оболочка прописывалась |
Думаю, твоя прога вряд ли потянет на почетное звание kernel  _________________ Да пребудет с вами Сила! |
|
| В начало |
|
 |
 NikotiN
Розовый мамонт

Возраст: 26
Знак зодиака: 
Зарегистрирован: 18.03.2005
Сообщения: 2137
|
|
|
Цитата |
|
нет же, сам в XP заменял explorer в boot.ini с помощью ключа какого-то.
пока нашёл тока так
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
Shell=моя прога
Добавлено спустя 10 минут 47 секунд:
фу, вроде это
/SAFEBOOT ALTERNATESHELL=
Добавлено спустя 3 минуты 47 секунд:
в общем точняк есть, мы с другом ещё в школе вирус писали, он вместо эксплорера стартовал
Добавлено спустя 52 секунды:
ну а с alt+tab, как уже говорил, можно разобраться хуками _________________ Сила дурака в том, что умный перед ним бессилен. |
|
| В начало |
|
 |
 Шурик
Я живу тут....

Возраст: 42
Знак зодиака: 
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
|
|
|
Цитата |
|
http://ru.wikipedia.org/wiki/Boot.ini
http://support.microsoft.com/kb/833721/ru
| Microsoft писал(а): | /kernel=имя_файла
Данный параметр позволяет указать, какое ядро необходимо загружать при загрузке операционной системы. Например, введите /kernel=ntkrnlmp.exe, чтобы загрузить ядро Ntkrnlmp.exe, находящееся в папке System32. Используя параметр /kernel, можно при загрузке выбрать обычное ядро или ядро, предназначенное для отладки и содержащее отладочную информацию. |
_________________ Ответ готов, готов ли твой вопрос? |
|
| В начало |
|
 |
|