Вимкніть (відключити) гарячі клавіші Win + Arrow за замовчуванням, щоб зробити їх корисними для інших програм


9

У Windows 7 я хотів би від’єднати типовий Win+ Up/ Down/ Left/, Rightщоб вони могли бути пов'язані безпосередньо * в інших додатках. Як це можна зробити?

Ці гарячі клавіші легко відключити :

  1. Перейшовши до Центру простоти доступу ,
  2. вибір Зробити клавіатуру простішою у використанні та
  3. Перевірка Попередження автоматичного розташування вікон при переміщенні до краю екрана :

    Налаштування

Але навіть при використанні цього параметра та відключенні гарячих клавіш (вони нічого не роблять) гарячі клавіші все ще не можуть бути пов'язані в інших програмах.


Я спробував такі способи, і жоден із цих способів не працює :

  1. Внесення змін до Центру простоти доступу
  2. Увімкнення політики Вимкніть гарячі клавіші Windows + X , те саме, що встановити: HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoWinKeysв 1. (При такому налаштуванні відповідні гарячі клавіші все ще працюють як завжди.)
  3. Вимкнення ключа Windows, як описано в KB216893 , встановленням System\CurrentControlSet\Control\Keyboard Layout\Scancode Map. Це повністю відключає ключ Windows, так що його не можна нікуди прив'язувати чи використовувати.
  4. Увімкнення політики Вимкнення Центру мобільності Windows


Деякі googling виявили цю публікацію :

комбінації клавіш Win + Arrow є однією з кількох (разом з Win + P, Win + U і Win + L), які якимось чином "супер-зареєстровані / зарезервовані" в Windows 7. Я намагався відстежити, де і коли вони зарезервовані, але поки що вийшли порожніми. Я також випробував різні хитрощі, щоб зарезервувати їх до того, як Windows отримає шанс, але поки нічого не працює. Ці комбінації клавіш просто заблоковані в Windows на глибокому, внутрішньому рівні, незалежно від того, ви їх використовуєте чи ні.

Цей хлопець не знайшов способу, але, можливо, хтось із вас знає більше. Можливо, є якийсь dll / exe, який ми можемо легко виправити. ;-)

*) Я хотів би уникати використання інших інструментів, таких як AutoHotKey, щоб підключити гарячу клавішу та перевстановити її на щось інше, що може бути пов'язано в загальних програмах.


Ви спробували змінити HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Policies \ Explorer \ NoWinKeys? У вашому запитанні сказано, що ви змінили його в HKCU. Створіть ключ, якщо його немає, перезавантажте та подивіться, чи має він якийсь ефект.
Зак Б

Відповіді:


7

Цей хлопець не знайшов способу, але, можливо, хтось із вас знає більше.

Не схоже. Я намагаюся знайти спосіб запобігти Windows Vista + від натискання гарячих клавіш з моменту їх виходу.

Справа в тому, що на відміну від більшості гарячих клавіш Windows, які можна відключити за допомогою NoWinKeysналаштування, є кілька, які не зареєстровані через Windows Explorer. Натомість, CSRSS вищого (нижчого?) Рівня зареєструє кілька гарячих клавіш на початку завантажувального процесу, тому ви не тільки не можете їх зареєструвати спочатку, але й немає налаштування не використовувати їх. Ці ключі обробляються спеціально:

Win + P
Win + L
Win + U
Win + G
Win + X
Ctrl + Shift + Esc
Ctrl + Alt + Del

Вони можуть бути замінені певними програмами, такими як AutoHotkey, але не тим способом, який ви шукаєте (дозволяючи програмам реєструвати їх у всьому світі).

Можливо, є якийсь dll / exe, який ми можемо легко виправити. ;-)

Це теж досить малоймовірно. Це зажадає злому основних компонентів Windows, і навіть якщо місце, де зареєстровані гарячі клавіші, знайдене та виправлене, це означатиме, що вам доведеться не допускати, щоб програмне забезпечення безпеки розглядало патч як інфекцію, і обов’язково повторно застосовувати патч після кожного Оновлення Windows.


Ви можете спробувати Windows Hotkey Explorer, який використовує гачки Windows для визначення джерела глобальних гарячих клавіш. На жаль, це відображає лише ці спеціальні комбінації як зарезервовані System, це означає, що вони завантажені ядром Windows. Що ще цікавіше з WHE, це те, що він говорить те саме для цих клавіш навіть у Windows XP, де вони не використовуються. Це означає, що вони насправді не читаються, як інші, а замість жорсткого коду, що, на жаль, означає, що навіть при низьких гачках Windows, WHE не може безпосередньо отримати доступ до них. Це робить особливо малоймовірним, що будь-який простий патч, драйвер тощо може бути зроблений, щоб уникнути їх зв'язання.


На жаль, найкращим, найефективнішим рішенням буде залишити відгук Майкрософт та сподіватися, що вони його змінять у майбутньому оновлення, але це рідко, якщо коли-небудь спрацює.

