En azından Windows'ta herhangi bir pencerenin ekranın herhangi bir yerinde açılması son derece can sıkıcı değil mi? Bu günlük rastgelelik sinirlerinizi bozuyor mu ve pencerelerinizin ekrandaki yerleşimi üzerinde daha fazla kontrol sahibi olmayı mı tercih ediyorsunuz? AutoHotKey sayesinde şimdi yapabilirsiniz.
Bu öğreticide, bu sorunu bir AutoHotKey komut dosyasıyla nasıl çözebileceğinizi göreceğiz. Hareket etmesi için inşa edeceğiz hiç bir tuşa basarak ekranınızın ortasına pencere. Kulağa hoş geliyor mu? Nasıl yapıldığını görelim!
AutoHotKey ile Pencere Merkezleme Kısayol Tuşu Nasıl Kurulur
Bir komut dosyası oluştururken savaşın yarısı, tek bir karakter yazmadan önce nasıl çalışacağını bulmaktır. Öyleyse, düz İngilizce'de öyle bir eylem planı yapalım ki, sonra bir komut dosyasına "mutasyona uğrayalım".
"Sorun" Windows Var
Windows ("ekranlarımızdaki dikdörtgen şeyler"de olduğu gibi, işletim sisteminde değil) ekranın herhangi bir yerinde ortaya çıkma eğilimindedir. Dikkat dağıtıyor ve tekrar tekrar gerçekleştiğinde can sıkıcı olabilir. Özellikle farklı noktalarda ortaya çıkan ve kullanıcı girdisi bekleyen birden fazla istekte bulunan kişiyle uğraşırken.
Sorunun Çözümü
AutoHotKey, herhangi bir pencereye tuş vuruşlarını ve fare tıklamalarını göndermenin yanı sıra, bunları manipüle edebilir. Geçmişte nasıl yapabildiğini gördük bir klavye kısayolu kullanarak pencereleri "her zaman üstte" sabitlemek için AutoHotKey'i kullanın. Ancak bu sefer, AutoHotKey'in pencere işleme yeteneklerinden aşağıdakiler için yararlanacağız:
- Etkin pencerenin kimliğini "oku".
- Ayrıca boyutlarını (genişlik ve yükseklik) "okuyun".
- Monitörün boyutlarını "okuyun".
- Söz konusu pencereyi ekran merkezinde sunmak için en uygun koordinatları hesaplamak için monitörün ve pencerenin boyutlarını birleştirin.
- Pencereyi bu koordinatlara taşıyın.
Son olarak, yukarıdakileri bir kısayolla eşleştireceğiz. Bu şekilde, onu uygulamak yerine "isteğe bağlı" olarak adlandırabilirsiniz. Tümü pencereler - tam ekran uygulamalara ve oyunlara müdahale edebilir.
Bu eğitimde, doğrudan AutoHotKey'e dalacağımızı unutmayın. Eğer buna aşina değilseniz ve önceden daha fazlasını öğrenmek istiyorsanız, şuraya bakın: yeni başlayanlar için hızlı AutoHotKey kılavuzu.
İlk olarak, Kısayol Tuşunu Ayarlama
Oluşturacağımız fonksiyonu bir kısayola nasıl haritalayacağımızdan bahsetmiştik. Ancak, onu aradan çıkarmak için o kısımla başlamamız muhtemelen daha iyi olur.
adresinden yükleyiciyi indirerek başlayın. AutoHotKey'in resmi sitesi. v2 beta veya kullanımdan kaldırılmış 1.0 sürümü yerine "geçerli" sürüme gidin. Ardından, PC'nize yükleyin.
Dosya Gezgini'ni başlatın (en hızlı yol Windows Tuşu + E tuş birleşimidir) ve komut dosyanızı oluşturmak istediğiniz yola gidin. AutoHotKey yüklendiğinde, sağ tıklama menüsünde bazı yeni seçenekler görünecek. Bu nedenle, Dosya Gezgini penceresinin boş alanına sağ tıklayın ve Yeni > AutoHotKey Komut Dosyası.
Komut dosyanızın dosyasına bir ad verin ve ardından üzerine sağ tıklayın ve Düzenle O. Visual Studio Code veya Notepad++ gibi kod dostu bir metin düzenleme uygulaması kullanmıyorsanız Windows Not Defteri'ni kullanın. "Kodunuza" yararsız (amaç için) sözdizimi ekleyebilecek Wordpad gibi editörlerden kaçının.
Seçtiğiniz düzenleyicideyken, AutoHotKey komut dosyanızın üst kısmında önceden doldurulmuş bazı satırlar olduğunu göreceksiniz. Kararlılık ve uyumluluk nedenleriyle oradalar. İnce ayar yapılabilirler, ancak bu eğitim için olduğu gibi bırakın.
Altlarındaki iki veya üç satırı "taşıyın" ve işlevinizi başlatacak kısayolu girin. Shift için "+", CTRL için "^", "!" tuş kombinasyonunu kullanarak bir tuş kombinasyonu oluşturabilirsiniz. Alt için ve Windows Tuşu için "#" ve klavyedeki herhangi bir "normal" tuş (harfler ve sayılar).
Örneğin, CTRL + Y kombinasyonunun komut dosyanızı başlatmasını sağlamak için şunu kullanın:
^y::
Çift ":", "hey, AutoHotKey, lütfen soldaki dizeyi veya tuş kombinasyonunu sağdaki her şeye eşleyin" demek gibidir.
Enter tuşuna basarak bunun iki veya üç satırı altına "taşıyın" ve belirli işlevin sonunu işaretleyen "return" yazın. Tam sonuç aşağıdaki gibi görünmelidir:
^y::
; Bu dır-dir bir yorum.
dönüş
"; Bu bir yorumdur." satırı tam olarak budur, betiğin "kodunda" AutoHotKey'in yürütmeyeceği bir yorum. Aşağıdaki adımlarda betiğin "kodunu" gireceğimiz noktayı işaretlemek için belgeleme amacıyla oradadır.
Rehberimizi takip ettiyseniz AutoHotKey ile uygulamaya özel kısayol tuşları oluşturma geçmişte, bu durumda... yapma. Pencere merkezleme kısayol tuşunuzun merkeze "genel" olmasını istiyorsunuz hiç pencereden hiç uygulama. Belirli bir uygulamaya "bağlarsanız", yalnızca bu uygulamanın pencerelerinde çalışır.
Etkin Pencerenin Ayrıntılarını Alın
Kısayolumuzun aktif pencerede hareket etmesini istiyoruz ve hesaplamalarımız için boyutlarına da ihtiyacımız var. Bu ayrıntıları aşağıdakilerle bulabiliriz:
WinGetTitle, ActiveWindowTitle, A
WinGetPos Genişlik, Yükseklik, %ActiveWindowTitle%
Bir önceki bölümde scripte eklediğimiz yorum satırını yukarıdaki iki satır ile değiştirin. Sonuç?
- İlk satır, aktif pencerenin başlığını alır.
- İkinci satır, genişliğini ve yüksekliğini okur ve bunları, sonraki hesaplamalarımızda kullanacağımız "Genişlik" ve "Yükseklik" sözcükleri/değişkenleriyle eşler.
Etkin pencerenin ayrıntılarını aldık, ancak hedefimize ulaşmak için monitörün görünür alanının boyutlarına da ihtiyacımız var. Neyse ki, bunları bulmak daha da kolay.
Birincil İzleme Alanı Nedir?
Birincil monitörümüzün genişliğini ve yüksekliğini bulmak için fazladan komutlara ihtiyacımız yok. AutoHotKey, bizim için bu bilgileri zaten içeren iki önceden ayarlanmış değişkenle birlikte gelir: "A_ScreenWidth" ve "A_ScreenHeight".
Bu nedenle, onları bir sonraki bölümde gördüğünüzde, zaten birincil monitörün genişliğini ve yüksekliğini "içerirler". Onlara doğru değerleri atamak için gerekli hiçbir şey yoktur. Böylece bunları doğrudan hesaplamalarımızda kullanabiliriz.
Hedef Konumu Hesaplama Zamanı
Hesaplamaları doğrudan komut dosyasının ihtiyaç duyduğumuz noktalarına dahil edebiliriz. Yine de, onları iki değişkenle eşlersek okunabilirlik açısından daha kolay ve daha iyidir ve o zamanlar bu değişkenleri betiğimizde kullanın.
O halde yatay koordinatları tutacak değişken olarak "TargetX"i ve değişken olarak "TargetY"yi seçelim. pencerenin ortasında görünmesi için pencereyi hareket ettirmemiz gereken dikey koordinatlara sahip bir ekran.
TargetX := (A_ScreenWidth/2)-(Genişlik/2); Burada yatay hesaplıyoruz pencere hedef...
HedefY := (A_ScreenHeight/2)-(Yükseklik/2); ...ve işte dikey olan.
Bu satırları sade bir İngilizce ile deşifre edelim:
- "TargetX" ve "TargetY" iki değişkendir.
- ":=", AutoHotKey'e değişkenlerin sağdaki hesaplamaların sonuçlarına eşit olması gerektiğini ve bu sonuçların sayı olarak ele alınması gerektiğini bildirir.
- "(A_ScreenWidth/2)", tam monitörün genişliğini ikiye böler.
- "(Genişlik/2)", etkin pencerenin genişliği için aynı şeyi yapar.
Yukarıdakilerle, ekranın genişliğinin yarısından etkin pencerenin genişliğinin yarısını çıkarıyoruz. Geriye kalan, pencerenin solundaki boşluktur - ekranın sol tarafından ve pencerenin görünmesi gereken yere kadar. İkinci satır da aynı şeyi yapar, ancak yükseklik için.
Şimdi Pencereyi Yeniden Konumlandırmak İçin
Yukarıda gördüğümüz mistik komutlardan edindiğimiz tüm güçlü bilgilerle donanmış olarak, artık pencere ışınlanma ritüelini tamamlayacak sihirli efsunumuzu yapabiliriz. Veya, düz İngilizce olarak, pencereleri ekranda hareket ettirmek için AutoHotKey'in "WinMove" komutunu kullanın.
WinMove, işini yapmak için en az üç bilgi parçasıyla "beslememizi" bekliyor: hedeflenen pencerenin başlığı ve nereye taşınacağı koordinatları. Bu bilgi parçalarını değişkenlerle zaten eşleştirdiğimiz için komut şu kadar basittir:
WinMove, %ActiveWindowTitle%,, %TargetX%, %TargetY%
Yukarıda:
- "WinMove", bir pencereyi hareket ettiren AutoHotKey komutudur.
- "%ActiveWindowTitle%", etkin pencerenin başlığının eşlendiği değişkendir.
- "%TargetX%" ve "%TargetY%", pencerenin taşınacağı yatay ve dikey koordinatlardır.
Ayrıca WinMove ile pencereleri yeniden boyutlandırabilir, başlıklarında veya içeriklerinde belirli metin sokmaları olan pencereleri atlayabilirsiniz, vb. Bu özellikler bu makalenin kapsamı dışında olduğundan, kontrol edin. AutoHotKey'in WinMove komutuyla ilgili resmi belgeleri onlar hakkında daha fazlası için.
Son Senaryo
Sonunda yolculuğumuzun en zorlu kısmına geliyoruz. Bir sonraki adım için hazırlanın, sizden senaryoyu kaydetmenizi bekliyor ve, peki... Çalıştır.
Evet, hepsi bu kadar - senaryo tamamlandı ve denemekten başka yapacak bir şey yok. Tanımladığınız kısayolu kullanın, etkin olan herhangi bir pencere ekranınızın ortasına taşınacaktır.
Bir metin düzenleyicide açıldığı şekliyle son komut dosyası şöyle görünmelidir:
#Env Yok; Gelecekteki AutoHotkey sürümleriyle performans ve uyumluluk için önerilir.
; #Uyarmak; Sık karşılaşılan hataları tespit etmeye yardımcı olması için uyarıları etkinleştirin.
SendMode Girişi; Tavsiye edilen içinyeni üstün hızı ve güvenilirliği nedeniyle komut dosyaları.
SetWorkingDir %A_ScriptDir%; Tutarlı bir başlangıç dizini sağlar.
^y::
WinGetTitle, ActiveWindowTitle, A; Aktif pencereyi al'için başlık "hedefleme" ona göre hareket eder.
WinGetPos Genişlik, Yükseklik, %ActiveWindowTitle%; aktif olanı al pencere' pozisyonu, kullanılan için bizim hesaplamalarımız.
TargetX := (A_ScreenWidth/2)-(Genişlik/2); Taşıyacağımız yatay hedefi hesaplayın. pencere.
TargetY := (A_ScreenHeight/2)-(Yükseklik/2); Dikey yerleşimi hesaplayın ile ilgili en pencere.WinMove, %ActiveWindowTitle%,, %TargetX%, %TargetY%; hareket ettir pencere hesaplanan koordinatlara
dönüş
Yukarıdaki komut dosyasını kopyalayabileceğinizi, Not Defteri'ne veya benzer bir metin düzenleyiciye yapıştırabileceğinizi ve bir AHK uzantısıyla kaydedebileceğinizi unutmayın. Ardından, CTRL + Y tuşlarına her bastığınızda herhangi bir pencereyi ortalamak için AutoHotKey yüklü olarak "çalıştırın". Bu kısayolu beğenmediyseniz, "^y::" satırını farklı bir tuş kombinasyonuna değiştirin. Örneğin, !+c::
işlevi Shift + Alt + C tuş kombinasyonuna eşler.
Bonus parça
Size kolaylık sağlamak için, ikili monitör kurulumları olanlar için faydalı olacak ikincil bir komut dosyası oluşturmaya ve eklemeye karar verdik.
Bu makaleyi düzenli tutmak için, bunun yerine komut dosyasının içinde nasıl çalıştığına ilişkin bilgileri yorumlar biçiminde ekledik. Bunları yinelemenizden kaldırabilirsiniz.
Yukarıdaki komut dosyasından farkının kısa öyküsü, ayrıca bir PositionToggle değişkeni ve bir miktar "IF mantığı" eklememizdir. Daha sonra bunları pencereyi monitörler arasında "kaydırmak" için kullanırız. Bunun soruna kaba ve "hack-y" bir çözüm olduğunu not etmeliyiz. Bununla birlikte, AutoHotKey'e aşina olmayan herkes için bu yaklaşımın anlaşılması ve ayarlanması daha kolay olduğundan, onu daha akıcı koda tercih ettik.
#Env Yok; Gelecekteki AutoHotkey sürümleriyle performans ve uyumluluk için önerilir.
; #Uyarmak; Sık karşılaşılan hataları tespit etmeye yardımcı olması için uyarıları etkinleştirin.
SendMode Girişi; Tavsiye edilen içinyeni üstün hızı ve güvenilirliği nedeniyle komut dosyaları.
SetWorkingDir %A_ScriptDir%; Tutarlı bir başlangıç dizini sağlar.
KonumGeçiş = 1; Kullanmak a sayıgibi bir geçiş için işaretleme üzerinde hangi monitör pencere Görünmelidir.
^y::
WinGetTitle, ActiveWindowTitle, A
WinGetPos Genişlik, Yükseklik, %ActiveWindowTitle%PositionToggle = 1 ise; Kontrol etmek geçiş durumu ve "yapmak küme parantezleri arasında ne var" ise Ayarlamakile1için birincil monitörümüz.
{
TargetX := (A_ScreenWidth/2)-(Genişlik/2)
HedefY := (A_ScreenHeight/2)-(Yükseklik/2)
KonumGeçiş = 2; "Parmak şıklatmak" Geçiş tuşunu yeniden kullanırsak, aktif penceremiz ikinci monitöre geçecek şekilde geçiş yapın.
}
Else If PositionToggle = 2; Daha önce kısayol tuşunu kullandık mı, "titreme" ikinci monitöre geçiş numarası? O zaman komut dosyası bunun yerine ne yapmalı's, yukarıdakiler yerine aşağıdaki küme parantezleri arasında.
{
SysGet, Mon2, Monitör, 2; İkinci monitörü al'ayrıntılar
Mon2Width := Mon2Sağ - Mon2Sol; İkinci monitörü hesaplayın'gerçek genişlik.
Mon2Height := Mon2Bottom - Mon2Top; İkinci monitörü hesaplayın'gerçek yükseklik.TargetX := (Pzt2Genişliği/2)-(Genişlik/2)+A_ScreenWidth; Pencereyi nereye taşıyacağınızı hesaplayın. Birincil monitörü de eklediğimize dikkat edin'AutoHotKey'den beri s genişliği't pencereleri tek tek monitörlerde taşıyın, ancak bunların birleştirilmiş "yüzey".
HedefY := (Pzt2Yükseklik/2)-(Yükseklik/2)+Pzt2Top; Pencereyi ikinci monitörde hareket ettirmek için en uygun dikey hedefi hesaplayın. Yukarıdaki gibi, ikinci monitör's dikey ayrıntıları, birincil monitöre göre algılanır. Bu nedenle, ikinci monitörün nasıl çalıştığını kabul ederek en uygun hedefi elde etmek için yaratıcı olmalıyız.'s üst't 0'a eşittir (birincil olan gibi's).KonumGeçiş = 1; geçişi geri kaydırın, böylece Eğer kısayol tuşunu yeniden kullanıyoruz, pencere birincil monitöre geri dönecektir.
}WinMove, %ActiveWindowTitle%,, %TargetX%, %TargetY%; Gerçek eylem, aktifi hareket ettirmek pencere hesaplanan koordinatlarımıza.
dönüş
Bir Pencereyi Anahtarla Ortalayın, Kolay Yol
Ve şimdi işin bitti! Her şey yolunda giderse, istediğiniz zaman bir pencereyi ortalamak için yeni ayarladığınız kısayol tuşunu kullanabilirsiniz.
AutoHotKey ile Windows'ta Zamanınızı Nerelerde Harcadığınızı Bulun
Sonrakini Oku
İlgili konular
- pencereler
- Windows 10
- Windows 11
- OtomatikKısayol tuşu
- Windows Özelleştirme
Yazar hakkında
OK'nin gerçek hayatı, ilk bilgisayarını, bir Commodore 128'i aldığında, yaklaşık 10 yaşında başladı. O zamandan beri, 7/24 yazarak klavye tuşlarını eritiyor ve The Word Of Tech'i dinleyecek kadar ilgilenen herkese yaymaya çalışıyor. Daha doğrusu okuyun.
Haber bültenimize abone ol
Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!
Abone olmak için buraya tıklayın