AutoHotKey - Bazı eylemleri çalıştırdıktan sonra tekrar pencereye odaklanma


0

Capslock'u ArtRage tam ekran moduna (çalışma modu) çeviren bir kısayol tuşu olarak ayarlamak için AHK 1.1 kullanıyorum, çünkü bunu yapıyorum, çünkü ArtRage CapsLock'u kısayol tuşu olarak ayarlamama izin vermiyor birçok programda bunu yapmanın anahtarı, bu yüzden AHK'nın bana yardım edebileceğini düşündüm.

Bunu denedim ve işe yaradı:

;   AR4 Toggle Workbench Mode
If WinActive("ahk_class ArtRage 3")

Capslock::
Sleep 20
Send {SC037 Down}   ;   NumpadMult
Sleep 10
Send {SC037 Up} ;   NumpadMult
Sleep 90
WinActivate, ahk_class ArtRage 3
return

#If

Bu yüzden komut dosyası iyi çalışıyor ancak bir şekilde ArtRage penceresi odaklanmayı kaybediyor, demek istediğim ArtRage penceresini hala görüyorum, ancak başka bir AHK kısayol tuşu çalıştırmak istersem odaklanmayı kaybettiğini fark ettim. #If WinActive("ahk_class ArtRage 3") ) yukarıdaki komut dosyası yapıldıktan hemen sonra, ArtRage penceresini açık olarak algılamayacak, bu yüzden ArtRage penceresini el ile tıklatmadığım sürece çalışmaz.

Sonrasında tekrar odaklanmaya çalıştım. Capslock (geçiş Tezgah Modu) yapılır, ancak WinActivate, ahk_class ArtRage 3 ArtRage penceresine yeniden odaklanma, AHK'deki bir pencereye yeniden odaklanma için başka bir yol yok mu?

EDITED & gt; & gt; & gt; nasıl yerleştirebilirim IfWinExist("ahk_class ArtRage 3") Bir eylemin sonunda? cuz Ben sadece AHK betiğimin üstünde çalıştıramam çünkü diğer uygulamalarda doğru çalışsam bile, her zaman ArtRage'e odaklanacağım, değil mi? Bir örnek??

#If WinActive("ahk_class ArtRage 3")

Capslock::
Send {SC037 Down}   ;   NumpadMult
Sleep 30
Send {SC037 Up} ;   NumpadMult
Sleep 30
IfWinExist("ahk_class ArtRage 3")
    WinActivate, ahk_class ArtRage 3
return

#If

Yanıtlar:


0

Bunu deneyin (öncelikle bağımsız komut dosyası olarak):

;   AR4 Toggle Workbench Mode
#If WinActive("ahk_class ArtRage 3")

    Capslock::
    KeyWait, Capslock   ;  wait until Capslock is released 
    Sleep 20
    Send {NumpadMult}
    Sleep 90
    If !WinActive("ahk_class ArtRage 3")  ;  means: IfWinNotActive
    {
        Loop
        {           
            ;  Which window becomes active in this case?
            WinGetTitle, ActiveTitle, A
            WinGetClass, ActiveClass, A
            ToolTip, Active Window:`n%ActiveTitle%  ahk_class %ActiveClass%
            WinActivate, ahk_class ArtRage 3
            Sleep 50
            If WinActive("ahk_class ArtRage 3")
            {
                ToolTip
                break
            }                   
        }
    }
    return

#If

Esc:: ExitApp

Teşekkürler 3419297 kullanıcısı bunu denedim ve tezgah modu etkinleştirildiğinde bir şekilde ArtRage ( ahk_class ArtRage 3 ) olur ( ahk_class ToolWindow ). Bu yüzden sadece değiştiririm #If WinActive("ahk_class ArtRage 3") ile #If WinActive("ahk_class ArtRage 3") or WinActive("ahk_class ToolWindow") Tüm ArtRage eylemlerimde, bunun hakkında ne düşünüyorsun? btw AHK ToolTip, "Window Spy" bile o pencereyi tespit edemediği için sallıyor çünkü neden daha önce bahsetmediniz, tekrar teşekkürler.
litu16

# ("WinActive (" ahk_class ArtRage 3 ") veya WinActive (" ahk_class ToolWindow ")) tamamsa, deneyin.
user3419297

Merhaba, kullanıcı 3419297, fare koordinatlarına ilişkin bir sorunla karşı karşıya kaldım, çünkü tezgah modunu değiştirirken (tam ekran) fare musluğunun koordinatları çıldırdı (doğru değiller), bu yüzden her zaman göreceli koordinatları kullanmak istiyorum ekran, bana yardımcı olabilir misiniz, gelişmiş teşekkürler. superuser.com/questions/1151560/...
litu16
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.