AutoHotKey: Como fazer meu script ser executado apenas dentro de um programa específico?

0

Eu fiz um script AHK que adiciona metadados a clipes de vídeo no Avid Media Composer (software de edição de vídeo). Ele faz isso digitando todos os sub-menus necessários e envia cliques do mouse para locais na tela que facilitam uma tarefa trabalhosa quando é necessário fazer isso repetidamente o dia todo.

No entanto, quero que o script seja executado apenas no Avid Media Composer e nada mais. Existem outros sistemas de armazenamento conectados à máquina e eu não quero que o script vá para outros arquivos / pastas fazendo acidentalmente quem sabe o que fazer com dados importantes.

Eu tentei usar #IfWinActive, mas não sou muito experiente e não sei por que não consigo trabalhar.

Aqui está o que eu preciso fazer:

Se o 'Avid Media Composer' for a janela ativa, execute 'Meu Código'. Se algo além do Avid Media Composer for a janela ativa, o Msgbox 'Avid Media Composer deve ser a janela ativa para executar esta tarefa'.

-

Título da janela, classe e processo

Avid Media Composer Mojo DX

ahk_class Qt5QWindowIcon

ahk_exe AvidMediaComposer.exe

-

Meu código:

F3::

 {
    BlockInput, MouseMove
    Hotkey, LButton, DummyLabel, On
    Hotkey, RButton, DummyLabel, On
    Hotkey, MButton, DummyLabel, On
    Sleep, 20
    Send, {LAlt}
    Sleep, 20
    Send, {Right}
    Sleep, 200
    Send, {Right}
    Sleep, 20
    Send, {Right}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Right}
    Sleep, 20
    Send, {Enter}
    Sleep, 100
    MouseClick, Left, 107, 30
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Down}
    Sleep, 20
    Send, {Enter}
    Sleep, 100
    MouseClick, Left, 346, 38
    Sleep, 200
    Send, ^v
    Sleep, 200
    Send, {Enter}
    Sleep, 200
    Send, {Enter}
    Sleep, 200
    MouseClick, Left, 91, 102
    Sleep, 100
    MouseClick, Left, 92, 100
    Sleep, 100
    MouseClick, Left, 143, 154
    Sleep, 100
    Send, {Down}
    BlockInput, MouseMoveoff
    Hotkey, LButton, DummyLabel, Off
    Hotkey, RButton, DummyLabel, Off
    Hotkey, MButton, DummyLabel, Off

 }
return

DummyLabel:
return

Qual é o código correto para esta série de comandos para rodar somente no próprio Avid Media Composer e nada mais?

Muito obrigado por qualquer ajuda antecipada.

    
por Myles 13.09.2018 / 12:20

1 resposta

1

Você deve dar uma olhada nas seguintes referências:

De acordo com sua informação, os três itens a seguir são todos possíveis:

SetTitleMatchMode, 2
#IfWinActive Avid Media Composer

#IfWinActive ahk_class Qt5QWindowIcon

#IfWinActive ahk_exe AvidMediaComposer

Exemplo:

SetTitleMatchMode, 2
#IfWinActive Notepad
F3:: MsgBox, IN
return
#IfWinNotActive Notepad
F3:: MsgBox, OUT
return
    
por 13.09.2018 / 14:15