2012-02-07 26 views
6

मैं वर्करेव आराम अनुस्मारक का उपयोग कर रहा हूं और बाकी विंडो दिखाई देने पर मेरी स्क्रीन बंद करना चाहता हूं। मुझे पता है कि इसे कैसे बंद करें।ऑटोहोटीकी विंडो घटना दिखाई देती है

निर्दिष्ट विंडो के दौरान एक ईवेंट कैसे बनाएं (#IfWinActive ahk_class ...) प्रकट होता है?

इसके अलावा, क्या मैं% प्रतीक बांध सकता हूं? {%} अन्य लोगों की बजाय काम नहीं करता है।

+0

रोमेल, क्या आप विंडोज़ जासूस खोल सकते हैं जब यह वर्कराव बाकी अनुस्मारक सक्रिय है? आप एएचके आइकन पर राइट-क्लिक करके विंडोज जासूस खोलते हैं। विंडो जासूस हमेशा शीर्ष पर होगा। जब आप वर्करेव स्क्रीन को सक्रिय करते हैं, तो आपको विवरण (सहित। Ahk_class) देखना चाहिए। मुझे नहीं पता कि यह% साइन के साथ क्या करना है। –

+0

रोमाले, अब तक कोई किस्मत? –

+0

1. विंडोज जासूस शीर्ष चेतावनी पर वर्क्रेव के पहले ठहरने को नहीं पकड़ सकता है। लेकिन मैंने इसे विंडो सूची (ahk_class) के माध्यम से पकड़ लिया है। जब यह प्रतीत होता है, तो मैं एक कार्रवाई कैसे बांध सकता हूं? 2. उदाहरण, काम नहीं करता है: 5 :: {%} % :: {5} –

उत्तर

8

एक खिड़की दिखाई देने की तत्काल अधिसूचना रखने के लिए, शैल हुक का उपयोग करें। यह कभी-कभी इतना तेज़ होता है कि ऑटोहोटीकी आपके सामने खिड़की को देखने से पहले प्रतिक्रिया दे सकती है।

AutoHotkey Forum पर एक खोल हुक प्रदर्शित किया गया है।

अपने उपयोग (लगभग मंच पद से शब्दशः नकल की) के साथ एक उदाहरण:

#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 
    } 
} 

आप एक आदेश में एक शाब्दिक% प्रतीक का उपयोग करने के लिए, AutoHotkey के एस्केप वर्ण, बैकटिक `साथ यह बच (चाहते हैं यूएस कीबोर्ड पर ~ की तरह ही कुंजी पर)

MsgBox You are 200`% awesome! 
+0

यह शानदार है और बहुत अच्छा काम करता है! [इस उत्तर] पर एक नज़र डालें (http://superuser.com/a/266240/16847) साथ ही साथ। क्या आप अपनी स्क्रिप्ट को भी ऐसा करने के लिए डिज़ाइन कर सकते हैं? अर्थात। सभी मौजूदा विंडोज़ का पता लगाएं और देखें कि क्या पहले देखा गया था या नहीं? – Vijay

0

Romale,

आप इस कोशिश कर सकते हैं, लेकिन जब से मैं Workrave का उपयोग नहीं करते, मैं यह परीक्षण नहीं कर सकते।

; 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 
संबंधित मुद्दे