Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Как запретить закрытие произвольного окна

Delphi , Программа и Интерфейс , Приложения чужие

Для запрета закрытия, через крестик в меню, своего или чужого окна можно воспользываться следующей процедурой:

Code:

EnableMenuItem(GetSystemMenu(FindWindow(Nil, Pchar('Название Окна')),False)
,SC_CLOSE,MF_BYCOMMAND or MF_GRAYED);

Автор: Radmin

Взято с Vingrad.ru http://forum.vingrad.ru

Прекрасный трюк для предотвращения закрытия окон с помощью кнопки "Закрыть" в панели заголовка!

Давайте разберём код:

EnableMenuItem(GetSystemMenu(FindWindow(Nil, Pchar('Название Окна')), False), SC_CLOSE, MF_BYCOMMAND or MF_GRAYED);

Вот что делает каждая часть:

  1. FindWindow(Nil, Pchar('Название Окна')):
    • Nil - константа, представляющая пустой.handle окна.
    • Pchar('Название Окна') - преобразует строку "Название Окна" в Pascal-стильную строку (указатель на символ).
    • Функция FindWindow ищет окно с указанным заголовком (Pchar('Название Окна')) и возвращает его.handle, если найдено.
  2. GetSystemMenu(..., False):
    • GetSystemMenu получает системное меню, связанное с указанным окном (handle, полученным из FindWindow).
    • Второй аргумент False указывает, что системное меню не должно быть обновлено для отражения текущего состояния окна.
  3. EnableMenuItem(..., SC_CLOSE, ...):
    • SC_CLOSE - константа, представляющая индекс пункта "Закрыть" в системном меню.
    • MF_BYCOMMAND or MF_GRAYED - биты-маски, модифицирующие поведение пункта меню:
      • MF_BYCOMMAND указывает, что пункт меню должен быть включен/отключен в зависимости от его ID команды (в этом случае, SC_CLOSE).
      • MF_GRAYED делает пункт меню серым, предотвращая его клик.

В целом, этот код находит окно с указанным заголовком, получает системное меню и затем включает или отключает пункт "Закрыть" в системном меню, сделав его серым (MF_GRAYED). Это эффективно предотвращает закрытие окна с помощью кнопки "Закрыть" в панели заголовка.

Обратите внимание, что это трюк работает только для окон с соответствующим заголовком, и может не быть foolproof, поскольку пользователь может все еще закрыть окно с помощью других методов (например, нажав Alt+F4 или используя третьесторонний инструмент).

Для запрета закрытия окна можно использовать функцию EnableMenuItem, которая отключает кнопку закрытия в системном меню окна.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Приложения чужие ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-19 17:55:03/0.0050899982452393/2