Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отключение Alt+F4, В C++Builder 
:(
    Опции темы
Crash_K
  Дата 25.12.2003, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 13.12.2003
Где: Одесса

Репутация: нет
Всего: нет



Как отключить у своей программы cрабатываниен клавиш Alt+F4 и вообще чтобы из программы нельзя было выйти даже при
нажатии лавиш Ctrl+Alt+Del
PM MAIL ICQ   Вверх
shedon
Дата 25.12.2003, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Зарегистрируй эти клавиши как Hot Keys

#define HK_BLOK 100

Код

// Регистрация
RegisterHotKey(m_hWnd, HK_BLOK, MOD_ALT, VK_F4);

//...

// Убираем hot keys
UnregisterHotKey(m_hWnd, HK_BLOK);


Правда, это код для VC.
Не знаю как он будет работать в Бюлдере

Это сообщение отредактировал(а) shedon - 25.12.2003, 17:48


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 25.12.2003, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: нет
Всего: 64



Можно в OnCloseQuery формы поставить CanClose в FALSE(для отмены реакции на Alt + F4).

Это сообщение отредактировал(а) <Spawn> - 25.12.2003, 18:59


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
shedon
Дата 26.12.2003, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Тогда оно на крестик не закроется. И вообще не как не закроется.


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
<Spawn>
Дата 26.12.2003, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Око кары:)
****


Профиль
Группа: Экс. модератор
Сообщений: 2776
Регистрация: 29.1.2003
Где: Екатеринбург

Репутация: нет
Всего: 64



shedon Так можно переменную для этого сделать и в зависимости от случая разрешать закрывать или не разрешать.


--------------------
"Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков.
PM MAIL ICQ   Вверх
shedon
Дата 26.12.2003, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Экс. модератор
Сообщений: 1209
Регистрация: 17.1.2003
Где: Нижнiй Новгородъ

Репутация: 4
Всего: 11



Цитата

вообще чтобы из программы нельзя было выйти даже при
нажатии лавиш Ctrl+Alt+Del


Это можно сделать следующим образом: перед тем как завершить процесс винда посылает программе сообщение WM_DESTROY, если эта комманда не выполняется то вында убивает процесс. т.е. можно надо тловить сообщение WM_DESTROY и создать новый процесс.

Код

LRESULT WINAPI WndProc(HWND hWnd, UINT msg,
    WPARAM wParam, LPARAM lParam)
{
 switch(msg)
 {
    HANDLE_MSG(hWnd, WM_DESTROY, WndProc_OnDestroy);
    default:
       return DefWindowProc(hWnd, msg, wParam, lParam);
 }
}

void WndProc_OnDestroy(HWND hWnd)
{
 STARTUPINFO si;
 PROCESS_INFORMATION pi;

 // Создадим другой процесс, а этот благополучно завершим.
 memset(&si, 0, sizeof(STARTUPINFO));
 si.cb = sizeof(STARTUPINFO);
 CreateProcess(NULL, "MyProg.exe", NULL, NULL,
     FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &si, &pi);
 CloseHandle(pi.hThread);
 CloseHandle(pi.hProcess);
 PostQuitMessage(0);
}


По моему это работает только под Win9x


--------------------
Programming is like sex: One mistake and you have to support it your lifetime
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0505 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.