आप हर दिन की शुरुआत बेहतरीन इरादों के साथ करते हैं, तरोताजा होकर, अपने सभी कार्यों से निपटने के लिए तैयार रहते हैं। फिर, आप समय की जांच करते हैं, यह 03:00 पूर्वाह्न है, और आप मदद नहीं कर सकते हैं, लेकिन आश्चर्य है कि सारा समय कहाँ चला गया है?

आप एक समर्पित टाइम-ट्रैकिंग ऐप का उपयोग कर सकते हैं, लेकिन वे कष्टप्रद रूप से जटिल हो सकते हैं। इसके अलावा, इसमें मजा कहां है?

इसके बजाय अपना खुद का सरल मिनी-ऐप क्यों न बनाएं, जो उन सभी विंडो को ट्रैक कर सके, जिन पर आपने दिन में समय बिताया है? आपको केवल AutoHotKey, नोटपैड जैसे मूल वर्ड प्रोसेसर और लगभग आधे घंटे की आवश्यकता होगी। चलो फंस जाओ।

ऑटोहॉटकी क्या है?

AutoHotKey का प्राथमिक उद्देश्य डेस्कटॉप ऑटोमेशन है। यह एक स्क्रिप्टिंग भाषा है जिसके साथ आप किसी भी सक्रिय विंडो पर कीस्ट्रोक्स और माउस मूवमेंट भेज सकते हैं, हॉटकी बना सकते हैं या कीप्रेस को संशोधित कर सकते हैं। उदाहरण के लिए, आप इसका उपयोग कर सकते हैं अपने कीबोर्ड पर विशिष्ट कुंजियों को अक्षम करें.

हालाँकि, यह कहानी का संक्षिप्त संस्करण है और AutoHotKey (संक्षेप में AHK) क्या कर सकता है, इसका सही मायने में प्रतिनिधि नहीं है। ऐसा इसलिए है क्योंकि यह अपनी प्रारंभिक अवधारणा के बाद से विकसित हुआ है और अब एक पूर्ण स्क्रिप्टिंग भाषा है। आप सोच सकते हैं कि आप इसके साथ "प्रोग्रामिंग लाइट" के रूप में क्या कर सकते हैं।

instagram viewer

इस प्रकार, आप AHK का उपयोग मिनी-ऐप्स बनाने के लिए भी कर सकते हैं, ठीक उसी तरह जैसे हमने इस लेख के लिए अपने लक्ष्य के रूप में निर्धारित किया है। ध्यान दें कि इस लेख में हम सीधे AHK में गोता लगाएंगे, इसलिए, आप जांचना चाहेंगे शुरुआती के लिए हमारी त्वरित AutoHotKey मार्गदर्शिका आरंभ करने से पहले।

AutoHotKey के साथ अपनी खुद की विंडो-लॉगिंग स्क्रिप्ट बनाना

शुरू करने से पहले, आपको अपने कंप्यूटर पर AHK इंस्टॉल करना चाहिए क्योंकि यह आपकी स्क्रिप्ट के लिए "पार्सर" के रूप में कार्य करेगा। यह "इंजन" है जो आपकी स्क्रिप्ट को "चलाने" की अनुमति देगा।

नोट: आप अपनी स्क्रिप्ट को एक वास्तविक निष्पादन योग्य प्रोग्राम में बदलने के लिए उसे संकलित करने के बाद भी संकलित कर सकते हैं। हालाँकि, यह इस लेख के दायरे से बाहर है।

ऑटोहॉटकी डाउनलोड करें इसकी आधिकारिक साइट से और इसे स्थापित करें।

अपने पसंदीदा फ़ाइल प्रबंधक को सक्रिय करें, और उस फ़ोल्डर पर जाएँ जहाँ आप अपनी स्क्रिप्ट संग्रहीत करना चाहते हैं। फिर, खाली जगह पर राइट-क्लिक करें, और चुनें नया > AutoHotKey स्क्रिप्ट.

एक बार यह हो जाने के बाद, वास्तविक स्क्रिप्ट लिखने का समय आ गया है।

1. आवश्यक चर परिभाषित करें

