AutoHotKey: Senaryomu sadece belirli bir programda çalıştırma


0

Avid Media Composer (video düzenleme yazılımı) içindeki video kliplere meta veri ekleyen bir AHK komut dosyası hazırladım. Bunu, gerekli tüm alt menülere girerek yapar ve fare tıklamaları ekrandaki tüm konumlara, zahmetli bir işi tüm gün ve daha fazla yapmak gerektiğinde kolaylaştırır.

Ancak, betiğin yalnızca Avid Media Composer'da çalışmasını ve başka hiçbir şey yapmamasını istiyorum. Makineye bağlı başka depolama sistemleri var ve betiğin neyin önemli verileri bildiğini yanlışlıkla yapan diğer dosyalara / klasörlere girmesini istemem.

#IfWinActive kullanmayı denedim, ancak çok deneyimli değilim ve neden işe yaramayacağımı bilmiyorum.

İşte yapmam gerekenler:

Etkin pencere 'Avid Media Composer' ise, 'Kodum' komutunu çalıştırın. Avid Media Composer dışında bir şey etkin pencere ise, Msgbox 'Avid Media Composer bu görevi çalıştırmak için etkin pencere olmalıdır'.

-

Pencere Başlığı, Sınıfı ve Süreci

Avid Media Composer Mojo DX

ahk_class Qt5QWindowIcon

ahk_exe AvidMediaComposer.exe

-

Kodum:

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

Bu komut dizisinin yalnızca Avid Media Composer'in kendisinde ve başka hiçbir şeyde çalıştırmaması gereken doğru kod nedir?

Herhangi bir yardım için şimdiden teşekkür ederiz.

Yanıtlar:


2

Aşağıdaki referanslara bir göz atmalısınız:

Bilgilerinize göre aşağıdaki üç olası:

SetTitleMatchMode, 2
#IfWinActive Avid Media Composer

#IfWinActive ahk_class Qt5QWindowIcon

#IfWinActive ahk_exe AvidMediaComposer

Örnek :

SetTitleMatchMode, 2
#IfWinActive Notepad
F3:: MsgBox, IN
return
#IfWinNotActive Notepad
F3:: MsgBox, OUT
return

Merhaba, cevabınız için teşekkürler. Bir deneyeceğim. Bunu her şeyden önce betiğimin başına ekleyeyim mi?
Myles

1
Evet. Ardışık bile olabilir #IfWinActive komut dosyasındaki komutlar, her biri onu izleyenlerle ilgilidir.
harrymc

Sadece #IfWinActive Avid Media Composer yazdığım bir testi daha sonra Msgbox için altındaki kodu izledim, This A Avid. Sonra bunun altında da #IfWinNotActive Avid Media Composer yazıp Msgbox için altındaki kodu yazdım, bu Avid DEĞİLDİR. Ancak, çalıştırdığımda, Avid Media Composer yazılımının içinde veya dışında olup olmadığına kısayol tuşuna bastığımda her iki mesaj kutusunu da görebiliyorum.
Myles

boşver ben çözdüm. Bu çalıştı. Birkaç test daha yapacak ve her şey yolundaysa cevaplandı olarak işaretleyeceğiz.
Myles

Her şey yükseltildi + Soru Cevaplandı. Teşekkürler
Myles
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.