Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Как убрать кнопку выхода у программы?

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
exMIB
 
1) А какая сложность в нахождении хендла самой кнопки [x]? Немного посканнировав хендлы посылая им сообщения WM_RBUTTONUP, WM_LBUTTONUP можно понять принцип. И лучше отработать эти действия, чтобы потом не вспоминать, а как там было в другой программе.
 
2) Дальше устанавливается банальный Hook на кнопку, который заменяет сообщения WM_LBUTTONDOWN, WM_LBUTTONUP на вызов MinimizeWindow(Handle). В хуке не следует использовать глобальных переменных своего процесса, так как на разных версиях винды будет глючить по разному.

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 09:42 14-01-2005
ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Pinocchio

Цитата:
А какая сложность в нахождении хендла самой кнопки [x]

А ты уверен, что у нее есть хэндл? В том то и дело, что кнопка закрытия, есть ничто иное, как рисунок на заголовке, поэтому хэндла у нее нет и не будет.  

Цитата:
Дальше устанавливается банальный Hook на кнопку,

Хук можно установить, но только не на кнопку, а на события WM_CLOSE и WM_SYSCOMMAND, заглушив их выход, и вызвав при их появлении ShowWindow(hWnd,SW_HIDE); или минимайз. Только вот когда я пробовал это сделать, что то плохо у меня получалось, видно недопонимаю тонкостей работы с хуками. А exMIB пишет, что он сам не разбирается в программировании.

----------
И создал Бог женщину... Существо получилось злобное, но забавное...

Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 10:13 14-01-2005
Pinocchio

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
ShIvADeSt

Цитата:
А ты уверен, что у нее есть хэндл?  

Запамятвовал, последнее время просто запрещаю кнопку не удаляя её, на время пока программу нельзя вырубать (как при нарезке в Nero).

Цитата:
видно недопонимаю тонкостей работы с хуками.

1) У хука свой формат сообщения, отличный от принимаемого программой.
2) Как я и говорил, в хуках нельзя ядресовываться на глобальную память (типа DS:ESI), для этого делается MapFile.
3) Хуки отлично работают когда находятся в DLL. Дело в том что EXE это процесс со своей исключительной памятью. Т.е. написать хук нажатия кнопки Ctrl во всём Windows невозможно если адрес обработчика хука находится в пространстве EXE. Он получит только свои сообщения. Хотя перебросив тот же код в DLL-ку вы сразу же начнёте получать все сообщения дублетом, т.е. в системном процессе и в DLL.

Всего записей: 683 | Зарегистр. 18-11-2002 | Отправлено: 12:44 14-01-2005
EMOE

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кто посоветует, как удалить кнопку из диалогового окна? Есть диск с инсталляцией винды, при запуске выскакивает окно, в котором есть ненужные кнопки. Есть возможность их убрать? За ранее всем благодарен.

Всего записей: 55 | Зарегистр. 24-01-2006 | Отправлено: 16:27 09-03-2007
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Как убрать кнопку выхода у программы?


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru