![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Всем доброго времени суток! Пользовался поиском... да и в ДРКБ лазил но увы ответа не нашел :( у меня такой вопросик... как я могу на время работы моей программы отключить Alt+F4 ? Мне не надо сделать процесс не убиваем и т.д. просто отключить на время работы Alt+F4. Заранее большое спасибо!
|
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Задаёшь глобальную булевую переменную PER... Делаешь её false... Отлавливаешь CloseQuery формы, где делаешь
Соответственно, когда можно будет прекращать работу, делаешь per:=true. Это сообщение отредактировал(а) Данкинг - 24.2.2009, 00:01 -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
THandle |
|
|||
![]() Хранитель Клуба ![]() Награды: 1 Профиль Группа: Админ Сообщений: 3639 Регистрация: 31.7.2007 Где: Moscow, Dubai Репутация: 65 Всего: 372 |
|
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Данкинг, тогда и на "крестик" будет не закрыть, что не соответствует заданию
![]() -------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Ребят спасибо большое =) но вы не поняли )))) мне надо сделать так... чтобы глобальный Alt+F4 отключить. Скажем есть программа к которой я не имею доступа. А моя бы программа блокировала её закрытие через Alt+F4 в свое время работы. Думал сделать как ... ну... просто глобальную горячу клавишу Alt+F4 ... но потом подумал... что это вряд ли сойдет т.к. система начнет просто выполнять 2 команды.
Вообщем что то похоже на это
Только для чужого окна ![]() |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
Читай про хуки. Отлавливай Alt+F4 и посылай окну не WM_Close, а что-нить свое (или ничего). По другому тут никак.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
ем... мне надо отослать "ничего" )))))
А если зарегистрировать хот кей на Alt+F4 и в обработчике просто указать begin end; ? Или винда всё же закроет? Можете мне чуток помочь? ![]() |
|||
|
||||
Poseidon |
|
|||
![]() Delphi developer ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 5273 Регистрация: 4.2.2005 Где: Гомель, Беларусь Репутация: 53 Всего: 133 |
При нажатии Alt+F4 винда посылает активному окну WM_Close. Твоя задача отловить Alt+F4 до того, когда винда поймет что нажал пользователь и выполнить свои действия (т.е. ничего не выполнять), запретив при этом винде выполнять свои (т.е. посылать WM_Close). Реализуется это все с помощью глобальных хуков. В DRKB есть пример.
-------------------- Если хочешь, что бы что-то работало - используй написанное, если хочешь что-то понять - пиши сам... |
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Ребята вот смотрите переделал кусочек кода. Мне как бы... ну надо обойтись одной дллкой. Она привязана к приложеню, но чтобы длл сама создавала и удаляла хук. Автоматизма я добился =) осталось только создание =) . Так вот взял хук блока правой кнопки мышки... не знаю или подойдет ну чуток переделал. Подскажите если что-то не так
![]()
|
|||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Почитал ДРКБ... да я понял как работают хуки, конкретно зачем они нужны и как лучше писать... но не более.. к сожалению примеров катастрофически мало...ребята я не прошу вас за меня написать код, мне бы только подсказать как...
![]()
Ребята я вас понимаю вы скажете что в ДРКБ есть что в гугле есть... но то что я хочу не стандартное. Мне не надо сделать так чтобы процесс нельзя было убить. Это я делал бы совсем по иному, мне надо заблокировать Alt+F4. Поверьте искал... и поверьте нету нигде хотя бы намека как это сделать... да написано мол надо глобальный хук на Alt+F4 а как это сделать... ![]() |
|||
|
||||
SneG0K |
|
||||||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 1 Всего: 54 |
вот тут надо проверять не WM_CLOSE ли это! А если это не так, то делать
ну а если так, то
Хотя лучше ничего не писать) Добавлено через 2 минуты и 2 секунды
А как вы говорите "вот тут", компилятор вообще выкинет ошибку, потому, что там вместо begin уже запасливо стоит end |
||||||
|
|||||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Большое вам спасибо что откликнулись! =)
Если я вас правильно понял то код должен быть таким
Вот так?.. правда что то мне кажется что я где то что-то не так сделал :( |
|||
|
||||
SneG0K |
|
|||
![]() Max Mara ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1887 Регистрация: 1.12.2007 Где: Wis Dells Репутация: 1 Всего: 54 |
||||
|
||||
Kirgston |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 792 Регистрация: 24.12.2007 Репутация: нет Всего: 2 |
Ну... думал как бы ... я пропускаю хук и вызываю сл. хук, а если нет то дальше вызываю сл. хук... да наверно я тут не прав =)
Кстати забыл. Кто не знает тому будет полезно =) WM_CLOSE только сворачивает окно ))))
Ув. Снежок вы даете добро на это? Просто функция что то очень маленькая получилась... мне кажется почему-то что работать она не будет... |
|||
|
||||
Christoph |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 667 Регистрация: 23.1.2008 Где: Харьков Репутация: 1 Всего: 11 |
Что это такое написано? ![]() Я в Хуках не шарю,но проверка на сообщения должна происходит примерно так
Это сообщение отредактировал(а) Christoph - 24.2.2009, 22:41 -------------------- ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |