Я искал способ отключить функцию alt, которая подготавливает мнемоническое меню для использования с клавиатурой, ожидая нажатия буквы, но, по-видимому, это не возможно самой Windows, по крайней мере, не Windows 7 (Я не знаю других).

Проблема только в Adobe Premiere, в которой alt используется, среди прочего, для увеличения и уменьшения масштаба / последовательности, и я часто это делаю, потому что я делаю покадровую синхронизацию губ.

Дело в том, что когда я отпускаю клавишу alt , иногда остаются связанные с меню функциональные возможности и немедленное использование клавиш со стрелками для перемещения ... курсора? во временной шкале / последовательности вместо навигации по видеокадрам я перемещаюсь по меню.

Несмотря на разочарование, снова нажав alt сразу после остановки прокрутки колесика мыши вверх / вниз, я могу поддерживать непрерывный рабочий процесс. Это просто на миллисекунду, но просто экстраполируем это на очень трудоемкую задачу, в которой 2-3 минуты могут занять 2-3 часа, чтобы закончить.

Тем не мение... При поиске альтернативного подхода я нашел кого-то с той же проблемой, но с Adobe Photoshop, и кто-то еще предложил приложение apssistant , к сожалению, только для Photoshop, но также решение с AutoHotKey.

Я всегда старался избегать AHK, потому что мне никогда не нравились программы, работающие в фоновом режиме, и, в данном конкретном случае, каждый бит памяти и / или вычислительной мощности жизненно важен, учитывая, что у меня нет аппаратной конфигурации высшего уровня. В прошлый раз мой компьютер несколько раз переставал работать из-за сложности проекта, когда Premiere потребляла более 7 ГБ ОЗУ.

Но я дал ему шанс объединить оригинальное предложение:

#NoEnv
; #Warn  ;
~LAlt::
KeyWait, LAlt
return

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

Я уверен, что это работает, потому что я тестировал в окне Windows Explorer и, хотя меню мигает, он не срабатывает.

с возможностью запуска Premiere -AND- полностью запустить скрипт:

#NoEnv
; #Warn  ;#Persistent   ;Script will not Exit when no hotkeys exist.

Run, "C:\Program Files\Adobe\Adobe Premiere Pro CC 2017\Adobe Premiere Pro.exe"

SetTitleMatchMode, 2   ;Program Title can be portions of the title instead of the full title
SetTimer, CheckPrograms, 1000   ;Run CheckPrograms subroutine every 1 second
return

CheckPrograms:
IfWinExist, Premiere
{
    Run, DisableALTFunctionality.ahk
    ;PremiereTrack = 1
}
IfWinNotExist, Premiere
    ;PremiereTrack = 0
    Exitapp
return

Но, насколько я могу судить, это не сработало, потому что, когда Premiere наконец загрузился (здесь еще нет SSD), я открыл свой последний проект, и функциональность ALT все еще работала.

Я запускаю второй сценарий с помощью ярлыка на рабочем столе, оба сценария находятся в одном и том же каталоге, и файлы AHK правильно настроены для запуска с AutoHotScript x64 вручную (переносная версия) - значок в трее показывает, что выполняемый сценарий действительно является DisableALTFunctionality.ahk

Но даже увеличив время ожидания до 5 минут, я не добился успеха.

1 ответ1

1

Вы можете использовать директиву #If или #IfWinActive для отключения функции ALT в этой программе:

#NoEnv
; #Warn  ;#Persistent  ; Script will not Exit when no hotkeys exist.

SetTitleMatchMode, 2   ; Program Title can be portions of the title instead of the full

#IfWinActive, Premiere

    LAlt::
    RAlt:: return     ; do nothing

    !WheelDown:: Send, {Alt Down}{WheelDown}{Alt Up}    ; ! means Alt

    !WheelUp:: Send, {Alt Down}{WheelUp}{Alt Up}


#IfWinActive          ; turn off context sensitivity

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

#NoEnv
; #Warn  ;#Persistent  ; Script will not Exit when no hotkeys exist.

SetTitleMatchMode, 2   ; Program Title can be portions of the title instead of the full

#IfWinActive, Premiere

    LAlt up::
    If (A_PriorKey = "LAlt") ;  If LAlt was pressed alone
        return ; do nothing
    return

    ; In this case its necessary to define a custom combination by using "LAlt &" or "<!" 
    ; to avoid that LAlt loses its original function as a modifier key:
    <!F4:: Send {Alt Down}{F4}{Alt Up} ; <! means LAlt


#IfWinActive          ; turn off context sensitivity

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