अपने पसंदीदा संपादक में स्क्रिप्ट खोलें। आप Windows के साथ आने वाले Notepad जैसी सरल चीज़ का उपयोग कर सकते हैं, लेकिन हम इसका उपयोग करेंगे नोटपैड++ इस गाइड के लिए। चूंकि नोटपैड ++ इस उद्देश्य के लिए मुफ़्त और बेहतर-अनुरूप है, इसलिए इसे आज़माने लायक है। जांचना भी सुनिश्चित करें इसके सभी कीबोर्ड शॉर्टकट पर हमारी अंतिम मार्गदर्शिका जब आप इसकी जांच कर रहे हों।

ध्यान दें कि आपको Word, या Google डॉक्स जैसे किसी ऐप का उपयोग नहीं करना चाहिए, जो इसके स्वरूपण को प्रभावित कर सकता है। टेक्स्ट या "कोड" संपादक का उपयोग करें।

स्क्रिप्ट में पहले से ही संगतता और प्रदर्शन के लिए अनुशंसित कुछ मूलभूत बातें शामिल होंगी। उन्हें वैसे ही छोड़ दें, और उनके नीचे अपनी स्क्रिप्ट शुरू करें।

के साथ शुरू:

ऐपलॉगिंग दर = 10; सक्रिय विंडो शीर्षक कैप्चर के बीच का समय अंतराल (सेकंड में)।
स्लीपटाइम: = ऐपलॉगिंग दर * 1000
लॉगपाथ = %A_ScriptDir%
लास्टएक्टिवविंडो =

हम AppLoggingRate को "10" मान निर्दिष्ट करके शुरू करते हैं, जिसका उपयोग हम विंडो शीर्षक कैप्चर करने के बीच के समय की गणना के लिए करेंगे।

जब AHK के स्लीप फ़ंक्शन के साथ प्रयोग किया जाता है, तो 1000 लगभग एक सेकंड के बराबर होता है। इसलिए, इसे AppLogingRate से गुणा करके, हम वेरिएबल स्लीपटाइम को "दस सेकंड के बराबर" बना रहे हैं।

लॉगपाथ वह पथ है जहां हम अपने लॉग स्टोर करना चाहते हैं। हम %A_ScriptDir% मान का उपयोग कर रहे हैं, जो "उस फ़ोल्डर में अनुवाद करता है जहां से आप स्क्रिप्ट चलाते हैं"। आप चाहें तो किसी अन्य फ़ोल्डर के लिए पूर्ण पथ का उपयोग कर सकते हैं।

अंत में, हम LastActiveWindow को खाली पर सेट करते हैं। हम बाद में इसका उपयोग यह जांचने के लिए करेंगे कि सक्रिय विंडो बदल गई है या नहीं।

2. सक्रिय विंडोज़ की निगरानी करें

चूंकि हम लगातार ट्रैक करना चाहते हैं कि कौन सी विंडो सक्रिय है, और यदि यह बदलती है, तो इसका शीर्षक और समय लॉग करें, हमें "एक लूप" का उपयोग करना होगा।

जैसा कि इसके नाम से पता चलता है, एक लूप लगातार चलता रहता है, उसी फ़ंक्शन को दोहराता है। एएचके के सीधे वाक्य विन्यास के लिए धन्यवाद, हम मानते हैं कि निम्नलिखित "कोड" अपेक्षाकृत आत्म-व्याख्यात्मक है:

कुंडली
{
स्लीप% स्लीपटाइम%
संदेशबॉक्स, यह काम करता है!
}

हम केवल "लूप" शब्द टाइप करके एक लूप को परिभाषित करते हैं और फिर इसकी शुरुआत "{" से करते हैं और "}" के साथ समाप्त होते हैं। "{" और "}" के बीच की पंक्तियों में सब कुछ तब तक चलता रहेगा जब तक आप स्क्रिप्ट से बाहर नहीं निकल जाते।