У моєму випадку я просто поступився і змінив свої гарячі клавіші XMPlay, щоб замість цього використовувати клавіші зі стрілками на цифровій клавіатурі.


Трохи пов'язані: я знайшов цю тему "RegisterHotkey - список?" яка містить цікаву інформацію, яка може допомогти знайти місце встановлення гарячої клавіші. Якщо я правильно розумію на Vista (і я вважаю, що Win7) є _gphkHashTableфункція ядра, яку ви можете використовувати для отримання списків зареєстрованих гарячих клавіш. Гуглінг для нього знаходить лише деякі китайські сайти - я думаю, що лише деякі хлопці в Китаї люблять грати з цим. ;-)
Qtax

Це є можливим, але ви повинні встановити гак , щоб отримати на інформацію, а потім написати та встановити драйвер для завантаження на початку процесу завантаження , щоб виправити код в пам'яті , щоб уникнути виправлення файлу на диску.
Synetech

0

Для цього є щонайменше два інструменти.

Перший - Microsoft Keyboard Layout Creator

введіть тут опис зображення

Другий - KeyTweak

введіть тут опис зображення

Для отримання додаткової інформації щодо пов'язаного питання: Програма перепрограмувати мою клавіатуру?


1
Як клавіші перестановки допомагають розв'язати відповідні гарячі клавіші? Як це відповідає на питання?
Qtax

Єдине, що ви можете зробити з цим «рішенням» - це перезавантажити клавіатуру, щоб не мати клавіші Windows, замінивши її іншим кодом сканування, а потім зіставити цю клавішу. НЕ хороше рішення, оскільки все, що намагається використовувати ключ Win ні для чого, було б непридатним.
Майкл Коне

Тут просто здогадуєтесь, але ви теоретично зможете створити фальшивий WinKey, зареєструйте обробника, щоб отримати всі пов’язані події та просто перезавантажити події за допомогою справжнього ключа Windows. Це дасть вам спосіб налаштувати будь-яке відображення, пов’язане з WinKey, як хочете ... Хоча, не знаю, якщо можливо ...
Vajk Hermecz

0

AutoHotkey може змінювати та робити все, що завгодно, за допомогою клавіш швидкого доступу Windows.
Дивіться цю документацію: Перезапис або вимкнення гарячих клавіш .

AutoHotkey також може робити свої дії залежними від поточного вікна або процесу, фактично прив'язуючи ключі по-різному до різних процесів. Див., Наприклад, Активізація та маніпулювання вікнами .

Для отримання додаткової інформації про AutoHotkey див.

Підручник та огляд
Документації щодо автоматичної клавіші


3
Вони чітко сказали, що не хочуть використовувати AutoHotkey. Якщо ви не знаєте, як AHK дозволить іншим програмам прив'язувати ці клавіші, я не бачу, як це стосується питання.
Synetech

Ви можете підключити гарячі клавіші в AutoHotkey, щоб вони нічого не робили або виконували якусь дію в AHK, але це не дозволяє вам зв’язувати ці гарячі клавіші в будь-якому іншому додатку, про який і було питання. (Ось чому я сказав у запитанні, що відповіді AHK не викликають особливого інтересу.)
Qtax

@Qtax: Прив’язка ключа Auto -otkey за вікном / процесом здавалася мені рішенням. Чому це не працює для вас?
harrymc

1
@harrymc, тому що якщо, наприклад, він хотів використовувати Winamp Win+Leftдля перемотування назад, немає можливості зробити AutoHotkey це зробити. Я припускаю, що ви можете підробити це, скориставшись Winamp іншим ключем, скажімо, Win+Aщоб перемотати назад, а потім написати сценарій AHK, який визначає, коли ця клавіша натиснута під час активного вікна Winamp Win+A, а потім надсилає Winamp , але це безглуздо, оскільки вся суть для глобальних гарячих клавіш - це змусити їх працювати незалежно від того, яке вікно активне.
Synetech

1
@Qtax: Я не знаю кращого рішення. Мої вибачення, якщо я припускав відсутність знань щодо AHK з вашого боку.
harrymc

0

Ви можете додати такий реєстр [WIN + R -> regedit.exe]:

HKEY_CURRENT_USER \ Програмне забезпечення \ Microsoft \ Windows \ CurrentVersion \ Політика \ Система + праворуч, створіть новий 32-розрядний DWORD + двічі клацніть на новоствореній записи DisableLockWorkstation та змініть її значення з 0 (нуль) на 1 (один).

Реф. http://www.intowindows.com/how-to-disable-windowsl-shortcut-key-in-windows-78-1/

PS. Немає необхідності у перезапуску xD


У статті та налаштуваннях йдеться про гарячу клавішу Win + L. Це від’єднує клавіші win + arrow?
Qtax

Ні, це насправді лише розв’язує win + L. Але бачачи, що це можливо, я думаю, що є спосіб функцій стрілок.
aemonge
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.