Отключение сочетаний клавиш в играх
В этой статье описывается, как временно отключить сочетания клавиш в Microsoft Windows, чтобы предотвратить прерывание игры в полноэкранных играх. Клавиши SHIFT и CTRL часто используются в качестве кнопок запуска или запуска в играх. Если пользователи случайно нажали клавишу Windows (расположенную рядом с этими клавишами), они могут внезапно выскочить из приложения, что нарушит работу игры. Простое использование клавиши SHIFT в качестве игровой кнопки может непреднамеренно выполнить ярлык StickyKeys, который может отображать диалоговое окно с предупреждением. Чтобы избежать этих проблем, следует отключить эти ключи при работе в полноэкранном режиме и либо включить ключи обратно к обработчикам по умолчанию при запуске в оконном режиме, либо выйти из приложения.
В этой статье описывается, как сделать следующее:
- Отключение клавиши Windows с помощью обработчика клавиатуры
- Отключение сочетаний клавиш со специальными возможностями
Отключение клавиши Windows с помощью обработчика клавиатуры
Используйте низкоуровневый обработчик клавиатуры, чтобы отфильтровать клавишу Windows от обработки. Низкоуровневый обработчик клавиатуры, показанный в примере 1, остается в силе, даже если пользователь свернет окно или переключит на другое приложение. Это означает, что при отключении приложения ключ Windows не отключается. Код в примере 1 делает это путем обработки сообщения WM_ACTIVATEAPP.
Этот метод работает в Windows 2000 и более поздних версиях Windows. Этот метод также работает с учетными записями пользователей с минимальными привилегиями (также называемыми учетными записями обычных пользователей).
Этот метод используется DXUT и показан в следующем примере кода.
Пример 1. Использование низкоуровневого перехватчика клавиатуры для отключения клавиши Windows
HHOOK g_hKeyboardHook = nullptr; bool g_bWindowActive = false; bool g_bFullscreen; INT WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) < // Initialization g_hKeyboardHook = SetWindowsHookEx( WH_KEYBOARD_LL, LowLevelKeyboardProc, GetModuleHandle(nullptr), 0 ); // // main application code here // // Cleanup before shutdown UnhookWindowsHookEx( g_hKeyboardHook ); g_hKeyboardHook = nullptr; return 0; >LRESULT CALLBACK LowLevelKeyboardProc( int nCode, WPARAM wParam, LPARAM lParam ) < if (nCode < 0 || nCode != HC_ACTION ) // do not process message return CallNextHookEx( g_hKeyboardHook, nCode, wParam, lParam); bool bEatKeystroke = false; auto p = reinterpret_cast(lParam); switch (wParam) < case WM_KEYDOWN: case WM_KEYUP: < bEatKeystroke = (g_bFullscreen && g_bWindowActive && ((p->vkCode == VK_LWIN) || (p->vkCode == VK_RWIN))); // Note that this will not block the Xbox Game Bar hotkeys (Win+G, Win+Alt+R, etc.) break; > > if( bEatKeystroke ) return 1; else return CallNextHookEx( g_hKeyboardHook, nCode, wParam, lParam ); > LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) < switch( uMsg ) < case WM_ACTIVATEAPP: // g_bWindowActive is used to control if the Windows key is filtered by the keyboard hook or not. if( wParam ) g_bWindowActive = true; else g_bWindowActive = false; break; case WM_SYSKEYDOWN: if (wParam == VK_RETURN && (lParam & 0x60000000) == 0x20000000) < // Implement the classic ALT+ENTER fullscreen toggle . // g_bFullscreen is used to control if the Windows key is filtered by the keyboard hook or not. g_bFullscreen = !g_bFullscreen; // Remember to use DXGI_MWA_NO_ALT_ENTER when you call the DXGI method MakeWindowAssociation // so you control the fullscreen toggling in your application. >break; > >
Отключение сочетаний клавиш со специальными возможностями
Windows включает специальные возможности, такие как StickyKeys, FilterKeys и ToggleKeys (см. раздел Специальные возможности Windows). Каждый из них служит для разных целей; StickyKeys, например, предназначен для людей, которым трудно удерживать две или более клавиши одновременно. Каждая из этих специальных возможностей также имеет сочетание клавиш, которое позволяет включать или выключать функцию. Например, сочетание клавиш StickyKeys активируется нажатием клавиши SHIFT пять раз. Если клавиша SHIFT также используется в игре, пользователь может случайно активировать этот ярлык во время игры. При активации ярлыка Windows (по умолчанию) выводит предупреждение в диалоговом окне, что приведет к свертыванием игры, работающей в полноэкранном режиме. Это, конечно, может иметь резкое влияние на игру.
Специальные возможности требуются для некоторых клиентов и сами не мешают полноэкранным играм; Поэтому не следует изменять параметры специальных возможностей. Однако, так как сочетания клавиш для функций специальных возможностей могут нарушить игровой процесс при случайном срабатывании, следует отключить ярлык специальных возможностей только в том случае, если эта функция не включена, вызвав SystemParametersInfo.
Ярлык специальных возможностей, отключенный SystemParametersInfo , остается отключенным даже после завершения работы приложения. Это означает, что необходимо восстановить параметры перед выходом из приложения. Так как приложение может завершить работу неправильно, необходимо записать эти параметры в постоянное хранилище, чтобы их можно было восстановить при повторном запуске приложения. Вы также можете использовать обработчик исключений для восстановления этих параметров в случае сбоя.
Отключение этих сочетаний клавиш
- Запишите текущие параметры специальных возможностей перед их отключением.
- Отключите ярлык специальных возможностей, когда приложение переходит в полноэкранный режим, если функция специальных возможностей отключена.
- Восстановите параметры специальных возможностей, когда приложение переходит в оконный режим или выходит из нее.
Этот метод используется в DXUT и показан в следующем примере кода.
Этот метод работает при выполнении в учетных записях обычного пользователя.
Пример 2. Отключение сочетаний клавиш со специальными возможностями
STICKYKEYS g_StartupStickyKeys = ; TOGGLEKEYS g_StartupToggleKeys = ; FILTERKEYS g_StartupFilterKeys = ; INT WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) < // Save the current sticky/toggle/filter key settings so they can be restored them later SystemParametersInfo(SPI_GETSTICKYKEYS, sizeof(STICKYKEYS), &g_StartupStickyKeys, 0); SystemParametersInfo(SPI_GETTOGGLEKEYS, sizeof(TOGGLEKEYS), &g_StartupToggleKeys, 0); SystemParametersInfo(SPI_GETFILTERKEYS, sizeof(FILTERKEYS), &g_StartupFilterKeys, 0); . // Disable when full screen AllowAccessibilityShortcutKeys( false ); . // Restore back when going to windowed or shutting down AllowAccessibilityShortcutKeys( true ); >void AllowAccessibilityShortcutKeys( bool bAllowKeys ) < if( bAllowKeys ) < // Restore StickyKeys/etc to original state and enable Windows key STICKYKEYS sk = g_StartupStickyKeys; TOGGLEKEYS tk = g_StartupToggleKeys; FILTERKEYS fk = g_StartupFilterKeys; SystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(STICKYKEYS), &g_StartupStickyKeys, 0); SystemParametersInfo(SPI_SETTOGGLEKEYS, sizeof(TOGGLEKEYS), &g_StartupToggleKeys, 0); SystemParametersInfo(SPI_SETFILTERKEYS, sizeof(FILTERKEYS), &g_StartupFilterKeys, 0); >else < // Disable StickyKeys/etc shortcuts but if the accessibility feature is on, // then leave the settings alone as its probably being usefully used STICKYKEYS skOff = g_StartupStickyKeys; if( (skOff.dwFlags & SKF_STICKYKEYSON) == 0 ) < // Disable the hotkey and the confirmation skOff.dwFlags &= ~SKF_HOTKEYACTIVE; skOff.dwFlags &= ~SKF_CONFIRMHOTKEY; SystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(STICKYKEYS), &skOff, 0); >TOGGLEKEYS tkOff = g_StartupToggleKeys; if( (tkOff.dwFlags & TKF_TOGGLEKEYSON) == 0 ) < // Disable the hotkey and the confirmation tkOff.dwFlags &= ~TKF_HOTKEYACTIVE; tkOff.dwFlags &= ~TKF_CONFIRMHOTKEY; SystemParametersInfo(SPI_SETTOGGLEKEYS, sizeof(TOGGLEKEYS), &tkOff, 0); >FILTERKEYS fkOff = g_StartupFilterKeys; if( (fkOff.dwFlags & FKF_FILTERKEYSON) == 0 ) < // Disable the hotkey and the confirmation fkOff.dwFlags &= ~FKF_HOTKEYACTIVE; fkOff.dwFlags &= ~FKF_CONFIRMHOTKEY; SystemParametersInfo(SPI_SETFILTERKEYS, sizeof(FILTERKEYS), &fkOff, 0); >> >
Как включить и отключить игровой режим?
Геймеры вместе с Windows 10 Creators Update получили возможность улучшить производительность компьютера в играх за счёт использования нового «Режима игры». О том как его включить и при необходимости отключить, рассказывается в этой короткой заметке.
Советы и инструкции
| 19 апреля 2017 в 17:46
Для включения игрового режима достаточно перейти в панель Параметры → Игры → Режим игры и перевести в положение Вкл. переключатель Использовать режим игры. Для отключения соответственно нужно лишь перевести тот же переключатель в положение Откл.
Отключение системного режима игры может понадобиться при использовании аналогичных технологий от компаний AMD и Nvidia либо сторонних твикеров, оптимизирующих систему иными способами. В Windows 10 Creators Update включён он по умолчанию.
Для использования режима игры в связке с какой-то конкретной игрой, нужно запустить игру, вызвать игровую панель нажатием сочетания клавиш Win+G, перейти в панель Настройки ⚙ и установить галочку напротив пункта Использовать для этой игры игровой режим.
Операционная система самостоятельно определяет относится ли запущенная программа к играм или нет, но её возможности не безграничны. Указать Windows на необходимость использования игрового режима в нужной вам игре как раз и можно из игровой панели.
Как включить игровой режим на клавиатуре ?
Антонио Вивальди Оракул (72518) Отключение виндовс клавищи ни к чему хорошему не ведет однако. она вшита в систему.
А зачем нажимать на пуск?
Вася ПетросянУченик (236) 4 года назад
случайно вдруг нажму
Reyel Мудрец (17057) Сними клавишу
Наверное, на разных клавиатурах эта кнопка выглядит по разному и находится в разных местах, не? Кури мануал
Вася ПетросянУченик (236) 4 года назад
везде находится в одном месте, только в редких случаях
Phoenix Оракул (78250) На моей находится здесь, иди ищи у себя, раз везде одинаково
на всех клавах по разному, у меня это fn + f8
Похожие вопросы
Ваш браузер устарел
Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.
Игровой режим в Windows 10: как включить и не поседеть
В «Креаторс» для десятой Винды спецы Microsoft внедрили прикольные «плюшки» на радость игроманов. А именно — геймерский режим. Разбираемся что это и действительно ли он полезен для геймплея. А также немного «поколдуем» с параметрами операционки компа или ноутбука, чтобы запустить этот режим или, наоборот, прекратить его использование.
Читайте: Что лучше, ноутбук или компьютер (ПК)
Что такое игровой режим в Windows 10 и зачем он
Это уже встроенная в систему опция под названием Game Mode. Ничего скачивать и устанавливать для использования не нужно. Он внедрен, чтобы создать для геймеров супервозможности для игровых забав на компьютере.
В чем суть «Гейм Мод»? Геймплей получает максимальный приоритет после запуска на компе. Это должно обеспечить потрясающее качество графики и суперпроизводительность компьютерных игр. Кроме того, разработчики обещают поднять FPS за счет стопа ненужных, фоновых процессов во время геймплея.
Включение и отключение игрового режима Windows 10
Не займет много времени и не требует от юзера специальных знаний или навыков. Вникнуть в задачу можно 2 способами, детальнее о которых ниже.
Метод 1: параметры
Простая инструкция, как включить игровой режим в Windows 10.
- Зайти в параметры Винды → откроется окошко с несколькими подразделами (ищите игры) → кликаем на него и идем дальше.
- В «Игровом режиме» проверяем, чтобы ползунок возле надписи «Режим игры» был сдвинут в позицию «вкл». Сразу совет, как быстро отключить игровой режим в Windows 10 — просто переместить ползунок на «выкл».
Нюанс: В Fall Creators Update подобного переключателя не будет, только инфа, поддерживается ли геймерский режим на данном ПК.
Затем идем в меню игры. Там — перечень «горячих» клавиш, которые помогут прямо во время геймплея открыть игровой режим, сделать снимок экрана, записать фрагмент, включить/отключить микрофон и пр.
Комбинации можно менять на свое усмотрение или воспользоваться стандартным набором. Запоминаем комбинацию Win + G, она понадобится для активации игровой опции.
Метод 2: редактор реестра
- Запустить программу «Выполнить» через «Пуск».
- В поле «Открыть» написать «regedit» и жать Ок.
- Сделать так, как указано на скрине 1, чтобы попасть в GameBar.
- Клацнуть Правка (на верхней панели) → Создать → DWORD 32 бита → Переименовать вновь созданный параметр на AllowAutoGameMode.
- Дважды щелкнуть по нему кнопкой мышки, чтобы открылось окошко изменений.
- В поле «Значение» написать 1, чтобы включить геймерский режим и 0, если нужно деактивировать его.
Подтвердить действия, кликнув на Ок. Все.
Активация режима для игр
Большинство виртуальных развлечений будут работать на десятой Винде с автоматически запущенным геймерским режимом. Но в некоторых случаях опцию придется активировать вручную.
Пошагово, что для этого потребуется:
В дальнейшем игра будет всегда запускаться с активированным Game Mode, если его не отключить, убрав галочку в разделе использование игрового режима.
Итак, нужна ли помощь геймерской опции во время компьютерного геймплея? Для ПК с «продвинутыми» аппаратными характеристиками, дискретной видеокартой, min количеством запущенных фоновых процессов прирост ФПС незначительный или отсутствует. Это можно проверить, например, с помощью сторонних прог, таких как Fraps, PlayClaw.
Важно: Game Mode может помешать при записи видео с экрана и использования для этого дополнительных приложений. В этом случае целесообразно будет деактивировать его.
Использовать геймерскую опцию стоит для ПК:
- с интегрированной видеокартой (как здесь S3730);
- средними характеристиками;
- при запуске 3, 4 и более фоновых прог.
Именно в этих условиях можно ощутимо увеличить ФПС. В любом случае, стоит потестить «Гейм Мод» на своем компе и в любимых играх, ведь опцию «вкл/выкл» можно буквально за 2-3 сек.