Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2008.12.07;
Скачать: [xml.tar.bz2];

Вниз

Запрет нажатия системных клавиш   Найти похожие ветки 

 
ElectriC ©   (2007-04-05 17:32) [0]

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


 
cyborg ©   (2007-04-05 19:19) [1]

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


 
ElectriC ©   (2007-04-05 20:22) [2]

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

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

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;


 
Asteroid ©   (2007-04-06 04:42) [3]

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

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


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

> 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 работает и прочая системщина. Что я не так делаю ?


 
homm ©   (2007-04-06 12:32) [5]

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

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


 
ElectriC ©   (2007-04-06 14:12) [6]


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

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


 
homm ©   (2007-04-06 14:15) [7]

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

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


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

> 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]
> А что-бы страну не захлестнуло пьянство, давайте запретим
> легальную алкогольную продукцию

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


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

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

сорри...


 
ElectriC ©   (2007-04-06 22:28) [10]

Хех)))


 
ElectriC ©   (2007-04-07 14:25) [11]


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

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


 
homm ©   (2007-04-07 14:40) [12]

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

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


 
ElectriC ©   (2007-04-07 15:42) [13]


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

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


 
ElectriC ©   (2007-04-08 15:39) [14]

.


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

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


 
ElectriC ©   (2007-04-08 17:04) [16]

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


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

.


 
ElectriC ©   (2007-04-08 19:25) [18]

,



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2008.12.07;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.49 MB
Время: 0.005 c
2-1225178052
zxc
2008-10-28 10:14
2008.12.07
Взять строку в двойные кавычки


2-1225311444
deras
2008-10-29 23:17
2008.12.07
Как "остановить" цикл?


2-1225252963
b@v
2008-10-29 07:02
2008.12.07
Время создания файла


1-1202752824
Igit
2008-02-11 21:00
2008.12.07
Автоматическое скроллирование к ItemIndex в ListView


15-1222894855
Petr V. Abramov
2008-10-02 01:00
2008.12.07
просьба прокомментировать





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский