Ξεκινάτε κάθε μέρα με τις καλύτερες προθέσεις, ανανεωμένοι, έτοιμοι να αντιμετωπίσετε όλες τις εργασίες σας. Έπειτα, ελέγχεις την ώρα, είναι 03:00 π.μ., και δεν μπορείς παρά να αναρωτιέσαι, πού πήγε όλος ο χρόνος;
Θα μπορούσατε να χρησιμοποιήσετε μια αποκλειστική εφαρμογή παρακολούθησης χρόνου, αλλά μπορεί να είναι ενοχλητικά πολύπλοκη. Επιπλέον, πού είναι η διασκέδαση σε αυτό;
Γιατί να μην φτιάξετε τη δική σας απλή μίνι εφαρμογή, η οποία θα μπορούσε να παρακολουθεί όλα τα παράθυρα στα οποία έχετε αφιερώσει χρόνο κατά τη διάρκεια της ημέρας; Θα χρειαστείτε μόνο το AutoHotKey, έναν βασικό επεξεργαστή κειμένου όπως το Σημειωματάριο, και περίπου μισή ώρα. Ας κολλήσουμε μέσα.
Τι είναι το AutoHotKey;
Ο πρωταρχικός σκοπός του AutoHotKey είναι ο αυτοματισμός επιφάνειας εργασίας. Είναι μια γλώσσα δέσμης ενεργειών με την οποία μπορείτε να στείλετε πληκτρολογήσεις και κινήσεις του ποντικιού σε οποιοδήποτε ενεργό παράθυρο, να δημιουργήσετε πλήκτρα πρόσβασης ή να τροποποιήσετε τα πλήκτρα. Μπορείτε, για παράδειγμα, να το χρησιμοποιήσετε για να
απενεργοποιήστε συγκεκριμένα πλήκτρα στο πληκτρολόγιό σας.Ωστόσο, αυτή είναι η σύντομη έκδοση της ιστορίας και δεν είναι πραγματικά αντιπροσωπευτική του τι μπορεί να κάνει το AutoHotKey (AHK για συντομία). Αυτό συμβαίνει γιατί έχει εξελιχθεί από την αρχική του σύλληψη και τώρα είναι μια πλήρης γλώσσα σεναρίου. Μπορείτε να σκεφτείτε τι μπορείτε να κάνετε με αυτό ως "προγραμματισμός Lite".
Έτσι, μπορείτε επίσης να χρησιμοποιήσετε το AHK για να δημιουργήσετε μίνι εφαρμογές, ακριβώς όπως αυτό που θέσαμε ως στόχο για αυτό το άρθρο. Λάβετε υπόψη ότι σε αυτό το άρθρο θα κάνουμε κατάδυση απευθείας στο AHK, οπότε ίσως θέλετε να το ελέγξετε Ο γρήγορος οδηγός μας AutoHotKey για αρχάριους πριν ξεκινήσετε.
Δημιουργία του δικού σας σεναρίου καταγραφής παραθύρων με το AutoHotKey
Πριν ξεκινήσουμε, θα πρέπει να έχετε εγκατεστημένο το AHK στον υπολογιστή σας, καθώς θα λειτουργεί ως ο "αναλυτής" για το σενάριο σας. Είναι «η μηχανή» που θα επιτρέψει στο σενάριό σας να «τρέξει».
Σημείωση: Μπορείτε επίσης να μεταγλωττίσετε το σενάριό σας αφού ολοκληρωθεί για να το μετατρέψετε σε ένα πραγματικό εκτελέσιμο πρόγραμμα. Ωστόσο, αυτό είναι έξω από το πεδίο αυτού του άρθρου.
Κατεβάστε το AutoHotKey από το επίσημο site της και εγκαταστήστε το.
Ενεργοποιήστε τον αγαπημένο σας διαχειριστή αρχείων και επισκεφτείτε έναν φάκελο στον οποίο θέλετε να αποθηκεύσετε το σενάριό σας. Στη συνέχεια, κάντε δεξί κλικ σε ένα κενό σημείο και επιλέξτε Νέο > Σενάριο AutoHotKey.
Μόλις γίνει αυτό, ήρθε η ώρα να γράψετε το πραγματικό σενάριο.
1. Ορίστε τις απαραίτητες μεταβλητές
Ανοίξτε το σενάριο στον αγαπημένο σας επεξεργαστή. Μπορείτε να χρησιμοποιήσετε κάτι τόσο απλό όπως το Σημειωματάριο που συνοδεύει τα Windows, αλλά εμείς θα το χρησιμοποιήσουμε Σημειωματάριο ++ για αυτόν τον οδηγό. Δεδομένου ότι το Notepad++ είναι δωρεάν και είναι καλύτερα προσαρμοσμένο για το σκοπό αυτό, αξίζει να το δοκιμάσετε. Φροντίστε επίσης να ελέγξετε ο απόλυτος οδηγός μας για όλες τις συντομεύσεις πληκτρολογίου του ενώ το ελέγχετε.
Λάβετε υπόψη ότι δεν πρέπει να χρησιμοποιείτε καμία εφαρμογή όπως το Word ή τα Έγγραφα Google, τα οποία θα μπορούσαν να επηρεάσουν τη μορφοποίησή της. Χρησιμοποιήστε είτε ένα πρόγραμμα επεξεργασίας κειμένου είτε "κώδικα".
Το σενάριο θα περιέχει ήδη ορισμένα βασικά που προτείνονται για συμβατότητα και απόδοση. Αφήστε τα ως έχουν και ξεκινήστε το σενάριό σας κάτω από αυτά.
Αρχισε με:
AppLoggingRate = 10; Χρονικό διάστημα (σε δευτερόλεπτα) μεταξύ ενεργών λήψεων τίτλου παραθύρου.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =
Ξεκινάμε εκχωρώντας την τιμή "10" στο AppLoggingRate, την οποία θα χρησιμοποιήσουμε για να υπολογίσουμε το χρόνο μεταξύ της καταγραφής τίτλων παραθύρων.
Όταν χρησιμοποιείται με τη λειτουργία Sleep του AHK, το 1000 είναι περίπου ίσο με ένα δευτερόλεπτο. Έτσι, πολλαπλασιάζοντάς το με το AppLogingRate, κάνουμε τη μεταβλητή SleepTime "ίση με δέκα δευτερόλεπτα".
Το LogPath είναι η διαδρομή όπου θέλουμε να αποθηκεύσουμε τα αρχεία καταγραφής μας. Χρησιμοποιούμε την τιμή %A_ScriptDir%, η οποία μεταφράζεται σε "ο φάκελος από τον οποίο εκτελείτε το σενάριο". Μπορείτε να χρησιμοποιήσετε την πλήρη διαδρομή προς έναν άλλο φάκελο, αν θέλετε.
Τέλος, ορίσαμε το LastActiveWindow σε κενό. Θα το χρησιμοποιήσουμε αργότερα για να ελέγξουμε εάν το ενεργό παράθυρο έχει αλλάξει.
2. Παρακολούθηση των Ενεργών Windows
Εφόσον θέλουμε να παρακολουθούμε συνεχώς ποιο παράθυρο είναι ενεργό και, αν αλλάξει, να καταγράψουμε τον τίτλο και την ώρα του, θα πρέπει να χρησιμοποιήσουμε "ένα βρόχο".
Όπως δηλώνει το όνομά του, ένας βρόχος εκτελείται συνεχώς, επαναλαμβάνοντας την ίδια λειτουργία (ες). Χάρη στην απλή σύνταξη του AHK, πιστεύουμε ότι ο ακόλουθος "κώδικας" είναι σχετικά αυτονόητος:
Βρόχος
{
Ύπνος %SleepTime%
Msgbox, Λειτουργεί!
}
Ορίζουμε έναν βρόχο απλά πληκτρολογώντας τη λέξη "loop" και μετά σημειώνοντας την αρχή του με "{" και το τέλος του με "}". Όλα στις γραμμές μεταξύ "{" και "}" θα εκτελούνται συνεχώς μέχρι να βγείτε από το σενάριο.
Ξεκινάμε τον βρόχο περιμένοντας (Sleep) για χρονικό διάστημα ίσο με τη μεταβλητή SleepTime. Το ορίσαμε ως μεταβλητή στο προηγούμενο κεφάλαιο για να κάνουμε τον έλεγχο του χρόνου πιο απλό. Αντί να επεξεργαστείτε το ίδιο το σενάριο, μπορείτε να του "πείτε", μέσω αυτής της μεταβλητής, πόσα δευτερόλεπτα πρέπει να διαρκεί κάθε βρόχος.
Τέλος, χρησιμοποιούμε ένα Message Box για να δοκιμάσουμε το σενάριό μας. Δοκιμάστε να το αποθηκεύσετε και να το εκτελέσετε (κάντε διπλό κλικ στο αρχείο του). Θα δείτε ένα πλαίσιο μηνύματος που θα αναφέρει "Λειτουργεί!" μετά από δέκα δευτερόλεπτα.
Κάντε δεξί κλικ στο εικονίδιο του AHK στο δίσκο των Windows και βγείτε από το σενάριο όταν έχετε αρκετά πλαίσια μηνυμάτων. Στη συνέχεια, επιστρέψτε στον επεξεργαστή σας και αντικαταστήστε τη γραμμή MsgBox με:
WinGetActiveTitle, ActiveWindow
Αυτή είναι η εντολή για τη λήψη του τίτλου του ενεργού παραθύρου. Αγνοήστε την επιπλέον γραμμή "StoreActiveWindow", την οποία χρησιμοποιήσαμε κατά τη σύνταξη του σεναρίου για δοκιμή.
3. Λάβετε την τρέχουσα ώρα και όνομα
Τώρα έρχεται το βασικό μέρος της λογικής του σεναρίου. Θέλουμε να συγκρίνει το όνομα του ενεργού παραθύρου με το προηγούμενο, και αν είναι διαφορετικά, "κάντε κάτι". Είναι τόσο απλό όσο το παρακάτω:
Αν ActiveWindow != %LastActiveWindow%
{
}
Με τα παραπάνω, ελέγχουμε αν το τρέχον ActiveWindow είναι διαφορετικό (!=) από την τιμή που είναι αποθηκευμένη στη μεταβλητή LastActiveWindow (την οποία αρχικά έχουμε ορίσει ως κενή). Εάν είναι, το AHK θα εκτελέσει τον κώδικα μεταξύ { και }, που προς το παρόν είναι κενά.
Πρέπει να παρακολουθούμε τόσο την ημερομηνία όσο και την ώρα για να μετρήσουμε για πόσο καιρό ένα παράθυρο είναι ενεργό. Θα κρατάμε διαφορετικά αρχεία καταγραφής για κάθε μέρα, χρησιμοποιώντας την ημερομηνία στο όνομά τους. Και θέλουμε να καταγράφουμε όχι μόνο κάθε αλλαγή παραθύρου αλλά και πότε συνέβη. Για αυτό, θα εκχωρήσουμε διαφορετικές μορφές ώρας στις μεταβλητές LogTime και LogFilename, με:
FormatTime, LogTime,, HH: mm: ss
FormatTime, LogFilename,, εεε-ΜΜΜ-ηη
Προσθέστε αυτές τις γραμμές ανάμεσα στις σγουρές αγκύλες στο "If ActiveWindow...", για να τις εκτελέσει το AHK όταν ανιχνεύσει μια αλλαγή παραθύρου.
4. Μορφοποίηση δεδομένων
Έχουμε αρπάξει την ώρα σε δύο μεταβλητές διαφορετικής μορφής, καθώς και τον τίτλο του ενεργού παραθύρου. Ωστόσο, υπάρχει ένα μικρό πρόβλημα: ο τίτλος ενός παραθύρου μπορεί επίσης να περιέχει χαρακτήρες που δεν θέλουμε. Μπορούμε να αφαιρέσουμε όλους τους μη αλφαριθμητικούς χαρακτήρες χρησιμοποιώντας την υποστήριξη του AHK για το RegEx, με:
LogWindow := Regexreplace (ActiveWindow, "[^a-zA-Z0-9]", " ")
Με αυτό, "λέμε" στο AHK να αφαιρέσει όλους τους χαρακτήρες από τη μεταβλητή ActiveWindow που δεν ταιριάζουν με αυτό που βρίσκεται στις αγκύλες:
- Πεζά γράμματα
- Κεφάλαια γράμματα
- Αριθμοί
Στη συνέχεια, εκχωρούμε το αποτέλεσμα στη μεταβλητή LogWindow.
Με όλες τις μεταβλητές που έχουν οριστεί και όλα τα πολύτιμα δεδομένα συλλεγμένα, είμαστε έτοιμοι να μορφοποιήσουμε το αρχείο καταγραφής και τα περιεχόμενά του.
LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%
Προηγουμένως αντιστοιχίσαμε την τρέχουσα ημερομηνία στη μεταβλητή LogFilename. Έτσι, με την πρώτη γραμμή, δηλώνουμε απλώς ότι θέλουμε να προσθέσουμε το "_AppLog.md" στην ημερομηνία για να το χρησιμοποιήσουμε ως όνομα αρχείου.
Στη δεύτερη γραμμή, συνδυάζουμε τη μεταβλητή LogPath, την οποία ορίσαμε στην αρχή ως προορισμό για τα αρχεία καταγραφής μας, με το όνομα του αρχείου. Ο συνδυασμός τους είναι το πλήρες όνομα διαδρομής του αρχείου καταγραφής, που εκχωρείται στη μεταβλητή LogFile.
Ας αντιστοιχίσουμε το ισοδύναμο του "κενής γραμμής, Χρόνος - Όνομα παραθύρου, δύο ακόμη κενές γραμμές, ένα διαχωριστικό και μια άλλη κενή γραμμή, για καλό μέτρο" στη μεταβλητή FileContent.
FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
- Τα "`n" λένε στο AHK να εισάγει μια νέα γραμμή (το ισοδύναμο με το να πατήσετε Enter μία φορά).
- Οι τρεις παύλες θα εμφανίζονται ως διαχωριστικό όταν παρουσιάζονται σε ένα πρόγραμμα προβολής συμβατό με σημάδια.
- Το "%LogTime%" και το "%LogWindow%" είναι οι μεταβλητές στις οποίες έχουμε αποθηκεύσει το όνομα του ενεργού παραθύρου και την ώρα που ανιχνεύτηκε.
5. Ενημερώστε το Αρχείο
Έχουμε ορίσει τι θέλουμε να γράψουμε στο αρχείο μας και γνωρίζουμε τη διαδρομή και το όνομα του αρχείου. Το μόνο που μένει είναι η πραγματική γραφή, η οποία είναι τόσο εύκολη όσο:
FileAppend, %FileContent%, %LogFile%
Είναι σχεδόν τόσο απλό όσο και τα απλά αγγλικά: προσθέτουμε τα πάντα στη μεταβλητή "FileContent" στο αρχείο "LogFile".
Η συνάρτηση "append" θα προσθέσει το "FileContent" στο αρχείο εάν υπάρχει, αλλά θα το δημιουργήσει επίσης από την αρχή εάν δεν υπάρχει.
Αλλά περιμένετε, υπάρχει μια τελευταία προσαρμογή: αντικατάσταση του περιεχομένου της μεταβλητής LastActiveWindow με το τρέχον ενεργό παράθυρο.
Με αυτό, το σενάριο θα μπορεί να ανιχνεύσει το Επόμενο αλλαγή παραθύρου.
LastActiveWindow = %ActiveWindow%
Και με αυτήν την τελευταία προσθήκη, το καταγραφικό παραθύρων σας είναι έτοιμο! Αποθηκεύστε το και εκτελέστε το. Στη συνέχεια, ελέγξτε το αρχείο σήμανσης, το οποίο θα εμφανιστεί στο φάκελο του αρχείου του σεναρίου σας μετά από δέκα δευτερόλεπτα.
Master Your Time
Μπορείτε να ανοίξετε το αρχείο καταγραφής σας με οποιοδήποτε πρόγραμμα επεξεργασίας κειμένου. Ωστόσο, θα φαίνεται πιο όμορφο αν το ανοίξετε σε ένα πρόγραμμα επεξεργασίας συμβατό με σημάδια. Στο στιγμιότυπο οθόνης, μπορείτε να δείτε το αρχείο καταγραφής μας στο δημοφιλές πρόγραμμα επεξεργασίας Typora.
Είναι ένας εύκολος τρόπος για να ελέγξετε ποιες εφαρμογές έχετε αφιερώσει περισσότερο χρόνο και χρειάζεστε μόνο κάτι σαν το Σημειωματάριο για να το χρησιμοποιήσετε.
Εάν θέλετε κάτι "περισσότερο", μπορείτε πάντα να "στυλ" στην έξοδο του καταγραφέα σας ώστε να παράγει αρχεία CSV. Είναι τόσο εύκολο όσο να τροποποιήσετε τη μεταβλητή FileContent και την επέκταση του αρχείου που δημιουργήθηκε. Στη συνέχεια, θα μπορούσατε να εισαγάγετε τέτοια αρχεία σε εφαρμογές όπως το Excel, το Google Calc ή ακόμα και τα προγράμματα παρακολούθησης χρόνου τρίτων.
Πλήρες σενάριο:
#NoEnv; Συνιστάται για απόδοση και συμβατότητα με μελλοντικές εκδόσεις AutoHotkey.
; #Προειδοποιώ; Ενεργοποιήστε τις προειδοποιήσεις για να βοηθήσετε στον εντοπισμό κοινών σφαλμάτων.
Είσοδος SendMode; Συνιστάται για νέα σενάρια λόγω της ανώτερης ταχύτητας και αξιοπιστίας του.
SetWorkingDir %A_ScriptDir%; Εξασφαλίζει έναν συνεπή κατάλογο εκκίνησης.
; Μεταβλητές
;
AppLoggingRate = 10; Χρονικό διάστημα (σε δευτερόλεπτα) μεταξύ ενεργών λήψεων τίτλου παραθύρου.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =
; Λογική
;
Βρόχος
{
Ύπνος %SleepTime%
WinGetActiveTitle, ActiveWindow
StoreActiveWindow = %ActiveWindow%
Αν ActiveWindow != %LastActiveWindow%
{
FormatTime, LogTime,, HH: mm: ss
FormatTime, LogFilename,, εεε-ΜΜ-ηη
LogWindow := Regexreplace (ActiveWindow, "[^a-zA-Z0-9]", " ")
LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%
FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
ύπνος 50
FileAppend, %FileContent%, %LogFile%
LastActiveWindow = %ActiveWindow%
}
}
Εξοδος
Το AutoHotkey σάς επιτρέπει να δημιουργείτε προσαρμοσμένες συντομεύσεις των Windows, μακροεντολές και πολλά άλλα! Ακολουθούν μερικά χρήσιμα σενάρια AutoHotkey για να ξεκινήσετε.
Διαβάστε Επόμενο
- Windows
- Παραγωγικότητα
- Windows
- AutoHotkey
- Διαχείριση χρόνου
- Κόλπα παραγωγικότητας
Η πραγματική ζωή του ΟΚ ξεκίνησε γύρω στα 10, όταν πήρε τον πρώτο του υπολογιστή - έναν Commodore 128. Από τότε, λιώνει τα keycaps πληκτρολογώντας 24/7, προσπαθώντας να διαδώσει το Word Of Tech σε όποιον ενδιαφέρεται αρκετά για να ακούσει. Ή, μάλλον, διαβάστε.
Εγγραφείτε στο ενημερωτικό μας δελτίο
Εγγραφείτε στο ενημερωτικό μας δελτίο για συμβουλές τεχνολογίας, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Κάντε κλικ εδώ για να εγγραφείτε