Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запрет нажатия системных клавиш [Delphi, Windows]


ElectriC ©   (2007-04-05 17:32:00) 

Начал писать движок на WinAPI.
Возник вопрос:
Как запретить [Ctr]+[Alt]+[Del], [Alt]+[F4], [Alt]+[Tab], [Windows] и прочих системных клавиш - то бишь как это сделано в Quake III и прочих играх?


ElectriC   (2007-04-08 19:25:00) [1]

,


ElectriC   (2007-04-08 17:05:00) [2]

.


ElectriC   (2007-04-08 17:04:00) [3]

Так я спрашиваю про то, как ОТЛОВИТЬ РЕАКЦИЮ СВОРАЧИВАНИЯ(а не как запретить), какой код вообще надо использовать!


cyborg   (2007-04-08 15:45:00) [4]

Тебе все советуют не надо этого делать, но ты почему-то настойчиво пытаешься это реализовать. Лучше глюки поищи и исправь в своей игре, чтобы такими способами их скрывать не приходилось.


ElectriC   (2007-04-08 15:39:00) [5]

.


ElectriC   (2007-04-07 15:42:00) [6]


> Гораздо проще описать реакцию на сворачивание окна.

Подскажите, какой код хоть.


homm   (2007-04-07 14:40:00) [7]

>
> А можно по подробней, а то не выходит что-то((

Наиболее подробно в [8] начинается со слов «Убил бы за такое, ей Богу.»


ElectriC   (2007-04-07 14:25:00) [8]


> Asteroid ©   (06.04.07 04:42) [3]
> Отлавливай WM_ACTIVATE.

А можно по подробней, а то не выходит что-то((


ElectriC   (2007-04-06 22:28:00) [9]

Хех)))


Мистер Т   (2007-04-06 15:02:00) [10]

> Ctrl+Alt+Tab отключил
читать Ctrl+Alt+Del

сорри...


Мистер Т   (2007-04-06 15:01:00) [11]

> homm ©   (06.04.07 12:32) [5]
> Фокус передается, а вот окно не сворачивается и с переднего
> планане уходит.

А, ну так-то да, такой трюк легко получается, если окно назначить "поверх всех окон", но ведь сочетание клавишь работает =)
А вот в CoD - точно сворачивается после Alt+Tab, только что проверил.

> ElectriC ©   (06.04.07 14:12) [6]
> Вот-Вот!
> IMHO, лучше вообще запретить сворачивание и переключение
> между окнами,
> когда работает игра. Так надёжней, что-ли! Меньше ошибок
> и неполадок будет с программой!

Убил бы за такое, ей Богу.
Нужно нормально программы писать, а не изобретать велосипеды. Гораздо проще описать реакцию на сворачивание окна.
Ну и плюсом, если у тебя игра повиснет (думаешь не зависнет, наивный ???), а ты Ctrl+Alt+Tab отключил, как думаешь, сколько ты минут/часов/дней потратишь на поиски ошибки перезагружая каждый раз компьютер ?

> homm ©   (06.04.07 14:15) [7]
> А что-бы страну не захлестнуло пьянство, давайте запретим
> легальную алкогольную продукцию

Кстати некоторые пытались =)


homm   (2007-04-06 14:15:00) [12]

> IMHO, лучше вообще запретить сворачивание и переключение между окнами,
> когда работает игра. Так надёжней, что-ли! Меньше ошибок
> и неполадок будет с программой!

А для увеличения безопасности на автодорогах, давайте выпускать машины без колес. А что-бы страну не захлестнуло пьянство, давайте запретим легальную алкогольную продукцию, и т.д.


ElectriC   (2007-04-06 14:12:00) [13]


> Не знаю что ты делааешь не так, но у меня в Q3 тоже не работет
> ничего.Фокус передается, а вот окно не сворачивается и с
> переднего планане уходит. приходится по панели задачь правой
> кнопкой, переместить, дальше стрльчками. Потом возвращаю
> :)

Вот-Вот!
IMHO, лучше вообще запретить сворачивание и переключение между окнами,
когда работает игра. Так надёжней, что-ли! Меньше ошибок и неполадок будет с программой!


homm   (2007-04-06 12:32:00) [14]

> Почему-то в Q3 (и играх на его движке - CoD, RTCW и т.д.)
> у меня отлично сворачиваются/разварачиваются основное окно
> (реакция на Alt+Tab) и Ctrl+Alt+Del работает и прочая системщина.
> Что я не так делаю ?

Не знаю что ты делааешь не так, но у меня в Q3 тоже не работет ничего.Фокус передается, а вот окно не сворачивается и с переднего планане уходит. приходится по панели задачь правой кнопкой, переместить, дальше стрльчками. Потом возвращаю :)


Мистер Т   (2007-04-06 12:27:00) [15]

> ElectriC ©   (05.04.07 20:22) [2]
> Окей! Значит Кармак создаёт кривые и глюченые движки;)))))

Кармак не Бог, а значит не истина в последней инстанции.

> Как запретить [Ctr]+[Alt]+[Del], [Alt]+[F4], [Alt]+[Tab],
>  [Windows] и прочих системных клавиш - то бишь как это сделано
> в Quake III и прочих играх?

Почему-то в Q3 (и играх на его движке - CoD, RTCW и т.д.) у меня отлично сворачиваются/разварачиваются основное окно (реакция на Alt+Tab) и Ctrl+Alt+Del работает и прочая системщина. Что я не так делаю ?


Asteroid   (2007-04-06 04:42:00) [16]

Отлавливай WM_ACTIVATE.

А насчет запретов - фтопку, фтопку.
Лично меня еще не радуют игры без оконного режима :) Не говоря о тех, кто криво переключается в полноэкранный с меньшим разрешением (отчего все окна сдвигаются куда попало).


ElectriC   (2007-04-05 20:22:00) [17]

Окей! Значит Кармак создаёт кривые и глюченые движки;)))))

Есть ещё вопрос:
Как правильно отловить минимизацию окна?
Ниже приведённый код не помогает:

function WinProc(WinHan : THandle; Msg : UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
 Result := 0;

 case Msg of
   ...
   WM_SIZE    :
     If (wParam = SIZE_MAXHIDE) or (wParam = SIZE_MINIMIZED) then
        MessageBox(0,'1','My Engine',0) else MessageBox(0,'2','My Engine',0);
   ...
   else Result := DefWindowProc(WinHan, Msg, wParam, lParam);
 end;
end;


cyborg   (2007-04-05 19:19:00) [18]

Это обычно делают по причине глюкавости переключения чудо игры. В газенваген такие игры, которые не дают переключаться.


Наверх

Титульная страница Поиск, карта сайта Написать письмо