हम वेरिएबल स्लीपटाइम के बराबर समय के लिए प्रतीक्षा (स्लीप) करके लूप शुरू करते हैं। हमने इसे पिछले अध्याय में एक चर के रूप में सेट किया था ताकि नियंत्रण समय को और अधिक सरल बनाया जा सके। स्क्रिप्ट को स्वयं संपादित करने के बजाय, आप इसे "बता" सकते हैं, इस चर के माध्यम से, प्रत्येक लूप कितने सेकंड तक चलना चाहिए।

अंत में, हम अपनी स्क्रिप्ट का परीक्षण करने के लिए एक संदेश बॉक्स का उपयोग करते हैं। इसे सहेजने और चलाने का प्रयास करें (इसकी फ़ाइल पर डबल-क्लिक करें)। आपको "यह काम करता है!" बताते हुए एक संदेश बॉक्स दिखाई देगा। दस सेकंड के बाद।

विंडोज ट्रे में एएचके के आइकन पर राइट-क्लिक करें और जब आपके पास पर्याप्त संदेश बॉक्स हों तो स्क्रिप्ट से बाहर निकलें। फिर, अपने संपादक पर वापस लौटें, और MsgBox लाइन को इसके साथ बदलें:

विनगेटएक्टिवटाइटल, एक्टिवविंडो

यह सक्रिय विंडो का शीर्षक प्राप्त करने का आदेश है। अतिरिक्त "StoreActiveWindow" लाइन पर ध्यान न दें, जिसका उपयोग हमने परीक्षण के लिए स्क्रिप्ट लिखते समय किया था।

3. वर्तमान समय और नाम प्राप्त करें

अब स्क्रिप्ट के तर्क का मुख्य भाग आता है। हम चाहते हैं कि यह सक्रिय विंडो के नाम की तुलना पिछले वाले से करे, और यदि वे भिन्न हैं, तो "कुछ करें"। यह निम्न की तरह सरल है:

अगर एक्टिवविंडो != %LastActiveWindow%
{
}

उपरोक्त के साथ, हम जाँचते हैं कि क्या वर्तमान में ActiveWindow चर LastActiveWindow (जिसे हमने शुरू में रिक्त पर सेट किया है) में संग्रहीत मान से भिन्न (!=) है। अगर ऐसा है, तो AHK { और } के बीच के कोड को निष्पादित करेगा, जो अभी के लिए खाली है।

विंडो कितने समय से सक्रिय है, इसे मापने के लिए हमें दिनांक और समय दोनों का ट्रैक रखना होगा। हम प्रत्येक दिन के लिए अलग-अलग लॉग रखेंगे, उनके नाम में दिनांक का उपयोग करते हुए। और हम न केवल प्रत्येक विंडो परिवर्तन को लॉग करना चाहते हैं बल्कि यह भी चाहते हैं कब यह हुआ। उसके लिए, हम LogTime और LogFilename चरों के लिए अलग-अलग समय स्वरूप निर्दिष्ट करेंगे, इसके साथ:

फॉर्मेटटाइम, लॉगटाइम, एचएच: मिमी: एसएस
फॉर्मेटटाइम, लॉगफाइलनाम,, yyyy-MMM-dd

"यदि ActiveWindow..." के अंतर्गत घुंघराले कोष्ठकों के बीच उन पंक्तियों को जोड़ें, तो AHK को विंडो परिवर्तन का पता लगाने पर उन्हें चलाने के लिए।

4. डेटा स्वरूपण

हमने समय को दो अलग-अलग स्वरूपित चरों के साथ-साथ सक्रिय विंडो के शीर्षक में पकड़ लिया है। हालांकि, एक छोटी सी समस्या है: किसी विंडो के शीर्षक में ऐसे वर्ण भी हो सकते हैं जो हम नहीं चाहते। हम RegEx के लिए AHK के समर्थन का उपयोग करके सभी गैर-अल्फ़ान्यूमेरिक वर्णों को हटा सकते हैं:

लॉगविंडो := Regexreplace (ActiveWindow, "[^a-zA-Z0-9]", " ")

इसके साथ, हम AHK को ActiveWindow वेरिएबल से सभी वर्णों को निकालने के लिए "बताते हैं" जो कोष्ठक में मौजूद से मेल नहीं खाते:

  • छोटे अक्षर
  • बड़ी वर्तनी के अक्षर
  • नंबर

