Eikö olekin äärimmäisen ärsyttävää, että ainakin Windowsissa mikä tahansa ikkuna saattaa ponnahtaa mihin tahansa näytölle? Kärsiikö tämä päivittäinen satunnaisuus hermoiltasi, ja haluaisitko hallita enemmän ikkunoiden sijoittelua näytöllä? No, nyt voit, kiitos AutoHotKeyn.

Tässä opetusohjelmassa näemme, kuinka voit ratkaista tämän ongelman AutoHotKey-komentosarjalla. Rakennamme sen niin, että se liikkuu minkä tahansa ikkuna näytön keskelle näppäintä painamalla. Kuulostaako makealta? Katsotaan kuinka se tehdään!

Ikkunoiden keskittävän pikanäppäimen määrittäminen AutoHotKeyllä

Puolet taistelusta käsikirjoituksen luomisessa on sen toimivuuden keksiminen, ennen kuin edes kirjoitat yhden merkin. Tehdään siis sellainen toimintasuunnitelma yksinkertaisella englannin kielellä, että sitten "muutetaan" käsikirjoitukseksi.

"Ongelma" Windowsissa on

Windows (kuten "suorakulmio näytöillämme", ei käyttöjärjestelmä) yleensä ponnahtaa mihin tahansa näytölle. Se häiritsee, ja se voi myös olla ärsyttävää, kun se tapahtuu toistuvasti. Varsinkin silloin, kun on kyse useista pyynnön esittäjistä, jotka pomppaavat eri kohteisiin odottaen käyttäjän syötteitä.

instagram viewer

Ongelman ratkaisu

Sen lisäksi, että AutoHotKey lähettää näppäinpainalluksia ja hiiren napsautuksia mihin tahansa ikkunaan, se voi myös käsitellä niitä. Näimme aiemmin, kuinka voit kiinnitä ikkunat "aina päälle" käyttämällä AutoHotKeyä pikanäppäimellä. Tällä kertaa hyödynnämme kuitenkin AutoHotKeyn ikkunankäsittelykykyjä:

  1. "Lue" aktiivisen ikkunan tunnus.
  2. "Lue" myös sen mitat (leveys ja korkeus).
  3. "Lue" näytön mitat.
  4. Yhdistä näytön ja ikkunan mitat laskeaksesi optimaaliset koordinaatit mainitun ikkunan esittämiselle näytön keskellä.
  5. Siirrä ikkuna näihin koordinaatteihin.

Lopuksi yhdistämme yllä olevan pikakuvakkeen. Tällä tavalla voit kutsua sitä "on-demandiksi" sen sijaan, että käyttäisit sitä kaikki windows - jotka voivat häiritä koko näytön sovellusten ja pelien toimintaa.

Huomaa, että tässä opetusohjelmassa sukeltamme suoraan AutoHotKey-sovellukseen. Jos et ole perehtynyt siihen ja haluat tietää lisää etukäteen, tutustu sivuillemme nopea AutoHotKey-opas aloittelijoille.

Ensinnäkin pikanäppäimen määrittäminen

Mainitsimme, kuinka luomme funktion pikakuvakkeeksi. On kuitenkin luultavasti parempi, jos aloitamme kyseisestä osasta saadaksemme sen pois tieltä.

Aloita lataamalla asennusohjelma osoitteesta AutoHotKeyn virallinen sivusto. Valitse "nykyinen" versio v2-betaversion tai vanhentuneen 1.0-version sijaan. Asenna se sitten tietokoneellesi.

Käynnistä File Explorer (nopein tapa on Windows Key + E -näppäinyhdistelmä) ja siirry polkuun, johon haluat luoda komentosarjan. Kun AutoHotKey on asennettu, hiiren kakkospainikkeen valikkoon tulee näkyviin uusia vaihtoehtoja. Joten napsauta hiiren kakkospainikkeella File Explorerin ikkunan tyhjää tilaa ja valitse Uusi > AutoHotKey Script.

Anna komentosarjan tiedostolle nimi ja napsauta sitä hiiren kakkospainikkeella ja muokata se. Jos et käytä koodiystävällistä tekstinmuokkaussovellusta, kuten Visual Studio Code tai Notepad++, käytä Windowsin Muistio-ohjelmaa. Vältä muokkaajia, kuten Wordpad, jotka voivat lisätä "koodiisi" turhaa (tarkoitusta varten) syntaksia.

Kun olet valitsemassasi editorissa, näet, että AutoHotKey-skriptissäsi on jo valmiiksi täytetty rivejä yläreunassa. Ne ovat olemassa vakauden ja yhteensopivuuden vuoksi. Ne ovat säädettävissä, mutta jätä ne sellaisina kuin ne ovat tätä opetusohjelmaa varten.

"Siirrä" kaksi tai kolme riviä niiden alle ja syötä pikakuvake, joka käynnistää toiminnon. Voit luoda näppäinyhdistelmän käyttämällä "+" vaihtonäppäintä, "^" CTRL-näppäintä, "!" Alt-näppäimellä ja #-näppäimellä Windows-näppäimellä sekä kaikki näppäimistön "normaalit"-näppäimet (kirjaimet ja numerot).

Jos esimerkiksi haluat käynnistää komentosarjan CTRL + Y -yhdistelmällä, käytä:

^y::

Kaksois ":" on kuin sanoisi: "Hei, AutoHotKey, yhdistä vasemmalla oleva merkkijono tai näppäinyhdistelmä kaikkeen oikeaan".

"Siirrä" kaksi tai kolme riviä sen alapuolelle painamalla Enter ja kirjoita "return", joka merkitsee tietyn funktion lopun. Täydellisen tuloksen pitäisi näyttää tältä:

^y::
; Tämä On kommentti.
palata

"; Tämä on kommentti." rivi on juuri se, komentosarjan "koodissa" oleva kommentti, jota AutoHotKey ei suorita. Se on olemassa dokumentointia varten sen paikan merkitsemiseksi, johon kirjoitamme skriptin "koodin" seuraavissa vaiheissa.

Jos olet noudattanut opastamme luoda sovelluskohtaisia ​​pikanäppäimiä AutoHotKeyllä menneisyydessä, tässä tapauksessa... älä. Haluat ikkunan keskittämisen pikanäppäimesi olevan "globaali" keskitettäväksi minkä tahansa ikkunasta minkä tahansa sovellus. Jos "sido se" tiettyyn sovellukseen, se vaikuttaa vain tämän sovelluksen ikkunoihin.

Hanki aktiivisen ikkunan tiedot

Haluamme pikakuvakkeen vaikuttavan aktiiviseen ikkunaan, ja tarvitsemme myös sen mitat laskelmiimme. Voimme löytää nämä tiedot seuraavista:

WinGetTitle, ActiveWindowTitle, A
WinGetPos Leveys, Korkeus, %ActiveWindowTitle%

Korvaa komentorivi, jonka olemme lisänneet komentosarjaan edellisessä osiossa, kahdella yllä olevalla rivillä. Lopputulos?

  • Ensimmäinen rivi nappaa aktiivisen ikkunan otsikon.
  • Toinen rivi lukee sen leveyden ja korkeuden ja kartoittaa ne sanoihin/muuttujiin "Leveys" ja "Korkeus", joita käytämme seuraavaksi laskelmissamme.

Saimme aktiivisen ikkunan tiedot, mutta tarvitsemme myös näytön näkyvän alueen mitat saavuttaaksemme tavoitteemme. Onneksi niiden löytäminen on vielä helpompaa.

Entä ensisijainen valvonta-alue?

