17

В Windows 7 как отключить функцию, которая активирует строку меню при нажатии Alt ?

Существуют ли какие-либо значения реестра, чтобы изменить это поведение?

9 ответов9

12

Я уже использовал AutoHotkey , поэтому я добавил эту строку в мой скрипт, и это исправило это раздражающее поведение почти во всех приложениях:

~LAlt Up:: return

Это не работает в IE, но я все равно не использую IE. :)

Кстати, я также убил надоедливое всплывающее меню «Пуск» через:

~LWin Up:: return
~RWin Up:: return
3

Я нашел этот вопрос, потому что у меня новая клавиатура и иногда случайно нажимаю клавишу ALT при наборе писем в Gmail. Фокус теряется, и любые последующие нажатия клавиш передаются в мой браузер (что иногда может привести к очень раздражающим результатам).

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

В программе вы отображаете левый Alt на правый Alt и правый Alt на левый Alt. Это позволяет функциям Alt все еще работать несколько (Ctrl - Alt - Delete). Однако Alt- Tab частично сломан (по крайней мере, на моей Windows-7). Он позволяет частично перейти к другим приложениям, но когда вы отпускаете клавишу Alt, "выбор" следующего приложения не выполняется (однако вы можете сделать это одним щелчком мыши).

Жаль, что в Windows нет чего-то, что могло бы предотвратить потерю фокуса от случайных нажатий Alt. Например, клавиши Shift и Ctrl не имеют такого эффекта.

2

Это интересно. Я не знаю ни одной программы, кроме Autokey. Или просто в конечном итоге написать программу. Но нет настройки реестра. Это сломало бы тонны программ.

2

Ответ - нет. Как они могли это сделать? Если бы они сделали это, и кто-то отключил это, они бы отрезали людей от очень необходимых пунктов меню. Это был бы кошмар.

Единственное, что вы можете сделать, это жить с этим или постоянно активировать меню, щелкнув «Организовать»> «Макет»> «Строка меню».

1

Я искал решение той же проблемы: исправление реакции Windows на «Alt +Shift» (изменение языка ввода), но вы набираете опечатку и нажимаете Alt, а затем Shift, без наложения. В этом случае Windows интерпретирует одиночный Alt как "меню выбора", одиночный Shift ничего не делает, и любые символы, которые вы нажимаете впоследствии, выбирают и входят в случайные меню, которые вы не собирались открывать.

При использовании приложения для чата, такого как Skype, и вы владеете иностранным языком, переключение с помощью Alt+Shift происходит довольно часто, и вы можете сделать много глупостей в спешке.

@ user3419297 указал мне на его решение, которое я изменил, чтобы Alt+Shift происходил во всех случаях. Это только один # Если больше, но очень важный! Соответствующая выдержка:

; Disable stand-alone Alt key press: make Alt purely a modifier key.
; The If statement is required to get Alt+Shift work as expected. If it's not
; there, only [Press Alt], [Press Shift], [Release Shift], [Release Alt] would
; trigger the input language change. The other, more common sequence would be
; [Press Alt], [Press Shift], [Release  Alt], [Release Shift], but AutoHotKey
; would block it before it reaches Windows if the "#If" isn't there.
#If not GetKeyState("LShift", "P")
~LAlt::
    KeyWait, LAlt
return

; Make Alt+Something still work:
~LAlt Up::
    Send, {LAlt Up}
return

Мой полный сценарий также включает две функции Linuxish: Alt+F2 открывает "команду быстрого запуска", а нажатие правой клавиши Alt минимизирует текущее активное окно:

;==============================================================================
; AutoHotKey script for "Linuxifying" Windows 8.
; Based on suggestions on SuperUser (http://superuser.com/questions/1147370)
; 
; Written by: Veselin Georgiev
; Date      : 2016-11-18
;==============================================================================

; Optional: Make Alt+F2 bring up the "quick launch command" Window.
; In this case, it simulates the Windows logo key press. On Windows 8, the
; cursor would be in the search bar, which nicely emulates launching a
; command.
!F2::
    Sleep 200
    Send {LWin}
return

; Disable stand-alone Alt key press: make Alt purely a modifier key.
; The If statement is required to get Alt+Shift work as expected. If it's not
; there, only [Press Alt], [Press Shift], [Release Shift], [Release Alt] would
; trigger the input language change. The other, more common sequence would be
; [Press Alt], [Press Shift], [Release  Alt], [Release Shift], but AutoHotKey
; would block it before it reaches Windows if the "#If" isn't there.
#If not GetKeyState("LShift", "P")
~LAlt::
    KeyWait, LAlt
return

; Make Alt+Something still work:
~LAlt Up::
    Send, {LAlt Up}
return

; Optional: Make the right alt key minimize the currently visible window.
~RAlt Up::WinMinimize A
1

Эта автоматическая кнопка работает для меня в Windows 10:

Alt::Return ;Disables the key alt when it's pressed alone

(Ответ Зенгабора у меня не сработал).

Вся слава Рохведдеру

1

Это работает в моей системе с Autohotkey:

~LAlt::
KeyWait, LAlt
return

~LAlt Up::
Send, {LAlt Up}
return

Это заставляет LAlt вести себя просто как клавиша-модификатор, не вызывая никаких действий, если она нажата сама по себе (например, активируется строка меню текущего активного окна).

РЕДАКТИРОВАТЬ:

Попробуйте также это.

0

Ни одно из представленных здесь решений на основе AHK не сработало для меня. Однако, немного поиграв, я понял, что если вы соедините ALT с любым другим ключом до того, как он будет выпущен, он не будет выделять меню. Вместо того, чтобы тратить функциональную клавишу, я использовал неназначенный код сканирования, который никогда не используется ни для каких других целей.

LAlt::
sendinput, {LAlt down}
sendinput, {SC0E8 down} ;this is the scan code of an unassigned key. As long as you nor the system never use it for anything else, it can be used in THIS way to cancel the menu acceleration.
;tooltip, Lalt is pressed
KeyWait, LAlt
; That line is important, so that ALT does not continuously fire as you are holding it down.
;tooltip, Lalt was released
return

LAlt up::
sendinput, {LAlt up}
sendinput, {SC0E8 up}
;;;Unlike my 2nd keyboard, this method does not use the scan code as a strict "wrapper."
;;tooltip, 
return


RAlt::
sendinput, {RAlt down}
sendinput, {SC0E8 down}
;;tooltip, Ralt is pressed
KeyWait, RAlt
;;tooltip, Ralt was released
return

RAlt up::
sendinput, {RAlt up}
sendinput, {SC0E8 up}
;;tooltip, 
return

Видео объяснение:
https://www.youtube.com/watch?v=vRld4bVFrpU&lc=UgzMjkQd4rbmvRDqU9h4AaABAg

Ссылка на полный скрипт:
https://github.com/TaranVH/2nd-keyboard/blob/master/Taran's%20Windows%20Mods/Alt_menu_acceleration_DISABLER.ahk

0

как нашел где-то @MS

  1. Нажмите клавиши Windows + R, введите Regedit и нажмите Enter.
  2. Перейдите к HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Preference
  3. Теперь создайте или измените строковое значение (REG_SZ) с именем On и установите для него значение 1
  4. Выйдите из системы, чтобы компьютер вступил в силу.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .