Δεν είναι εξαιρετικά ενοχλητικό το πώς, τουλάχιστον στα Windows, μπορεί να εμφανιστεί οποιοδήποτε παράθυρο οπουδήποτε στην οθόνη; Μήπως αυτή η καθημερινή τυχαιότητα σας ενοχλεί και θα προτιμούσατε να έχετε περισσότερο έλεγχο στην τοποθέτηση των παραθύρων σας στην οθόνη; Λοιπόν, τώρα μπορείτε, χάρη στο AutoHotKey.
Σε αυτό το σεμινάριο, θα δούμε πώς μπορείτε να λύσετε αυτό το πρόβλημα με μια δέσμη ενεργειών AutoHotKey. Θα το φτιάξουμε έτσι ώστε να κινείται όποιος παράθυρο στο κέντρο της οθόνης σας με ένα πάτημα πλήκτρων. Ακούγεται γλυκό; Ας δούμε πώς γίνεται!
Πώς να ρυθμίσετε ένα πλήκτρο πρόσβασης στο κέντρο παραθύρου με το AutoHotKey
Η μισή μάχη κατά τη δημιουργία ενός σεναρίου είναι να βρεις πώς θα λειτουργήσει πριν καν πληκτρολογήσεις έναν μεμονωμένο χαρακτήρα. Λοιπόν, ας φτιάξουμε ένα τέτοιο σχέδιο δράσης σε απλά αγγλικά που στη συνέχεια θα το «μετάλλαξουμε» σε σενάριο.
Το "πρόβλημα" που έχουν τα Windows
Τα Windows (όπως στο "τα ορθογώνια πράγματα στις οθόνες μας", όχι στο λειτουργικό σύστημα) τείνουν να σκάνε οπουδήποτε στην οθόνη. Αποσπά την προσοχή και μπορεί επίσης να είναι ενοχλητικό όταν συμβαίνει επανειλημμένα. Ειδικά όταν αντιμετωπίζετε πολλούς αιτούντες που εμφανίζονται σε διαφορετικά σημεία, αναμένοντας τη συμβολή του χρήστη.
Η Λύση του Προβλήματος
Εκτός από την αποστολή πλήκτρων και κλικ του ποντικιού σε οποιοδήποτε παράθυρο, το AutoHotKey μπορεί επίσης να τα χειριστεί. Είδαμε στο παρελθόν πώς μπορείς χρησιμοποιήστε το AutoHotKey για να καρφιτσώσετε τα παράθυρα "πάντα στην κορυφή" χρησιμοποιώντας μια συντόμευση πληκτρολογίου. Αυτή τη φορά, ωστόσο, θα εκμεταλλευτούμε τις δυνατότητες χειρισμού παραθύρων του AutoHotKey για να:
- "Διαβάστε" το αναγνωριστικό του ενεργού παραθύρου.
- Επίσης «διαβάστε» τις διαστάσεις του (πλάτος & ύψος).
- «Διαβάστε» τις διαστάσεις της οθόνης.
- Συνδυάστε τις διαστάσεις της οθόνης και του παραθύρου για να υπολογίσετε τις βέλτιστες συντεταγμένες για την παρουσίαση του εν λόγω παραθύρου στο κέντρο της οθόνης.
- Μετακινήστε το παράθυρο σε αυτές τις συντεταγμένες.
Τέλος, θα αντιστοιχίσουμε τα παραπάνω σε μια συντόμευση. Με αυτόν τον τρόπο, μπορείτε να το ονομάσετε "κατ' απαίτηση" αντί να το εφαρμόσετε όλα Windows - τα οποία θα μπορούσαν να επηρεάσουν εφαρμογές και παιχνίδια πλήρους οθόνης.
Σημειώστε ότι σε αυτό το σεμινάριο, θα βουτήξουμε απευθείας στο AutoHotKey. Εάν δεν είστε εξοικειωμένοι με αυτό και θέλετε να μάθετε περισσότερα εκ των προτέρων, ελέγξτε μας γρήγορος οδηγός AutoHotKey για αρχάριους.
Πρώτα, Ρύθμιση του πλήκτρου πρόσβασης
Αναφέραμε πώς θα αντιστοιχίσουμε τη συνάρτηση που θα δημιουργήσουμε σε μια συντόμευση. Ωστόσο, είναι μάλλον καλύτερα αν ξεκινήσουμε με αυτό το κομμάτι για να το βγάλουμε από τη μέση.
Ξεκινήστε κάνοντας λήψη του προγράμματος εγκατάστασης από Επίσημος ιστότοπος του AutoHotKey. Πηγαίνετε για την "τρέχουσα" έκδοση αντί για την v2 beta ή την καταργημένη έκδοση 1.0. Στη συνέχεια, εγκαταστήστε το στον υπολογιστή σας.
Εκκινήστε την Εξερεύνηση αρχείων (ο πιο γρήγορος τρόπος είναι με τον συνδυασμό πλήκτρων Windows Key + E) και μετακινηθείτε στη διαδρομή όπου θέλετε να δημιουργήσετε το σενάριό σας. Με το AutoHotKey εγκατεστημένο, θα εμφανιστούν ορισμένες νέες επιλογές στο μενού με το δεξί κλικ. Επομένως, κάντε δεξί κλικ στον κενό χώρο του παραθύρου του File Explorer και επιλέξτε Νέο > Σενάριο AutoHotKey.
Δώστε ένα όνομα στο αρχείο του σεναρίου σας και, στη συνέχεια, κάντε δεξί κλικ πάνω του και επεξεργασία το. Εάν δεν χρησιμοποιείτε μια φιλική προς τον κώδικα εφαρμογή επεξεργασίας κειμένου, όπως το Visual Studio Code ή το Notepad++, χρησιμοποιήστε το Σημειωματάριο των Windows. Αποφύγετε συντάκτες όπως το Wordpad, που θα μπορούσαν να προσθέσουν άχρηστη (για το σκοπό) σύνταξη στον «κώδικά» σας.
Όταν βρίσκεστε στο πρόγραμμα επεξεργασίας της επιλογής σας, θα δείτε το σενάριο AutoHotKey να έχει ήδη ορισμένες γραμμές προσυμπληρωμένες στο επάνω μέρος. Υπάρχουν για λόγους σταθερότητας και συμβατότητας. Μπορούν να προσαρμοστούν, αλλά αφήστε τα ως έχουν για αυτό το σεμινάριο.
«Μετακινήστε» δύο ή τρεις γραμμές κάτω από αυτές και εισάγετε τη συντόμευση που θα εκκινήσει τη λειτουργία σας. Μπορείτε να δημιουργήσετε έναν συνδυασμό πλήκτρων χρησιμοποιώντας "+" για Shift, "^" για CTRL, "!" για Alt και "#" για το κλειδί των Windows, καθώς και οποιοδήποτε "κανονικό" πλήκτρο από το πληκτρολόγιο (γράμματα και αριθμοί).
Για παράδειγμα, για να ξεκινήσει ο συνδυασμός CTRL + Y το σενάριό σας, χρησιμοποιήστε:
^y::
Το διπλό ":" είναι σαν να λέμε, "hey, AutoHotKey, αντιστοιχίστε τη συμβολοσειρά ή τον συνδυασμό πλήκτρων στα αριστερά σε όλα τα δεξιά".
"Μετακινήστε" δύο ή τρεις γραμμές κάτω από αυτήν πατώντας Enter και πληκτρολογήστε "return", που θα σηματοδοτήσει το τέλος της συγκεκριμένης λειτουργίας. Το πλήρες αποτέλεσμα θα πρέπει να μοιάζει με το εξής:
^y::
; Αυτό είναι ένα σχόλιο.
ΕΠΙΣΤΡΟΦΗ
Ο "; Αυτή είναι ένα σχόλιο." είναι ακριβώς αυτό, ένα σχόλιο στον "κώδικα" του σεναρίου που το AutoHotKey δεν θα εκτελέσει. Υπάρχει για λόγους τεκμηρίωσης για να επισημάνουμε το σημείο όπου θα εισαγάγουμε τον "κωδικό" του σεναρίου στα ακόλουθα βήματα.
Εάν έχετε ακολουθήσει τον οδηγό μας δημιουργία πλήκτρων πρόσβασης για συγκεκριμένες εφαρμογές με το AutoHotKey στο παρελθόν, σε αυτή την περίπτωση... όχι. Θέλετε το πλήκτρο πρόσβασης στο κέντρο του παραθύρου να είναι "καθολικό" στο κέντρο όποιος παράθυρο από όποιος εφαρμογή. Εάν το "δέσετε" σε μια συγκεκριμένη εφαρμογή, θα ενεργήσει μόνο στα παράθυρα αυτής της εφαρμογής.
Λάβετε τα στοιχεία του ενεργού παραθύρου
Θέλουμε η συντόμευση μας να ενεργεί στο ενεργό παράθυρο και χρειαζόμαστε επίσης τις διαστάσεις της για τους υπολογισμούς μας. Μπορούμε να βρούμε αυτές τις λεπτομέρειες με τα εξής:
WinGetTitle, ActiveWindowTitle, Α
Πλάτος WinGetPos, Ύψος, %ActiveWindowTitle%
Αντικαταστήστε τη γραμμή σχολίων που προσθέσαμε στο σενάριο στην προηγούμενη ενότητα με τις δύο παραπάνω γραμμές. Το αποτέλεσμα?
- Η πρώτη γραμμή παίρνει τον τίτλο του ενεργού παραθύρου.
- Η δεύτερη γραμμή διαβάζει το πλάτος και το ύψος της και τα αντιστοιχίζει στις λέξεις/μεταβλητές "Width" και "Height", τις οποίες θα χρησιμοποιήσουμε στη συνέχεια για τους υπολογισμούς μας.
Έχουμε τα στοιχεία του ενεργού παραθύρου, αλλά χρειαζόμαστε επίσης τις διαστάσεις της ορατής περιοχής της οθόνης για να πετύχουμε τον στόχο μας. Ευτυχώς, η εύρεση αυτών είναι ακόμα πιο εύκολη.
Τι γίνεται με την κύρια περιοχή παρακολούθησης;
Δεν χρειαζόμαστε επιπλέον εντολές για να βρούμε το πλάτος και το ύψος της κύριας οθόνης μας. Το AutoHotKey συνοδεύεται από δύο προκαθορισμένες μεταβλητές που περιέχουν ήδη αυτές τις πληροφορίες για εμάς: "A_ScreenWidth" και "A_ScreenHeight".
Έτσι, όταν τα δείτε στην επόμενη ενότητα, "περιέχουν" ήδη το πλάτος και το ύψος της κύριας οθόνης. Δεν χρειάζεται τίποτα για να τους εκχωρήσετε τις σωστές τιμές. Έτσι, μπορούμε να τα χρησιμοποιήσουμε απευθείας στους υπολογισμούς μας.
Ώρα για τον υπολογισμό της θέσης στόχου
Μπορούμε να συμπεριλάβουμε τους υπολογισμούς απευθείας στα σημεία του σεναρίου όπου τους χρειαζόμαστε. Ωστόσο, είναι ευκολότερο και καλύτερο για την αναγνωσιμότητα εάν τις αντιστοιχίσουμε σε δύο μεταβλητές και τότε χρησιμοποιήστε αυτές τις μεταβλητές στο σενάριό μας.
Λοιπόν, ας πάμε για το "TargetX" ως τη μεταβλητή που θα κρατήσει τις οριζόντιες συντεταγμένες και το "TargetY" ως το ένα με τις κάθετες συντεταγμένες όπου πρέπει να μετακινήσουμε το παράθυρο για να εμφανιστεί στο κέντρο του οθόνη.
TargetX := (A_ScreenWidth/2)-(Πλάτος/2); Εδώ υπολογίζουμε την οριζόντια παράθυρο στόχος...
Στόχος := (A_Ύψος οθόνης/2)-(Ύψος/2); ...και εδώ η κάθετη.
Ας αποκρυπτογραφήσουμε αυτές τις γραμμές σε απλά αγγλικά:
- Το "TargetX" και το "TargetY" είναι οι δύο μεταβλητές.
- Το ":=" ενημερώνει το AutoHotKey ότι οι μεταβλητές πρέπει να είναι ίσες με τα αποτελέσματα των υπολογισμών στα δεξιά και ότι αυτά τα αποτελέσματα πρέπει να αντιμετωπίζονται ως αριθμοί.
- Το "(A_ScreenWidth/2)" διαιρεί το πλάτος της πλήρους οθόνης κατά δύο.
- Το "(Width/2)" κάνει το ίδιο για το πλάτος του ενεργού παραθύρου.
Με τα παραπάνω, αφαιρούμε το μισό πλάτος του ενεργού παραθύρου από το μισό πλάτος της οθόνης. Αυτό που απομένει είναι ο χώρος στα αριστερά του παραθύρου - από την αριστερή πλευρά της οθόνης και μέχρι εκεί που πρέπει να εμφανίζεται το παράθυρο. Η δεύτερη γραμμή κάνει το ίδιο αλλά για το ύψος.
Τώρα για να επανατοποθετήσετε το παράθυρο
Εξοπλισμένοι με την παντοδύναμη γνώση που αποκτήθηκε από τις μυστικιστικές εντολές που είδαμε παραπάνω, μπορούμε τώρα να φτιάξουμε το μαγικό μας ξόρκι που θα ολοκληρώσει το τελετουργικό τηλεμεταφοράς παραθύρων. Ή, σε απλά αγγλικά, χρησιμοποιήστε την εντολή "WinMove" του AutoHotKey για να μετακινήσετε τα παράθυρα στην οθόνη.
Το WinMove περιμένει από εμάς να το "τροφοδοτήσουμε" με τουλάχιστον τρεις πληροφορίες για να κάνει την πράξη του: τον τίτλο του στοχευμένου παραθύρου και τις συντεταγμένες πού θα το μετακινήσει. Εφόσον έχουμε ήδη αντιστοιχίσει αυτές τις πληροφορίες σε μεταβλητές, η εντολή είναι τόσο απλή όσο:
WinMove, %ActiveWindowTitle%,, %TargetX%, %TargetY%
Στα παραπάνω:
- Το "WinMove" είναι η εντολή AutoHotKey που μετακινεί ένα παράθυρο.
- Το "%ActiveWindowTitle%" είναι η μεταβλητή όπου αντιστοιχίζεται ο τίτλος του ενεργού παραθύρου.
- Το "%TargetX%" και το "%TargetY%" είναι οι οριζόντιες και κάθετες συντεταγμένες όπου μπορείτε να μετακινήσετε το παράθυρο.
Μπορείτε επίσης να αλλάξετε το μέγεθος των παραθύρων με το WinMove, να παραλείψετε εκείνα με συγκεκριμένα τσιμπήματα κειμένου στους τίτλους ή το περιεχόμενό τους, κ.λπ. Δεδομένου ότι αυτές οι δυνατότητες δεν εμπίπτουν στο πεδίο εφαρμογής αυτού του άρθρου, ελέγξτε Η επίσημη τεκμηρίωση του AutoHotKey για την εντολή WinMove για περισσότερα για αυτούς.
Το τελικό σενάριο
Επιτέλους, φτάνουμε στο πιο δύσκολο κομμάτι του ταξιδιού μας. Προετοιμαστείτε για το επόμενο βήμα που περιμένει από εσάς να αποθηκεύσετε το σενάριο και, λοιπόν... Τρέξε το.
Ναι, αυτό ήταν - το σενάριο είναι πλήρες και δεν υπάρχει τίποτα άλλο να κάνετε από το να το δοκιμάσετε. Χρησιμοποιήστε τη συντόμευση που ορίσατε και οποιοδήποτε ενεργό παράθυρο θα μετακινηθεί στο κέντρο της οθόνης σας.
Το τελικό αρχείο σεναρίου, όπως ανοίγει σε ένα πρόγραμμα επεξεργασίας κειμένου, θα πρέπει να μοιάζει κάπως έτσι:
#NoEnv; Συνιστάται για απόδοση και συμβατότητα με μελλοντικές εκδόσεις AutoHotkey.
; #Προειδοποιώ; Ενεργοποιήστε τις προειδοποιήσεις για να βοηθήσετε στον εντοπισμό κοινών σφαλμάτων.
Είσοδος SendMode; Συνιστάται Γιανέος scripts λόγω της ανώτερης ταχύτητας και αξιοπιστίας του.
SetWorkingDir %A_ScriptDir%; Εξασφαλίζει έναν συνεπή κατάλογο εκκίνησης.
^y::
WinGetTitle, ActiveWindowTitle, A; Αποκτήστε το ενεργό παράθυρο'τίτλος για "στόχευση" το / ενεργεί σε αυτό.
WinGetPos Πλάτος, Ύψος, %ActiveWindowTitle%; Πάρτε το ενεργό παράθυροθέση του, χρησιμοποιείται Για τους υπολογισμούς μας.
TargetX := (A_ScreenWidth/2)-(Πλάτος/2); Υπολογίστε τον οριζόντιο στόχο όπου θα μετακινήσουμε το παράθυρο.
TargetY := (A_ScreenHeight/2)-(Υψος/2); Υπολογίστε την κατακόρυφη τοποθέτηση του ο παράθυρο.WinMove, %ActiveWindowTitle%,, %TargetX%, %TargetY%; Μετακίνησε το παράθυρο στις υπολογισμένες συντεταγμένες.
ΕΠΙΣΤΡΟΦΗ
Λάβετε υπόψη ότι μπορείτε να αντιγράψετε το παραπάνω σενάριο, να το επικολλήσετε στο Σημειωματάριο ή σε ένα παρόμοιο πρόγραμμα επεξεργασίας κειμένου και να το αποθηκεύσετε με μια επέκταση AHK. Στη συνέχεια, "τρέξτε" το, με εγκατεστημένο το AutoHotKey, για να κεντράρετε οποιοδήποτε παράθυρο όποτε πατάτε CTRL + Y. Εάν δεν σας αρέσει αυτή η συντόμευση, τροποποιήστε τη γραμμή "^y::" σε διαφορετικό συνδυασμό πλήκτρων. Για παράδειγμα, !+c::
θα αντιστοιχίσει τη συνάρτηση στο συνδυασμό πλήκτρων Shift + Alt + C.
Κομμάτι μπόνους
Για τη δική σας διευκόλυνση, αποφασίσαμε να δημιουργήσουμε και να συμπεριλάβουμε ένα δευτερεύον σενάριο που θα είναι χρήσιμο σε όσους διαθέτουν ρυθμίσεις διπλής οθόνης.
Για να διατηρήσουμε αυτό το άρθρο απλοποιημένο, έχουμε συμπεριλάβει πληροφορίες σχετικά με τον τρόπο λειτουργίας του σεναρίου σε αυτό με τη μορφή σχολίων. Μπορείτε να τα αφαιρέσετε από την επανάληψη σας.
Η σύντομη ιστορία του πώς διαφέρει από το παραπάνω σενάριο είναι ότι προσθέτουμε επίσης μια μεταβλητή PositionToggle και κάποια "λογική IF". Στη συνέχεια, τα χρησιμοποιούμε για να "κουμπώσουμε" το παράθυρο μεταξύ των οθονών. Θα πρέπει να σημειώσουμε ότι είναι μια άκομψη και «χακαρισμένη» λύση στο πρόβλημα. Ωστόσο, τον προτιμήσαμε από τον πιο βελτιωμένο κώδικα, καθώς αυτή η προσέγγιση είναι πιο κατανοητή και πιο εύκολη για όλους όσους δεν είναι εξοικειωμένοι με το AutoHotKey.
#NoEnv; Συνιστάται για απόδοση και συμβατότητα με μελλοντικές εκδόσεις AutoHotkey.
; #Προειδοποιώ; Ενεργοποιήστε τις προειδοποιήσεις για να βοηθήσετε στον εντοπισμό κοινών σφαλμάτων.
Είσοδος SendMode; Συνιστάται Γιανέος scripts λόγω της ανώτερης ταχύτητας και αξιοπιστίας του.
SetWorkingDir %A_ScriptDir%; Εξασφαλίζει έναν συνεπή κατάλογο εκκίνησης.
PositionToggle = 1; Χρήση ένα αριθμόςόπως και μια εναλλαγή Για βαθμολόγηση επί που παρακολουθούν την παράθυρο πρέπει να εμφανιστεί.
^y::
WinGetTitle, ActiveWindowTitle, Α
Πλάτος WinGetPos, Ύψος, %ActiveWindowTitle%Εάν το PositionToggle = 1; Ελεγχος η κατάσταση της εναλλαγής και "κάνω τι υπάρχει ανάμεσα στις σγουρές αγκύλες» αν είναι σειράπρος την1Για την κύρια οθόνη μας.
{
TargetX := (A_ScreenWidth/2)-(Width/2)
Στόχος := (A_Ύψος οθόνης/2)-(Ύψος/2)
PositionToggle = 2; "Τίναγμα" την εναλλαγή έτσι ώστε αν επαναχρησιμοποιήσουμε το πλήκτρο πρόσβασης, το ενεργό μας παράθυρο θα μετακινηθεί στη δεύτερη οθόνη.
}
Άλλο εάν το PositionToggle = 2; Έχουμε χρησιμοποιήσει το πλήκτρο πρόσβασης στο παρελθόν, "τίναγμα" ο αριθμός εναλλαγής στη δεύτερη οθόνη; Τότε το σενάριο θα έπρεπε να κάνει τι's ανάμεσα στις ακόλουθες σγουρές αγκύλες αντί για τις παραπάνω.
{
SysGet, Mon2, Monitor, 2; Πάρτε τη δεύτερη οθόνη'λεπτομέρειες
Mon2Width := Mon2Right - Mon2Left; Υπολογίστε τη δεύτερη οθόνη's πραγματικό πλάτος.
Mon2Height := Mon2Bottom - Mon2Top; Υπολογίστε τη δεύτερη οθόνη'το πραγματικό ύψος.TargetX := (Mon2Width/2)-(Width/2)+A_ScreenWidth; Υπολογίστε πού να μετακινήσετε το παράθυρο. Σημειώστε ότι προσθέτουμε επίσης την κύρια οθόνη'πλάτος από το AutoHotKey μπορεί't μετακινήσετε τα παράθυρα σε μεμονωμένες οθόνες αλλά σε όλες τις συνδυασμένες οθόνες "επιφάνεια".
Στόχος := (Μον2Ύψος/2)-(Ύψος/2)+Μον2Κορυφή; Υπολογίστε τον βέλτιστο κατακόρυφο στόχο για τη μετακίνηση του παραθύρου στη δεύτερη οθόνη. Όπως παραπάνω, η δεύτερη οθόνη'Οι κάθετες λεπτομέρειες ανιχνεύονται σε σχέση με την κύρια οθόνη. Έτσι, πρέπει να γίνουμε δημιουργικοί για να πετύχουμε τον βέλτιστο στόχο αναγνωρίζοντας πώς η δεύτερη οθόνη's top isn't ίσο με 0 (όπως το πρωτεύον'μικρό).PositionToggle = 1; Γυρίστε τον διακόπτη προς τα πίσω έτσι ώστε αν επαναχρησιμοποιούμε το πλήκτρο πρόσβασης, το παράθυρο θα επιστρέψει στην κύρια οθόνη.
}WinMove, %ActiveWindowTitle%,, %TargetX%, %TargetY%; Η πραγματική δράση, μετακίνηση του ενεργού παράθυρο στις υπολογισμένες μας συντεταγμένες.
ΕΠΙΣΤΡΟΦΗ
Κεντράρετε ένα παράθυρο με ένα κλειδί, ο εύκολος τρόπος
Και τώρα τελείωσες! Εάν όλα λειτουργούν καλά, μπορείτε πλέον να χρησιμοποιήσετε το πλήκτρο πρόσβασης που έχετε ρυθμίσει πρόσφατα για να κεντράρετε ένα παράθυρο ανά πάσα στιγμή.
Βρείτε πού σπαταλάτε το χρόνο σας στα Windows με το AutoHotKey
Διαβάστε Επόμενο
Σχετικά θέματα
- Windows
- Windows 10
- Windows 11
- AutoHotkey
- Προσαρμογή Windows
Σχετικά με τον Συγγραφέα
Η πραγματική ζωή του ΟΚ ξεκίνησε γύρω στα 10, όταν πήρε τον πρώτο του υπολογιστή - έναν Commodore 128. Από τότε, λιώνει τα keycaps πληκτρολογώντας 24/7, προσπαθώντας να διαδώσει το Word Of Tech σε όποιον ενδιαφέρεται αρκετά για να ακούσει. Ή, μάλλον, διαβάστε.
Εγγραφείτε στο ενημερωτικό μας δελτίο
Εγγραφείτε στο ενημερωτικό μας δελτίο για συμβουλές τεχνολογίας, κριτικές, δωρεάν ebook και αποκλειστικές προσφορές!
Κάντε κλικ εδώ για να εγγραφείτε