फिर, हम परिणाम को वेरिएबल LogWindow को असाइन करते हैं।

सभी चर सेट और सभी मूल्यवान डेटा हथियाने के साथ, हम अपनी लॉग फ़ाइल और उसकी सामग्री को प्रारूपित करने के लिए तैयार हैं।

लॉगफाइलनाम =% लॉगफाइलनाम%_AppLog.md
लॉगफाइल =% लॉगपाथ%\%लॉगफाइलनाम%

हमने पहले वर्तमान तिथि को LogFilename चर के लिए निर्दिष्ट किया था। इस प्रकार, पहली पंक्ति के साथ, हम केवल यह कह रहे हैं कि हम "_AppLog.md" को एक फ़ाइल नाम के रूप में उपयोग करने की तिथि में जोड़ना चाहते हैं।

दूसरी पंक्ति में, हम वेरिएबल LogPath को जोड़ते हैं, जिसे हमने शुरुआत में अपने लॉग के लिए गंतव्य के रूप में परिभाषित किया था, फ़ाइल नाम के साथ। उनका संयोजन लॉग का पूरा पथनाम है, जिसे लॉगफाइल चर को सौंपा गया है।

आइए FileContent चर के लिए "खाली लाइन, समय - विंडो का नाम, दो और खाली लाइनें, एक विभक्त, और एक और खाली लाइन, अच्छे उपाय के लिए" के बराबर असाइन करें।

फ़ाइल सामग्री = `एन% लॉगटाइम% -% लॉगविंडो%` एन- - - `एन
  • "`n" AHK को एक नई लाइन दर्ज करने के लिए कहता है (एक बार एंटर दबाने के बराबर)।
  • मार्कडाउन-संगत व्यूअर में प्रस्तुत किए जाने पर तीन डैश विभक्त के रूप में दिखाई देंगे।
  • "% लॉगटाइम%" और "% लॉगविंडो%" वे चर हैं जहां हमने सक्रिय विंडो का नाम और उसका पता लगाने का समय संग्रहीत किया है।

5. फ़ाइल को अपडेट करें

हमने परिभाषित किया है कि हम अपनी फ़ाइल में क्या लिखना चाहते हैं, और हम इसका पथ और फ़ाइल नाम जानते हैं। जो कुछ बचा है वह वास्तविक लेखन है, जो जितना आसान है:

फाइलएपेंड,%फाइलकंटेंट%,%लॉगफाइल%

यह लगभग सादा अंग्रेजी जितना ही सीधा है: हम "फाइलकंटेंट" वेरिएबल में सब कुछ फाइल "लॉगफाइल" में जोड़ते हैं।

यदि यह मौजूद है तो "एपेंड" फ़ंक्शन फ़ाइल में "फाइलकंटेंट" जोड़ देगा, लेकिन अगर ऐसा नहीं होता है तो इसे स्क्रैच से भी बनाएगा।

लेकिन रुकिए, एक आखिरी ट्वीक है: LastActiveWindow चर की सामग्री को वर्तमान में सक्रिय विंडो से बदलना।

इससे स्क्रिप्ट का पता लगा सकेगी अगला खिड़की परिवर्तन।

लास्टएक्टिवविंडो =%एक्टिवविंडो%

और उस अंतिम जोड़ के साथ, आपका विंडो लकड़हारा तैयार है! इसे सहेजें, और इसे चलाएं। फिर, मार्कडाउन फ़ाइल देखें, जो दस सेकंड के बाद आपकी स्क्रिप्ट फ़ाइल के फ़ोल्डर में दिखाई देगी।

मास्टर योर टाइम

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

यह जांचने का एक आसान तरीका है कि आपने किन ऐप्स पर सबसे अधिक समय बिताया है, और इसका उपयोग करने के लिए आपको केवल नोटपैड जैसी किसी चीज़ की आवश्यकता है।

