Hát nem rendkívül bosszantó, hogy legalább Windows rendszeren bármelyik ablak felbukkanhat bárhol a képernyőn? Ez a napi véletlenszerűség az idegeidre megy, és jobban szeretnéd, ha jobban ellenőriznéd az ablakok képernyőn történő elhelyezését? Nos, most megteheti, hála az AutoHotKey-nek.

Ebben az oktatóanyagban meglátjuk, hogyan oldhatja meg ezt a problémát egy AutoHotKey szkripttel. Megépítjük, hogy mozogjon Bármi egy gombnyomással a képernyő közepére. Édesen hangzik? Lássuk, hogyan készült!

Ablakközpontosító gyorsbillentyű beállítása az AutoHotKey segítségével

A forgatókönyv létrehozásakor a fél siker egy karakter beírása előtt kitalálni, hogyan fog működni. Tehát készítsünk egy ilyen cselekvési tervet egyszerű angol nyelven, hogy aztán „mutáljunk” egy forgatókönyvet.

A "Probléma" Windows Has

A Windows (mint a "képernyőnk téglalapjaiban", nem az operációs rendszerben) hajlamos a képernyőn bárhol megjelenni. Eltereli a figyelmet, és bosszantó is lehet, ha ismétlődően megtörténik. Főleg, ha több kérővel van dolgunk, akik különböző helyeken bukkannak fel, és felhasználói bevitelt várnak.

instagram viewer

A probléma megoldása

Amellett, hogy billentyűleütéseket és egérkattintásokat küld bármely ablakba, az AutoHotKey manipulálni is tudja azokat. Láttuk a múltban, hogyan lehet használja az AutoHotKey-t az ablakok „mindig a tetejére” rögzítéséhez billentyűparancs segítségével. Ezúttal azonban kihasználjuk az AutoHotKey ablakkezelési képességeit, hogy:

  1. "Olvassa el" az aktív ablak azonosítóját.
  2. "Olvassa el" a méreteit is (szélesség és magasság).
  3. "Olvassa el" a monitor méreteit.
  4. Kombinálja a monitor és az ablak méreteit, hogy kiszámítsa az optimális koordinátákat az ablak megjelenítéséhez a képernyő közepén.
  5. Mozgassa az ablakot ezekre a koordinátákra.

Végül a fentieket leképezzük egy parancsikonra. Ily módon „igény szerint” hívhatja ahelyett, hogy alkalmazná minden windows – amelyek zavarhatják a teljes képernyős alkalmazásokat és játékokat.

Ne feledje, hogy ebben az oktatóanyagban közvetlenül az AutoHotKey-be merülünk. Ha nem ismeri, és előtte többet szeretne megtudni, nézze meg oldalunkat gyors AutoHotKey útmutató kezdőknek.

Először is a gyorsbillentyű beállítása

Említettük, hogyan fogjuk leképezni a létrehozandó függvényt egy parancsikonhoz. Azonban valószínűleg jobb, ha ezzel a résszel kezdjük, hogy elkerüljük az útból.

Kezdje a telepítő letöltésével innen Az AutoHotKey hivatalos webhelye. Válassza a "jelenlegi" verziót a v2 béta vagy az elavult 1.0-s verzió helyett. Ezután telepítse a számítógépére.

Indítsa el a Fájlkezelőt (a leggyorsabb módja a Windows Key + E billentyűkombináció), és lépjen arra az elérési útra, ahol létre szeretné hozni a szkriptet. Ha az AutoHotKey telepítve van, néhány új lehetőség jelenik meg a jobb gombbal kattintó menüben. Tehát kattintson jobb gombbal a File Explorer ablakának üres területére, és válassza a lehetőséget Új > AutoHotKey Script.

Adjon nevet a szkript fájljának, majd kattintson rá jobb gombbal, és szerkeszteni azt. Ha nem használ kódbarát szövegszerkesztő alkalmazást, például a Visual Studio Code-ot vagy a Notepad++-t, használja a Windows Jegyzettömböt. Kerülje az olyan szerkesztőket, mint a Wordpad, amelyek haszontalan (a cél érdekében) szintaxist adhatnak a "kódhoz".

A választott szerkesztőben látni fogja, hogy az AutoHotKey szkriptjében már van néhány sor előre kitöltve a tetején. Stabilitási és kompatibilitási okokból vannak ott. Ezek módosíthatók, de hagyja őket úgy, ahogy vannak ebben az oktatóanyagban.

„Mozgasson” két vagy három sort alájuk, és adja meg a parancsikont, amely elindítja a funkciót. Billentyűkombinációt létrehozhat a "+" használatával a Shift, a "^" használatával a CTRL, a "!" Az Alt, és a "#" a Windows billentyű, valamint a billentyűzet bármely "normál" billentyűje (betűk és számok).

Például a CTRL + Y kombináció elindításához használja a szkriptet:

^y::

A dupla ":" olyan, mintha azt mondaná: "Hé, AutoHotKey, kérjük, rendelje hozzá a bal oldali karakterláncot vagy billentyűkombinációt a jobb oldalon lévő összeshez".

„Mozgasson” két vagy három sorral ez alá az Enter megnyomásával, és írja be a „return” parancsot, amely az adott függvény végét jelzi. A teljes eredménynek a következőképpen kell kinéznie:

^y::
; Ez van egy komment.
Visszatérés

A "; Ez egy megjegyzés." sor pontosan ez, egy megjegyzés a szkript "kódjában", amelyet az AutoHotKey nem hajt végre. Dokumentációs célból itt jelöljük meg azt a helyet, ahol a következő lépésekben beírjuk a szkript „kódját”.

Ha követte az útmutatónkat alkalmazás-specifikus gyorsbillentyűk létrehozása az AutoHotKey segítségével a múltban, ebben az esetben... ne. Azt szeretné, ha az ablak központosító gyorsbillentyűje "globális" legyen a központosításhoz Bármi ablaktól Bármi kb. Ha „kötözi” egy adott alkalmazáshoz, az csak az alkalmazás ablakaira fog hatni.

Szerezze meg az aktív ablak részleteit

Azt szeretnénk, ha a parancsikonunk az aktív ablakra hatna, és a méretei is szükségesek a számításokhoz. Ezeket a részleteket a következőkkel találhatjuk meg:

WinGetTitle, ActiveWindowTitle, A
WinGetPos szélesség, magasság, %ActiveWindowTitle%

Cserélje ki az előző szakaszban a szkripthez hozzáadott megjegyzéssort a fenti két sorra. Az eredmény?

  • Az első sor megragadja az aktív ablak címét.
  • A második sor a szélességét és magasságát olvassa le, és leképezi azokat a „Szélesség” és „Magasság” szavakra/változókra, amelyeket ezután a számításainkhoz használunk.

Megkaptuk az aktív ablak részleteit, de a cél eléréséhez szükségünk van a monitor látható területének méreteire is. Szerencsére ezeket még könnyebb megtalálni.

Mi a helyzet az elsődleges monitorozási területtel?

Nincs szükségünk extra parancsokra az elsődleges monitorunk szélességének és magasságának meghatározásához. Az AutoHotKey két előre beállított változóval érkezik, amelyek már tartalmazzák ezeket az információkat: „A_ScreenWidth” és „A_ScreenHeight”.

Tehát amikor a következő részben látja őket, már „tartalmazzák” az elsődleges monitor szélességét és magasságát. Semmi sem szükséges a megfelelő értékek hozzárendeléséhez. Így ezeket közvetlenül használhatjuk számításainkban.

Ideje a célpozíció kiszámításához

A számításokat közvetlenül a szkript azon pontjaiba foglalhatjuk, ahol szükségünk van rájuk. Mégis könnyebb és jobb olvashatóság, ha leképezzük őket két változóra és azután használja azokat a változókat a szkriptünkben.

Tehát válasszuk a „TargetX” változót, amely a vízszintes koordinátákat fogja, a „TargetY” pedig a változót. egy a függőleges koordinátákkal, ahová el kell mozgatnunk az ablakot, hogy az a közepén jelenjen meg képernyő.

TargetX := (A_ScreenWidth/2)-(Szélesség/2); Itt kiszámítjuk a vízszintes ablak cél...
TargetY := (A_ScreenHeight/2)-(Height/2); ...és itt a függőleges.

Fejtsük meg ezeket a sorokat egyszerű angol nyelven:

  • A „TargetX” és a „TargetY” a két változó.
  • A ":=" tájékoztatja az AutoHotKey-t, hogy a változóknak egyenlőnek kell lenniük a jobb oldali számítások eredményeivel, és ezeket az eredményeket számokként kell kezelni.
  • Az "(A_ScreenWidth/2)" elosztja a monitor teljes szélességét kettővel.
  • A „(Szélesség/2)” ugyanezt teszi az aktív ablak szélességénél.

A fentiekkel kivonjuk az aktív ablak szélességének felét a képernyő szélességének feléből. Ami maradt, az az ablak bal oldalán található hely – a képernyő bal oldalától kezdve egészen addig, ahol az ablaknak meg kell jelennie. A második sor ugyanezt teszi, de a magasságra.

Most helyezze át az ablakot

A fent látott misztikus parancsokból szerzett mindenható tudással felvértezve most megalkothatjuk mágikus varázslatunkat, amely befejezi az ablak teleportálási rituáléját. Vagy, egyszerű angol nyelven, használja az AutoHotKey "WinMove" parancsát az ablakok mozgatásához a képernyőn.

A WinMove azt várja el tőlünk, hogy legalább három információval „tápláljuk” meg, hogy végrehajtsa a tevékenységét: a megcélzott ablak címével és a koordinátákkal, hová vigye. Mivel ezeket az információkat már leképeztük változókra, a parancs egyszerű:

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

A fentiekben:

  • A "WinMove" az AutoHotKey parancs, amely egy ablakot mozgat.
  • A „%ActiveWindowTitle%” az a változó, amelyhez az aktív ablak címe hozzá van rendelve.
  • A „%TargetX%” és a „%TargetY%” azok a vízszintes és függőleges koordináták, ahová az ablakot el kell helyezni.

Az ablakokat a WinMove segítségével is átméretezheti, kihagyhatja azokat, amelyek címében vagy tartalmukban bizonyos szöveges csípések vannak stb. Mivel ezek a funkciók nem tartoznak a cikk hatálya alá, ellenőrizze Az AutoHotKey hivatalos dokumentációja a WinMove parancsról többet megtudni róluk.

A végső forgatókönyv

Végül elérjük utunk legnagyobb kihívást jelentő szakaszát. Készüljön fel a következő lépésre, amely elvárja, hogy elmentse a szkriptet, és hát... Futtasd.

Igen, ez volt – a forgatókönyv kész, és nincs más teendő, mint kipróbálni. Használja a megadott parancsikont, és minden aktív ablak a képernyő közepére kerül.

A szövegszerkesztőben megnyitott végső szkriptfájlnak valahogy így kell kinéznie:

#NoEnv; A teljesítmény és a jövőbeli AutoHotkey-kiadásokkal való kompatibilitás miatt ajánlott.
; #Figyelmeztet; Figyelmeztetések engedélyezése a gyakori hibák észlelésében.
SendMode bemenet; Ajánlott számáraúj szkriptek kiváló sebessége és megbízhatósága miatt.
SetWorkingDir %A_ScriptDir%; Konzisztens kezdőkönyvtárat biztosít.
^y::
WinGetTitle, ActiveWindowTitle, A; Szerezd meg az aktív ablakot's címe számára "célzás" ez/az arra való fellépés.
WinGetPos szélesség, magasság, %ActiveWindowTitle%; Vedd aktívvá ablakpozíciója, használt számára számításainkat.
TargetX := (A_ScreenWidth/2)-(Szélesség/2); Számítsd ki azt a vízszintes célpontot, ahova mozgatni fogjuk ablak.
TargetY := (A_ScreenHeight/2)-(Magasság/2); Számítsa ki a függőleges elhelyezést nak,-nek a ablak.

WinMove, %ActiveWindowTitle%, %TargetX%, %TargetY%; Mozdítsd meg a ablak a számított koordinátákra.

Visszatérés

Vegye figyelembe, hogy a fenti szkriptet kimásolhatja, beillesztheti a Jegyzettömbbe vagy egy hasonló szövegszerkesztőbe, és elmentheti egy AHK kiterjesztéssel. Ezután "futtassa" az AutoHotKey telepítésével, hogy az ablakokat középre állítsa, amikor megnyomja a CTRL + Y billentyűket. Ha nem tetszik ez a billentyűparancs, állítsa be a „^y::” sort egy másik billentyűkombinációra. Például, !+c:: a függvényt a Shift + Alt + C billentyűkombinációra képezi le.

Bónusz szám

Az Ön kényelme érdekében úgy döntöttünk, hogy egy másodlagos szkriptet varázsolunk és mellékelünk, amely hasznos lesz a kétmonitoros beállításokkal rendelkezők számára.

A cikk egyszerűsítése érdekében ehelyett megjegyzések formájában adtunk meg információkat a szkript működéséről. Eltávolíthatja őket az iterációból.