Emme tarvitse ylimääräisiä komentoja ensisijaisen näyttömme leveyden ja korkeuden selvittämiseen. AutoHotKeyssä on kaksi esiasetettua muuttujaa, jotka sisältävät jo nämä tiedot meille: "A_ScreenWidth" ja "A_ScreenHeight".

Joten kun näet ne seuraavassa osiossa, ne "sisältävät" ensisijaisen näytön leveyden ja korkeuden. Niille ei tarvitse antaa oikeita arvoja. Näin ollen voimme käyttää niitä suoraan laskelmissamme.

Aika laskea kohdesijainti

Voimme sisällyttää laskelmat suoraan komentosarjan kohtiin, missä niitä tarvitaan. Silti se on helpompaa ja parempi luettavuuden kannalta, jos kartoitamme ne kahteen muuttujaan ja sitten käytä näitä muuttujia skriptissämme.

Otetaan siis "TargetX" muuttujaksi, joka sisältää vaakakoordinaatit ja "TargetY" muuttujaksi. yksi, jossa on pystysuorat koordinaatit, johon meidän pitäisi siirtää ikkuna, jotta se näkyy keskellä näyttö.

TargetX := (A_ScreenWidth/2)-(Leveys/2); Tässä lasketaan vaaka ikkuna kohde...
TargetY := (A_ScreenHeight/2)-(Height/2); ...ja tässä pystysuora.

Selvitetään nämä rivit selkeällä englannin kielellä:

  • "TargetX" ja "TargetY" ovat kaksi muuttujaa.
  • ":=" ilmoittaa AutoHotKeylle, että muuttujien tulee olla yhtä suuria kuin oikealla olevien laskelmien tulokset ja että näitä tuloksia tulee käsitellä numeroina.
  • "(A_ScreenWidth/2)" jakaa näytön täyden leveyden kahdella.
  • "(Leveys/2)" tekee saman aktiivisen ikkunan leveydelle.

Yllä olevan avulla vähennämme puolet aktiivisen ikkunan leveydestä puolesta näytön leveydestä. Jäljellä on ikkunan vasemmalla puolella oleva tila - näytön vasemmasta reunasta ja siihen kohtaan, jossa ikkunan pitäisi näkyä. Toinen rivi tekee saman, mutta korkeuden osalta.

Nyt voit sijoittaa ikkunan uudelleen

Yllä näkemämme mystisten käskyjen avulla hankitun kaikkivoimakkaan tiedon avulla voimme nyt luoda maagisen loitsumme, joka täydentää ikkunan teleportaatiorituaalin. Tai englanninkielisenä, käytä AutoHotKeyn "WinMove"-komentoa siirtääksesi ikkunoita ympäri ruutua.

WinMove odottaa, että "syötämme" sille vähintään kolme tietoa toimiakseen: kohdeikkunan otsikko ja koordinaatit, minne se siirretään. Koska olemme jo yhdistäneet nämä tiedot muuttujiin, komento on niin yksinkertainen kuin:

WinMove, %ActiveWindowTitle%, %TargetX%, %TargetY%

Yllä olevassa:

  • "WinMove" on AutoHotKey-komento, joka siirtää ikkunaa ympäriinsä.
  • "%ActiveWindowTitle%" on muuttuja, johon aktiivisen ikkunan otsikko kartoitetaan.
  • "%TargetX%" ja "%TargetY%" ovat vaaka- ja pystykoordinaatit, joihin ikkuna siirretään.

Voit myös muuttaa ikkunoiden kokoa WinMovella, ohittaa ikkunat, joiden otsikoissa tai sisällössä on tiettyjä tekstiä jne. Koska nämä ominaisuudet eivät kuulu tämän artikkelin piiriin, tarkista AutoHotKeyn virallinen dokumentaatio WinMove-komennosta lisätietoja niistä.

Lopullinen käsikirjoitus

Lopulta saavutamme matkamme haastavimman osan. Valmistaudu seuraavaan vaiheeseen, joka odottaa sinun tallentavan käsikirjoituksen ja... Suorita se.

Kyllä, siinä se oli - käsikirjoitus on valmis, eikä sinun tarvitse tehdä muuta kuin kokeilla sitä. Käytä määrittämääsi pikakuvaketta, niin kaikki aktiiviset ikkunat siirtyvät näytön keskelle.

Tekstieditorissa avatun lopullisen skriptitiedoston pitäisi näyttää suunnilleen tältä:

#NoEnv; Suositellaan suorituskyvyn ja yhteensopivuuden vuoksi tulevien AutoHotkey-julkaisujen kanssa.
; #Varoittaa; Ota käyttöön varoitukset, jotka auttavat havaitsemaan yleisiä virheitä.
SendMode Input; Suositeltava vartenUusi skriptejä sen ylivoimaisen nopeuden ja luotettavuuden ansiosta.
SetWorkingDir %A_ScriptDir%; Varmistaa johdonmukaisen aloitushakemiston.
^y::
WinGetTitle, ActiveWindowTitle, A; Hanki aktiivinen ikkuna's otsikko "kohdistaminen" se/toimia sen mukaan.
WinGetPos Leveys, Korkeus, %ActiveWindowTitle%; Aktivoi ikkunaasema, käytetty varten meidän laskelmiamme.
TargetX := (A_ScreenWidth/2)-(Leveys/2); Laske vaakasuuntainen kohde, johon siirrämme ikkuna.
TargetY := (A_ScreenHeight/2)-(Korkeus/2); Laske pystysuora sijoitus / the ikkuna.

WinMove, %ActiveWindowTitle%, %TargetX%, %TargetY%; Siirrä ikkuna laskettuihin koordinaatteihin.

palata

Huomaa, että voit kopioida yllä olevan skriptin, liittää sen Muistioon tai vastaavaan tekstieditoriin ja tallentaa sen AHK-laajennuksella. "Suorita" sitten se, kun AutoHotKey on asennettu, keskittääksesi minkä tahansa ikkunan, kun painat CTRL + Y. Jos et pidä tästä pikanäppäimestä, säädä "^y::"-rivi toiseksi näppäinyhdistelmäksi. Esimerkiksi, !+c:: yhdistäisi funktion Shift + Alt + C -näppäinyhdistelmään.

Bonusraita

Avuksesi vuoksi olemme päättäneet loihtia ja sisällyttää toissijaisen skriptin, joka on hyödyllinen niille, joilla on kaksi näyttöä.

Jotta tämä artikkeli olisi virtaviivainen, olemme sen sijaan sisällyttäneet siihen kommenttien muodossa tietoja siitä, miten komentosarja toimii. Voit poistaa ne iteraatiostasi.

Lyhyt tarina siitä, miten se eroaa yllä olevasta skriptistä, on se, että lisäämme myös PositionToggle-muuttujan ja jonkin verran "IF-logiikkaa". Käytämme niitä sitten "sipaisemaan" ikkunaa näyttöjen välillä. Meidän tulee huomata, että se on tyylikäs ja "hakkeroitu" ratkaisu ongelmaan. Pidimme kuitenkin sitä parempana kuin virtaviivaisempaa koodia, koska tämä lähestymistapa on helpompi ymmärtää ja säätää kaikille, jotka eivät tunne AutoHotKeyä.

#NoEnv; Suositellaan suorituskyvyn ja yhteensopivuuden vuoksi tulevien AutoHotkey-julkaisujen kanssa.
; #Varoittaa; Ota käyttöön varoitukset, jotka auttavat havaitsemaan yleisiä virheitä.
SendMode Input; Suositeltava vartenUusi skriptejä sen ylivoimaisen nopeuden ja luotettavuuden ansiosta.
SetWorkingDir %A_ScriptDir%; Varmistaa johdonmukaisen aloitushakemiston.
PositionToggle = 1; Käyttää a määräkuten kytkin varten merkintä päällä jotka valvovat ikkuna pitäisi ilmestyä.
^y::
WinGetTitle, ActiveWindowTitle, A
WinGetPos Leveys, Korkeus, %ActiveWindowTitle%

Jos PositionToggle = 1; Tarkistaa kytkimen tila ja "tehdä mitä on kiharoiden suluissa", jos se on asetakohtaan1varten päämonitorimme.
{
TargetX := (A_ScreenWidth/2)-(Width/2)
TargetY := (A_ScreenHeight/2)-(Height/2)
PositionToggle = 2; "Leffa" kytkin niin, että jos käytämme pikanäppäintä uudelleen, aktiivinen ikkunamme siirtyy toiseen näyttöön.
}
Else If PositionToggle = 2; Olemmeko käyttäneet pikanäppäintä aiemmin, "heilauttaminen" vaihtaa numero toiseen näyttöön? Sitten käsikirjoituksen pitäisi sen sijaan tehdä mitä's seuraavien hakasulkeiden välissä yllä olevien sijaan.
{
SysGet, Mon2, näyttö, 2; Hanki toinen näyttö's yksityiskohdat
ma2leveys := ma2oikea - ma2vasen; Laske toinen näyttö's todellinen leveys.
Mon2Korkeus := Mon2Bottom - Ma2Top; Laske toinen näyttö's todellinen korkeus.

TargetX := (Maan2Width/2)-(Width/2)+A_ScreenWidth; Laske mihin ikkuna siirretään. Huomaa, että lisäämme myös ensisijaisen näytön's leveys, koska AutoHotKey voi't siirrä ikkunoita yksittäisissä näytöissä, mutta ne yhdessä "pinta-".
KohdeY := (Ma2Korkeus/2)-(Korkeus/2)+Ma2Top; Laske optimaalinen pystysuuntainen kohde ikkunan siirtämiseksi toisessa näytössä. Kuten edellä, toinen näyttö's pystysuuntaiset yksityiskohdat havaitaan suhteessa ensisijaiseen näyttöön. Siksi meidän on oltava luovia saadaksemme optimaalisen tavoitteen tunnustamalla, miten toinen näyttö's top isn't yhtä suuri kuin 0 (kuten ensisijainen's).

PositionToggle = 1; Pyyhkäise kytkintä taaksepäin niin jos käytämme uudelleen pikanäppäintä, the ikkuna siirtyy takaisin ensisijaiseen näyttöön.
}

WinMove, %ActiveWindowTitle%, %TargetX%, %TargetY%; Varsinainen toiminta, aktiivisten siirtäminen ikkuna laskemiimme koordinaatteihimme.

palata

Keskitä ikkuna avaimella, helppo tapa

Ja nyt olet valmis! Jos kaikki toimii hyvin, voit nyt käyttää juuri määritettyä pikanäppäintä keskittääksesi ikkunan milloin tahansa.

Löydä missä hukkaat aikaasi Windowsissa AutoHotKeyn avulla

Lue Seuraava

JaaTweetJaaSähköposti

Liittyvät aiheet

  • Windows
  • Windows 10
  • Windows 11
  • AutoHotkey
  • Windowsin mukauttaminen

Kirjailijasta

Odysseas Kourafalos (31 artikkelia julkaistu)

OK: n todellinen elämä alkoi noin 10-vuotiaana, kun hän sai ensimmäisen tietokoneensa - Commodore 128:n. Siitä lähtien hän on sulattanut näppäimiä kirjoittamalla 24/7 ja yrittänyt levittää The Word Of Techiä kaikille kiinnostuneille kuuntelemaan. Tai pikemminkin lukea.

Lisää Odysseas Kourafalosilta

tilaa uutiskirjeemme

Liity uutiskirjeemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e-kirjoja ja eksklusiivisia tarjouksia!

Klikkaa tästä tilataksesi