2012-02-07 24 views
6

WorkRave dinlenme hatırlatıcısını kullanıyorum ve dinlenme penceresi belirdiğinde ekranımı kapatmak istiyorum. Nasıl kapatılacağını biliyorum.Autohotkey penceresi görünecek olay

Belirtilen pencere (#IfWinActive ahk_class ...) görüntülendiğinde bir olay nasıl oluşturulur?

Ayrıca,% sembolünü bağlayabilir miyim? {%}, diğerlerinin yerine çalışmıyor.

+0

Romale, Bu WorkRave dinlenme hatırlatıcısı etkin olduğunda pencereleri açabilir misiniz? Windows Spy'ı AHK simgesine sağ tıklatarak açarsınız. Pencere Spy her zaman üstte olacak. WorkRave ekranını etkinleştirdiğinizde ayrıntıları görmelisiniz (ahk_class dahil). % Işareti ile ne yapmak istediğinizi bilmiyorum. –

+0

Romale, şimdiye kadar herhangi bir şans? –

+0

1. Windows casusu, işçinin ilk görüşünü en üst düzeyde uyandırmaz. Ama onu pencere listesinden yakaladım (ahk_class). Bir eylemi göründüğünde nasıl bağlarım? 2. Örnek, çalışmıyor: 5 :: {%} % :: {5} –

cevap

8

Bir pencerenin anında bildirimini almak için bir Kabuk Kanca kullanın. Bu bazen o kadar hızlı ki, otomatik görüntü tuşu pencereyi kendiniz görmeden önce tepki verebilir.

AutoHotkey Forum'da bir kabuk kancası gösterilmektedir.

kullanımınıza (neredeyse forumu görevinden kelimesi kelimesine kopyalanan) ile bir örnek:

#Persistent 
SetBatchLines, -1 
Process, Priority,, High 

Gui +LastFound 
hWnd := WinExist() 

DllCall("RegisterShellHookWindow", UInt,hWnd) 
MsgNum := DllCall("RegisterWindowMessage", Str,"SHELLHOOK") 
OnMessage(MsgNum, "ShellMessage") 
Return 

ShellMessage(wParam,lParam) 
{ 
    If (wParam = 1) ; HSHELL_WINDOWCREATED := 1 
    { 
     WinGetTitle, Title, ahk_id %lParam% 
     If (Title = "WorkRest") 
      WinClose, ahk_id %lParam% ; close it immideately 
    } 
} 

sen (Autohotkey kaçış karakteri, ters tırnak `ile kaçış, bir komutla bir% sembolü kullanmak isterseniz (ABD klavyesinde olduğu gibi) ile aynı tuş üzerinde:

MsgBox You are 200`% awesome! 
+0

Bu harika ve harika çalışıyor! [Bu cevabı] (http://superuser.com/a/266240/16847) 'a da bir göz atın. Bunu yapmak için senaryonuzu tasarlayabilir misin? Yani Var olan tüm pencereleri de tespit edip daha önce görülüp görülmediğine bakın. – Vijay

0

Romale,

Bu deneyebilirsiniz ama Workrave kullanmayın çünkü, ben bunu test edemez.

; This next line needs to be added at the top of the AHK file, so it will be started as soon as AHK starts. 
; Every 120000 ms, it will launch the "WorkRave:" script to check if a window with WorkRave exists. 
SetTimer, WorkRave,120000 ; Run WorkRaveTester every 2 minutes = 120000 


; Somewhere else in the AHK file..... 
WorkRave: ; This is the label for the WorkRave script 
SetTitleMatchMode, 2 ; 2 = Matches the string WorkRave anywhere in the window title of IfWinExist 
IfWinExist, WorkRave ; When WorkRave window exists 
{ 
    TrayTip, WorkRave, Started ,1 ; Or whatever you want to do here.... 
} 
Return