A rövid történet, hogy miben különbözik a fenti szkripttől, az az, hogy hozzáadunk egy PositionToggle változót és néhány "IF logikát". Ezután ezeket használjuk a monitorok közötti ablak "pöccintésére". Meg kell jegyeznünk, hogy ez egy elegáns és "hack-y" megoldás a problémára. Mindazonáltal előnyben részesítettük az egyszerűbb kóddal szemben, mivel ez a megközelítés könnyebben érthető és módosítható mindenki számára, aki nem ismeri az AutoHotKey-t.

#NoEnv; A teljesítmény és a jövőbeli AutoHotkey-kiadásokkal való kompatibilitás miatt ajánlott.
; #Figyelmeztet; Figyelmeztetések engedélyezése a gyakori hibák észlelésében.
SendMode bemenet; Ajánlott számáraúj szkriptek kiváló sebessége és megbízhatósága miatt.
SetWorkingDir %A_ScriptDir%; Konzisztens kezdőkönyvtárat biztosít.
PositionToggle = 1; Használat a számmint egy kapcsoló számára jelzés tovább amelyek figyelik a ablak meg kell jelennie.
^y::
WinGetTitle, ActiveWindowTitle, A
WinGetPos szélesség, magasság, %ActiveWindowTitle%

Ha PositionToggle = 1; Jelölje be a kapcsoló állapota és "csináld mi van a göndör zárójelek között", ha az készletnak nek1számára elsődleges monitorunk.
{
TargetX := (A_ScreenWidth/2)-(Width/2)
TargetY := (A_ScreenHeight/2)-(Height/2)
PositionToggle = 2; "Fricska" a kapcsolót úgy, hogy ha újra használjuk a gyorsbillentyűt, akkor az aktív ablakunk a második monitorra kerül.
}
Else If PositionToggle = 2; Használtuk már a gyorsbillentyűt, "pöccintés" a kapcsoló szám a második monitorra? Ezután a szkriptnek mit kell tennie's a következő göndör zárójelek között a fentiek helyett.
{
SysGet, Mon2, Monitor, 2; Szerezd meg a második monitort's részleteit
Mon2Width := Mon2Right - Mon2Left; Számítsa ki a második monitort's tényleges szélessége.
Mon2Height := Mon2Bottom - Mon2Top; Számítsa ki a második monitort's tényleges magassága.

TargetX := (Mon2Width/2)-(Width/2)+A_ScreenWidth; Számolja ki, hová kell mozgatni az ablakot. Figyeljük meg, hogy az elsődleges monitort is hozzáadjuk's szélessége az AutoHotKey óta'ne mozgassa az ablakokat az egyes monitorokon, de a kombinált monitorokon "felület".
TargetY := (Hétfő2Magasság/2)-(Magasság/2)+Hétfő2Felső; Számítsa ki az optimális függőleges célt az ablak mozgatásához a második monitoron. Mint fent, a második monitor's függőleges részleteket észlel az elsődleges monitorhoz képest. Így kreatívnak kell lennünk, hogy optimális célpontot kapjunk, elismerve, hogy a második monitor hogyan's felső isn't egyenlő 0-val (mint az elsődleges's).

PositionToggle = 1; Húzza vissza a kapcsolót úgy ha újra használjuk a gyorsbillentyűt, a ablak visszakerül az elsődleges monitorra.
}

WinMove, %ActiveWindowTitle%, %TargetX%, %TargetY%; A tényleges cselekvés, az aktív mozgatása ablak számított koordinátáinkra.

Visszatérés

Központosítsa az ablakot egy kulccsal, az egyszerű módszer

És most kész! Ha minden jól működik, most már bármikor használhatja az újonnan beállított gyorsbillentyűt az ablak középre állításához.

Keresse meg, hol vesztegeti az idejét a Windows rendszeren az AutoHotKey segítségével

Olvassa el a következőt

Ossza megCsipogOssza megEmail

Kapcsolódó témák

  • ablakok
  • Windows 10
  • Windows 11
  • AutoHotkey
  • Windows testreszabása

A szerzőről

Odysseas Kourafalos (31 cikk megjelent)

OK igazi élete 10 körül kezdődött, amikor megkapta első számítógépét – egy Commodore 128-at. Azóta a nap 24 órájában gépelve olvasztja a billentyűket, és megpróbálja elterjeszteni a The Word Of Tech-t minden érdeklődő számára ahhoz, hogy meghallgassa. Vagy inkább olvasni.

Továbbiak Odysseas Kourafalostól

Iratkozzon fel hírlevelünkre

Csatlakozzon hírlevelünkhöz műszaki tippekért, ismertetőkért, ingyenes e-könyvekért és exkluzív ajánlatokért!

Kattintson ide az előfizetéshez