Desativar a funcionalidade ALT após o início de um aplicativo usando o AutoHotKey

0

Eu estava procurando uma maneira de desabilitar a funcionalidade alt que prepara um menu compatível com o mnemônico para ser usado com o teclado, esperando que uma letra seja pressionada mas, aparentemente, isso não é possível pelo próprio Windows, pelo menos não o Windows 7 (eu não conheço os outros).

O problema é apenas com o Adobe Premiere no qual o alt é usado, entre outras coisas, para ampliar e reduzir a linha do tempo / sequência e eu faço muito isso porque eu faço sincronia labial frame-by-frame.

A coisa é que quando eu libero a tecla alt , algumas vezes, sua funcionalidade relacionada ao menu permanece e um uso imediato das teclas de seta para mover o cursor ...? na linha do tempo / sequência em vez de navegar pelos quadros de vídeo, navego pelos menus.

Apesar de frustrante, pressionando alt novamente imediatamente após parar de rolar a roda do mouse para cima / baixo, posso manter um fluxo contínuo de trabalho. É apenas por um milissegundo, mas apenas extrapolar isso para uma tarefa muito demorada em que 2-3 minutos podem levar de 2 a 3 horas para terminar.

De qualquer forma ... Ao procurar por uma abordagem alternativa, encontrei alguém com o mesmo problema, mas com > Adobe Photoshop e outra pessoa sugeriu um aplicativo chamado apssistant que, infelizmente, é apenas para Photoshop, mas também uma solução com AutoHotKey.

Eu sempre tentei evitar o AHK porque eu nunca gostei de programas rodando em segundo plano e, neste caso em particular, todo o poder de memória e / ou processamento é vital, considerando que eu não tenho configuração de hardware superior. A última vez que meu PC parou de funcionar várias vezes devido à complexidade do projeto com o Premiere consumindo mais de 7 GB de RAM.

Mas eu dei um tiro combinando a sugestão original:

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

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

I'm positive that this works because I tested in a Windows Explorer window and, although the menu blinks, it doesn't fire.

com uma maneira de acionar o Premiere e executar o script completamente:

#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

Mas, até onde eu sabia, isso não funcionou, porque quando o Premiere finalmente foi carregado (sem SSD aqui ainda) eu abri meu último projeto e a funcionalidade ALT ainda estava no lugar.

Estou executando o segundo script por meio de um atalho na área de trabalho, os dois scripts estão no mesmo diretório e os arquivos AHK estão configurados corretamente para executar manualmente com o AutoHotScript x64 (versão portátil) - o ícone da bandeja mostra que o script está sendo executado de fato DisableALTFunctionality.ahk .

Mas, mesmo aumentando o tempo limite para algo como 5 minutos, não tive sucesso.

    
por Bruno Augusto 31.07.2018 / 15:03

1 resposta

1

Você pode usar o #If - ou o #IfWinActive - diretiva para desabilitar a funcionalidade ALT neste programa:

#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

Experimente também:

#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
    
por 31.07.2018 / 17:38