Отключить активацию строки меню при нажатии Alt в Windows 7

17

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

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

mjsr
источник

Ответы:

2

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

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

KCotreau
источник
9
Должен быть комментарий.
Моав
@Moab Я думал, что это был ответ, но я буду более ясным.
Котро
@KCotreau: Как вы говорите, есть способ получить строку меню, поэтому для меня нет необходимости в том, что клавиша ALT производит это.
MJSR
@voodoomsr Но если у вас нет ALT, и вы ранее не выставляли его постоянно, вы были бы заблокированы, нет?
Котро
Для программы легко отключить Alt глобально, но тестирование это сложно. Нет никаких гарантий, что другая программа не будет перехватывать вызов перед вами. , ,
Surfasb
12

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

~LAlt Up:: return

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

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

~LWin Up:: return
~RWin Up:: return
zengabor
источник
6
Этот должен быть принятым ответом.
Торн
Смотрите мой ответ ниже для решения, которое также работает с комбинацией клавиш Alt + Shift.
Anrieff
3

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

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

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

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

Fuhrmanator
источник
Я использую аналогичный подход, используя SharpKeys, переназначение реестра! : D
mjsr
Преобразован через SharpKeys (KeyTweak не может установить, просто тихо завершает работу. Возможно, он не работает с XP?) , Перезагрузился, но фокус не сработал.
Привет, Ангел,
2

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

surfasb
источник
Я пытаюсь использовать autohotkey, но у меня есть проблемы, которые я объясняю в двух вопросах, которые я публикую на форуме AutoHotkey, вот наиболее связанный: autohotkey.com/forum/viewtopic.php?t=74033
mjsr
2

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

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

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

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

JinSnow
источник
Поначалу кажется, что это работает, но затем нажатие Ctrl-Z, например, после нажатия и отпускания Alt, не работает в первый раз.
Александр G
1

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

  1. Нажмите клавиши Windows + R, введите Regedit и нажмите Enter.
  2. Перейдите к HKEY_CURRENT_USER\Control Panel\Accessibility\Keyboard Preference
  3. Теперь создайте или измените вызываемое строковое значение (REG_SZ) Onи установите для него значение 1
  4. Выйдите из системы, чтобы компьютер вступил в силу.
Йенс Марчевка
источник
2
Вместо того, чтобы публиковать один и тот же ответ на несколько вопросов, вы должны специально адаптировать свой ответ в соответствии с ОП. Если вопрос абсолютно идентичен и на него можно ответить с помощью одного и того же ответа, вам следует пометить флажок, чтобы закрыть один из вопросов как дубликат, а не публиковать повторяющиеся ответы.
Мокубай
1
у меня нет времени искать, как модераторы должны отмечать дубликаты, извините, может быть, вы могли бы сделать это? вместо того, чтобы неуклюжий человек, который поддерживает с решениями.
Йенс Марчевка
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
anrieff
источник
1

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

~LAlt::
KeyWait, LAlt
return

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

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

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

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

user3419297
источник
Смотрите мой ответ ниже для решения, которое также работает с комбинацией клавиш Alt + Shift.
Анрифф
1

Ни одно из представленных здесь решений на основе 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

Просто опубликовать решение, которое я нашел вокруг. Убивает любое Altменю на 100%

Alt::
KeyWait, Alt
return

LAlt Up::
if (A_PriorKey = "Alt")
    return
return

Если вы тоже предпочитаете, вы можете ограничить это решение одной программой:

#IfWinActive ahk_exe sublime_text.exe
    Alt::
    KeyWait, Alt
    return

    LAlt Up::
    if (A_PriorKey = "Alt")
        return
    return
#IfWinActive
  1. https://www.autohotkey.com/boards/viewtopic.php?p=248473#p248473
пользователь
источник