यदि आप कुछ "अधिक" चाहते हैं, तो आप इसके बजाय CSV फ़ाइलों को बनाने के लिए अपने लॉगर के आउटपुट को हमेशा "स्टाइल" कर सकते हैं। FileContent वेरिएबल और बनाई गई फ़ाइल के एक्सटेंशन को ट्वीव करना जितना आसान है। फिर आप ऐसी फाइलों को एक्सेल, गूगल कैल्क, या यहां तक ​​कि थर्ड-पार्टी टाइम ट्रैकर्स जैसे ऐप्स में आयात कर सकते हैं।

पूरी स्क्रिप्ट:

#NoEnv; भविष्य के AutoHotkey रिलीज़ के साथ प्रदर्शन और संगतता के लिए अनुशंसित।
; #चेतावनी; सामान्य त्रुटियों का पता लगाने में सहायता के लिए चेतावनियां सक्षम करें।
सेंडमोड इनपुट; इसकी बेहतर गति और विश्वसनीयता के कारण नई स्क्रिप्ट के लिए अनुशंसित।
सेटवर्किंगडिर% A_ScriptDir%; एक सुसंगत प्रारंभिक निर्देशिका सुनिश्चित करता है।
; चर
;
ऐपलॉगिंग दर = 10; सक्रिय विंडो शीर्षक कैप्चर के बीच का समय अंतराल (सेकंड में)।
स्लीपटाइम: = ऐपलॉगिंग दर * 1000
लॉगपाथ = %A_ScriptDir%
लास्टएक्टिवविंडो =
; तर्क
;
कुंडली
{
स्लीप% स्लीपटाइम%
विनगेटएक्टिवटाइटल, एक्टिवविंडो
स्टोरएक्टिवविंडो =%एक्टिवविंडो%
अगर एक्टिवविंडो != %LastActiveWindow%
{
फॉर्मेटटाइम, लॉगटाइम, एचएच: मिमी: एसएस
फॉर्मेटटाइम, लॉगफाइलनाम,, yyyy-MM-dd
लॉगविंडो := Regexreplace (ActiveWindow, "[^a-zA-Z0-9]", " ")
लॉगफाइलनाम =% लॉगफाइलनाम%_AppLog.md
लॉगफाइल =% लॉगपाथ%\%लॉगफाइलनाम%
फ़ाइल सामग्री = `एन% लॉगटाइम% -% लॉगविंडो%` एन- - - `एन
सो जाओ 50
फाइलएपेंड,%फाइलकंटेंट%,%लॉगफाइल%
लास्टएक्टिवविंडो =%एक्टिवविंडो%
}
}
बाहर जाएं
10 कूल ऑटोहॉटकी स्क्रिप्ट (और अपना खुद का कैसे बनाएं!)

AutoHotkey आपको कस्टम विंडोज शॉर्टकट, मैक्रोज़ और बहुत कुछ बनाने देता है! आपको आरंभ करने के लिए यहां कुछ उपयोगी AutoHotkey स्क्रिप्ट दी गई हैं।

आगे पढ़िए

साझा करनाकलरवईमेल
संबंधित विषय
  • खिड़कियाँ
  • उत्पादकता
  • खिड़कियाँ
  • ऑटोहॉटकी
  • समय प्रबंधन
  • उत्पादकता ट्रिक्स
लेखक के बारे में
ओडिसीज कौराफालोस (12 लेख प्रकाशित)

ओके का वास्तविक जीवन लगभग 10 बजे शुरू हुआ, जब उन्हें अपना पहला कंप्यूटर - कमोडोर 128 मिला। तब से, वह 24/7 टाइप करके कीकैप्स को पिघला रहा है, द वर्ड ऑफ टेक को सुनने के लिए पर्याप्त रुचि रखने वाले किसी भी व्यक्ति तक फैलाने की कोशिश कर रहा है। या, बल्कि, पढ़ें।

Odysseas Kourafalos. की अन्य फ़िल्में-टीवी शो

हमारे न्यूज़लेटर की सदस्यता लें

तकनीकी युक्तियों, समीक्षाओं, निःशुल्क ई-पुस्तकों और अनन्य सौदों के लिए हमारे न्यूज़लेटर से जुड़ें!

सब्सक्राइब करने के लिए यहां क्लिक करें