Kas pole ülitüütu, kuidas vähemalt Windowsis võib ükskõik milline aken ekraanile hüpata? Kas see igapäevane juhuslikkus käib teile närvidele ja eelistaksite oma akende paigutust ekraanil paremini kontrollida? Noh, nüüd saate tänu funktsioonile AutoHotKey.
Selles õpetuses näeme, kuidas saate selle probleemi AutoHotKey skripti abil lahendada. Ehitame selle nii, et see liigub ükskõik milline aknast klahvivajutusega ekraani keskele. Kõlab magusalt? Vaatame, kuidas see tehtud on!
Kuidas seadistada AutoHotKey abil akna tsentreerimise kiirklahv
Pool võitu skripti loomisel on enne ühe tähemärgi tippimist välja mõelda, kuidas see töötab. Niisiis, teeme sellise tegevusplaani lihtsas inglise keeles, et siis "muteerume" skriptiks.
Windowsi "probleem" on
Windows (nagu "ristkülikukujulised asjad meie ekraanidel", mitte OS) kipuvad hüppama kõikjal ekraanil. See segab tähelepanu ja võib olla ka tüütu, kui see juhtub korduvalt. Eriti kui tegemist on mitme taotlejaga, kes hüppavad erinevatel kohtadel, oodates kasutajapoolset sisendit.
Probleemi lahendus
Lisaks klahvivajutuste ja hiireklõpsude saatmisele mis tahes aknasse saab AutoHotKey neid ka manipuleerida. Me nägime varem, kuidas saate kasutage AutoHotKey-d, et kinnitada aknad "alati peal" kasutades kiirklahvi. Seekord kasutame aga AutoHotKey akna manipuleerimise võimalusi, et:
- "Lugege" aktiivse akna ID-d.
- "Lugege" ka selle mõõtmeid (laius ja kõrgus).
- "Lugege" monitori mõõtmeid.
- Kombineerige monitori ja akna mõõtmed, et arvutada optimaalsed koordinaadid nimetatud akna kuvamiseks ekraani keskel.
- Liigutage aken nendele koordinaatidele.
Lõpuks kaardistame ülaltoodud otsetee. Nii saate selle pealekandmise asemel nimetada "nõudmiseks". kõik aknad – mis võivad segada täisekraanil kuvatavaid rakendusi ja mänge.
Pange tähele, et selles õpetuses sukeldume otse AutoHotKeysse. Kui te pole sellega tuttav ja soovite eelnevalt rohkem teada saada, vaadake meie lehte AutoHotKey kiire juhend algajatele.
Esiteks, kiirklahvi seadistamine
Mainisime, kuidas seostame loodava funktsiooni otseteega. Tõenäoliselt on aga parem, kui alustame selle osaga, et see teelt ära saada.
Alustage installiprogrammi allalaadimisega aadressilt AutoHotKey ametlik sait. Valige "praegune" versioon v2 beetaversiooni või aegunud versiooni 1.0 asemel. Seejärel installige see oma arvutisse.
Käivitage File Explorer (kiireim viis on Windows Key + E klahvikombinatsioon) ja liikuge teele, kuhu soovite oma skripti luua. Kui AutoHotKey on installitud, kuvatakse paremklõpsu menüüs mõned uued valikud. Niisiis, paremklõpsake File Exploreri akna tühjal alal ja valige Uus > AutoHotKey skript.
Andke oma skriptifailile nimi ja seejärel paremklõpsake seda ja muuda seda. Kui te ei kasuta koodisõbralikku tekstitöötlusrakendust (nt Visual Studio Code või Notepad++), kasutage Windows Notepadi. Vältige redigeerijaid, nagu Wordpad, mis võivad teie "koodile" lisada kasutu (eesmärgipärase) süntaksi.
Kui olete valitud redaktoris, näete, et teie AutoHotKey skripti ülaosas on juba mõned read eeltäidetud. Need on seal stabiilsuse ja ühilduvuse huvides. Neid saab kohandada, kuid jätke need selle õpetuse jaoks nii, nagu nad on.
Liigutage kaks või kolm rida nende alla ja sisestage otsetee, mis käivitab teie funktsiooni. Klahvikombinatsiooni saate luua, kasutades tõstuklahvi "+", CTRL-i jaoks "^", "!" Alt jaoks ja "#" Windowsi klahvi jaoks, samuti klaviatuuri mis tahes "tavaline" klahv (tähed ja numbrid).
Näiteks skripti käivitamiseks kombinatsiooniga CTRL + Y, kasutage järgmist:
^y::
Topelt ":" on nagu ütlemine: "Hei, AutoHotKey, palun vastendage vasakpoolne string või klahvikombinatsioon kõigega paremal".
"Teisaldage" kaks või kolm rida allapoole, vajutades sisestusklahvi, ja tippige "return", mis tähistab konkreetse funktsiooni lõppu. Täielik tulemus peaks välja nägema järgmine:
^y::
; See on kommentaar.
tagasi
"; See on kommentaar." rida on just see kommentaar skripti "koodis", mida AutoHotKey ei käivita. See on seal dokumenteerimise eesmärgil, et märkida koht, kuhu järgmiste sammude käigus skripti "koodi" sisestame.
Kui olete järginud meie juhendit rakendusespetsiifiliste kiirklahvide loomine AutoHotKey abil minevikus, antud juhul... ära tee. Soovite, et teie akna tsentreerimise kiirklahv oleks tsentreerimiseks "globaalne". ükskõik milline aknast ükskõik milline rakendus. Kui seote selle konkreetse rakendusega, toimib see ainult selle rakenduse akendele.
Hankige aktiivse akna üksikasjad
Soovime, et meie otsetee toimiks aktiivsele aknale ja vajame arvutuste jaoks ka selle mõõtmeid. Leiame need üksikasjad järgmiste andmetega:
WinGetTitle, ActiveWindowTitle, A
WinGetPos laius, kõrgus, %ActiveWindowTitle%
Asendage eelmises jaotises skriptile lisatud kommentaaririda kahe ülaltoodud reaga. Tulemus?
- Esimene rida haarab aktiivse akna pealkirja.
- Teine rida loeb selle laiuse ja kõrguse ning seostab need sõnadega/muutujatega "Laius" ja "Kõrgus", mida kasutame järgmisena oma arvutustes.
Saime aktiivse akna detailid, kuid eesmärgi saavutamiseks vajame ka monitori nähtava ala mõõtmeid. Õnneks on nende leidmine veelgi lihtsam.
Kuidas on lood esmase monitori alaga?
Me ei vaja oma peamise monitori laiuse ja kõrguse leidmiseks lisakäske. AutoHotKey sisaldab kahte eelseadistatud muutujat, mis juba sisaldavad seda teavet meie jaoks: "A_ScreenWidth" ja "A_ScreenHeight".
Seega, kui näete neid järgmises jaotises, sisaldavad need juba peamise monitori laiust ja kõrgust. Neile õigete väärtuste määramiseks pole midagi vaja. Seega saame neid oma arvutustes otse kasutada.
Aeg sihtpositsiooni arvutamiseks
Arvutused saame lisada otse skripti punktidesse, kus neid vajame. Siiski on loetavuse jaoks lihtsam ja parem, kui kaardistame need kahe muutujaga ja siis kasutage neid muutujaid meie skriptis.
Niisiis, valime muutuja "TargetX" kui muutuja, mis hoiab horisontaalseid koordinaate ja "TargetY" kui muutuja. üks vertikaalsete koordinaatidega, kuhu peaksime akna liigutama, et see ilmuks akna keskele ekraan.
TargetX := (A_ScreenWidth/2)-(Laius/2); Siin arvutame horisontaalse aken sihtmärk...
TargetY := (A_ScreenHeight/2)-(Height/2); ...ja siin vertikaalne.
Dešifreerime need read lihtsas inglise keeles:
- "TargetX" ja "TargetY" on kaks muutujat.
- ":=" teatab AutoHotKeyle, et muutujad peaksid olema võrdsed parempoolsete arvutuste tulemustega ja neid tulemusi tuleks käsitleda numbritena.
- "(A_ScreenWidth/2)" jagab monitori kogu laiuse kahega.
- "(Laius/2)" teeb sama aktiivse akna laiuse puhul.
Ülaltooduga lahutame poole ekraani laiusest poole aktiivse akna laiusest. Alles jääb ruumi aknast vasakule – ekraani vasakust servast ja ülespoole, kuhu aken peaks ilmuma. Teine rida teeb sama, kuid kõrguse jaoks.
Nüüd akna ümber paigutamiseks
Ülaltoodud müstilistest käskudest saadud kõikvõimsate teadmistega saame nüüd meisterdada oma maagilise loitsu, mis viib lõpule akna teleportatsiooni rituaali. Või lihtsas inglise keeles kasutage akende liigutamiseks ekraanil AutoHotKey käsku "WinMove".
WinMove eeldab, et me "toidame" seda ette vähemalt kolme teabega: sihitud akna pealkiri ja koordinaadid, kuhu see liigutada. Kuna oleme need teabetükid juba muutujatega kaardistanud, on käsk sama lihtne:
WinMove, %ActiveWindowTitle%, %TargetX%, %TargetY%
Ülalolevas:
- "WinMove" on AutoHotKey käsk, mis liigutab akent ringi.
- "%ActiveWindowTitle%" on muutuja, millega aktiivse akna pealkiri on vastendatud.
- „%TargetX%” ja „%TargetY%” on horisontaalsed ja vertikaalsed koordinaadid, kuhu akent liigutada.
Samuti saate WinMove'iga akende suurust muuta, vahele jätta need, mille pealkirjas või sisus on teatud tekstitorkeid jne. Kuna need funktsioonid ei kuulu selle artikli reguleerimisalasse, kontrollige AutoHotKey ametlik dokumentatsioon käsu WinMove kohta nende kohta lisateabe saamiseks.
Lõplik skript
Lõpuks jõuame oma teekonna kõige keerulisema osani. Valmistuge järgmiseks sammuks, eeldades, et salvestate skripti ja noh... Käivitage see.
Jah, see oli kõik – stsenaarium on valmis ja pole muud teha, kui seda proovida. Kasutage määratletud otseteed ja iga aktiivne aken liigub teie ekraani keskele.
Lõplik skriptifail peaks tekstiredaktoris avatud kujul välja nägema umbes selline:
#NoEnv; Soovitatav jõudluse ja ühilduvuse tagamiseks tulevaste AutoHotkey väljalasetega.
; #Hoiata; Lubage hoiatused, mis aitavad tuvastada levinud vigu.
SendMode sisend; Soovitatav jaoksuus skriptid tänu oma suurepärasele kiirusele ja töökindlusele.
SetWorkingDir %A_ScriptDir%; Tagab järjepideva alguskataloogi.
^y::
WinGetTitle, ActiveWindowTitle, A; Hankige aktiivne aken's tiitli eest "sihtimine" see/selle järgi tegutsemine.
WinGetPos laius, kõrgus, %ActiveWindowTitle%; Saa aktiivseks akenpositsiooni, kasutatud jaoks meie arvutused.
TargetX := (A_ScreenWidth/2)-(Laius/2); Arvutage horisontaalne sihtmärk, kuhu me liigutame aken.
TargetY := (A_ScreenHeight/2)-(Kõrgus/2); Arvutage vertikaalne paigutus kohta a aken.WinMove, %ActiveWindowTitle%, %TargetX%, %TargetY%; Liigutage aken arvutatud koordinaatidele.
tagasi
Pange tähele, et saate ülaltoodud skripti kopeerida, kleepida Notepadi või sarnasesse tekstiredaktorisse ja salvestada AHK-laiendiga. Seejärel käivitage see koos installitud AutoHotKeyga, et tsentreerida mis tahes aken, kui vajutate klahvikombinatsiooni CTRL + Y. Kui teile see otsetee ei meeldi, kohandage rida "^y::" teisele klahvikombinatsioonile. Näiteks, !+c::
vastendaks funktsiooni Shift + Alt + C klahvikombinatsiooniga.
Lisalugu
Teie mugavuse huvides oleme otsustanud välja võluda ja lisada teisese skripti, mis on kasulik neile, kellel on kahe monitori seadistus.
Selle artikli sujuvamaks muutmiseks lisasime selle asemel kommentaaridena teabe selle kohta, kuidas skript töötab. Saate need iteratsioonist eemaldada.
Lühike lugu selle erinevusest ülaltoodud skriptist seisneb selles, et lisame ka PositionToggle muutuja ja mõne "IF-loogika". Seejärel kasutame neid akende "nipsutamiseks" kuvarite vahel. Peaksime märkima, et see on probleemile ebaelegantne ja "hack-y" lahendus. Siiski eelistasime seda sujuvamale koodile, kuna seda lähenemisviisi on lihtsam mõista ja kohandada kõigile, kes pole AutoHotKeyga tuttavad.
#NoEnv; Soovitatav jõudluse ja ühilduvuse tagamiseks tulevaste AutoHotkey väljalasetega.
; #Hoiata; Lubage hoiatused, mis aitavad tuvastada levinud vigu.
SendMode sisend; Soovitatav jaoksuus skriptid tänu oma suurepärasele kiirusele ja töökindlusele.
SetWorkingDir %A_ScriptDir%; Tagab järjepideva alguskataloogi.
PositionToggle = 1; Kasuta a numbernagu lüliti jaoks märgistamine peal mis jälgivad aken peaks ilmuma.
^y::
WinGetTitle, ActiveWindowTitle, A
WinGetPos laius, kõrgus, %ActiveWindowTitle%Kui PositionToggle = 1; Kontrollima lüliti olek ja "teha mis on lokkis sulgude vahel", kui see on seatudjuurde1jaoks meie peamine monitor.
{
TargetX := (A_ScreenWidth/2)-(Width/2)
TargetY := (A_ScreenHeight/2)-(Height/2)
PositionToggle = 2; "Nipsake" lüliti nii, et kui me kiirklahvi uuesti kasutame, liigub meie aktiivne aken teisele monitorile.
}
Else If PositionToggle = 2; Kas oleme kiirklahvi varem kasutanud, "nipsutamine" lülitusnumber teisele monitorile? Siis peaks skript hoopis tegema mida's järgmiste lokkis sulgude vahel ülaltoodud asemel.
{
SysGet, Mon2, monitor, 2; Hangi teine monitor's üksikasjad
Esmasp2Width := Esmasp2Paremal - P2Vasakule; Arvutage teine monitor's tegelik laius.
Esmasp2Kõrgus := K2Alumine - K2Ülemine; Arvutage teine monitor's tegelik kõrgus.TargetX := (Esmaspäeva laius/2)-(Width/2)+A_ScreenWidth; Arvutage, kuhu aken liigutada. Pange tähele, et lisame ka peamise monitori's laius, kuna AutoHotKey suudab't liigutada aknaid üksikutel monitoridel, vaid üle nende kombineeritud "pinnale".
TargetY := (esmasp2kõrgus/2)-(kõrgus/2)+esmasp2ülemine; Arvutage optimaalne vertikaalne sihtmärk akna liigutamiseks teisel monitoril. Nagu ülal, teine monitor's vertikaalsed detailid tuvastatakse peamise monitori suhtes. Seega peame olema loomingulised, et saada optimaalne sihtmärk, tunnistades, kuidas teine monitor's top isn't võrdne 0-ga (nagu esmane's).PositionToggle = 1; Nipsake lülitit tagasi, nii et kui me taaskasutame kiirklahvi, the aken liigub tagasi esmasele monitorile.
}WinMove, %ActiveWindowTitle%, %TargetX%, %TargetY%; Tegelik tegevus, aktiivse liigutamine aken meie arvutatud koordinaatidele.
tagasi
Keskendage aken võtmega lihtsal viisil
Ja nüüd olete valmis! Kui kõik töötab hästi, saate nüüd kasutada äsja seadistatud kiirklahvi, et igal ajal aken tsentreerida.
Otsige üles, kus te oma aega Windowsis raiskate, kasutades AutoHotKey
Loe edasi
Seotud teemad
- Windows
- Windows 10
- Windows 11
- AutoHotkey
- Windowsi kohandamine
Autori kohta
OK tegelik elu algas umbes kell 10, kui ta sai oma esimese arvuti – Commodore 128. Sellest ajast peale on ta sulatanud klahviotsi, kirjutades 24/7, püüdes levitada The Word Of Techi kõigile huvilistele, et neid kuulata. Või õigemini lugeda.
Liituge meie uudiskirjaga
Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!
Tellimiseks klõpsake siin