spot_img
Monday, September 16, 2024
spot_img
HomeTechBilgi TeknolojisiWindows 10'da Sanal Masaüstlerini değiştirmek için AutoHotkey'i kullanma

Windows 10’da Sanal Masaüstlerini değiştirmek için AutoHotkey’i kullanma

-

Windows 10’da Sanal Masaüstlerini değiştirmek için AutoHotkey’i kullanma

Windows 10’un en iyi özelliklerinden biri, sanal masaüstleri oluşturmak için kullanabileceğiniz Görev Görünümüdür. Bu masaüstleri, açık uygulamalarınızın pencerelerini dağıtmak ve düzenlemek için harika bir yoldur. basabilirsin Windows tuşu+Sekme (Windows tuşunu basılı tutun ve Sekme’ye basın) bunları Görev Görünümü’nde görün.

Bununla birlikte, Microsoft tarafından sağlanmayan bir özellik, bir klavye kısayoluyla anında belirli bir sanal masaüstüne geçebilme yeteneğidir. Örneğin, Masaüstü 2’deyseniz ve Masaüstü 6’ya geçmek istiyorsanız, düğmesini basılı tutmanız gerekir. Windows tuşu+Ctrl ve basın Sağ ok dört kere. Hangi masaüstünü kullanırsanız kullanın, otomatik olarak 6 numaralı masaüstüne geçen bir kısayola sahip olmak daha kolay olurdu.

Bu eğitici, numaraya göre herhangi bir sanal masaüstüne doğrudan geçiş yapmak için klavye kısayollarının nasıl oluşturulacağını gösterir. Bunu ücretsiz Windows yardımcı programı AutoHotkey’i kullanarak gerçekleştiriyoruz.

Komut dosyası oluşturma

  1. Yükleyici çıkar ve Not Defteri’nde yeni bir metin dosyası açılır. Dosya bizim komut dosyamızdır. (Bir komut dosyası, başka bir program tarafından çalıştırılacak bir dizi komutu içeren bir düz metin dosyasıdır, bu durumda AutoHotkey.)
Not

Bu sayfadaki komut dosyası, github.com/pmb6tz/windows-desktop-switcher adresinde GitHub’da barındırılan açık kaynaklı bir komut dosyası olan Windows Desktop Switcher’a dayanmaktadır.

  1. Aşağıdaki komut dosyasını Not Defteri belgenize kopyalayıp yapıştırın:

; Globals
DesktopCount = 2 ; Windows starts with 2 desktops at boot
CurrentDesktop = 1 ; Desktop count is 1-indexed (Microsoft numbers them this way)
;
; This function examines the registry to build an accurate list of the current virtual desktops and which one we're currently on.
; Current desktop UUID appears to be in HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerSessionInfo1VirtualDesktops
; List of desktops appears to be in HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerVirtualDesktops
;
mapDesktopsFromRegistry() {
 global CurrentDesktop, DesktopCount
 ; Get the current desktop UUID. Length should be 32 always, but there's no guarantee this couldn't change in a later Windows release so we check.
 IdLength := 32
 SessionId := getSessionId()
 if (SessionId) {
 RegRead, CurrentDesktopId, HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionExplorerSessionInfo%SessionId%VirtualDesktops, CurrentVirtualDesktop
 if (CurrentDesktopId) {
 IdLength := StrLen(CurrentDesktopId)
 }
 }
 ; Get a list of the UUIDs for all virtual desktops on the system
 RegRead, DesktopList, HKEY_CURRENT_USER, SOFTWAREMicrosoftWindowsCurrentVersionExplorerVirtualDesktops, VirtualDesktopIDs
 if (DesktopList) {
 DesktopListLength := StrLen(DesktopList)
 ; Figure out how many virtual desktops there are
 DesktopCount := DesktopListLength \/IdLength
 }
 else {
 DesktopCount := 1
 }
 ; Parse the REG_DATA string that stores the array of UUID's for virtual desktops in the registry.
 i := 0
 while (CurrentDesktopId and i < DesktopCount) {
 StartPos := (i * IdLength) + 1
 DesktopIter := SubStr(DesktopList, StartPos, IdLength)
 OutputDebug, The iterator is pointing at %DesktopIter% and count is %i%.
 ; Break out if we find a match in the list. If we didn't find anything, keep the
 ; old guess and pray we're still correct :-D.
 if (DesktopIter = CurrentDesktopId) {
 CurrentDesktop := i + 1
 OutputDebug, Current desktop number is %CurrentDesktop% with an ID of %DesktopIter%.
 break
 }
 i++
 }
}
;
; This functions finds out ID of current session.
;
getSessionId()
{
 ProcessId := DllCall("GetCurrentProcessId", "UInt")
 if ErrorLevel {
 OutputDebug, Error getting current process id: %ErrorLevel%
 return
 }
 OutputDebug, Current Process Id: %ProcessId%
 DllCall("ProcessIdToSessionId", "UInt", ProcessId, "UInt*", SessionId)
 if ErrorLevel {
 OutputDebug, Error getting session id: %ErrorLevel%
 return
 }
 OutputDebug, Current Session Id: %SessionId%
 return SessionId
}
;
; This function switches to the desktop number provided.
;
switchDesktopByNumber(targetDesktop)
{
 global CurrentDesktop, DesktopCount
 ; Re-generate the list of desktops and where we fit in that. We do this because
 ; the user may have switched desktops via some other means than the script.
 mapDesktopsFromRegistry()
 ; Don't attempt to switch to an invalid desktop
 if (targetDesktop > DesktopCount || targetDesktop < 1) {
 OutputDebug, [invalid] target: %targetDesktop% current: %CurrentDesktop%
 return
 }
 ; Go right until we reach the desktop we want
 while(CurrentDesktop < targetDesktop) {
 Send ^#{Right}
 CurrentDesktop++
 OutputDebug, [right] target: %targetDesktop% current: %CurrentDesktop%
 }
 ; Go left until we reach the desktop we want
 while(CurrentDesktop > targetDesktop) {
 Send ^#{Left}
 CurrentDesktop--
 OutputDebug, [left] target: %targetDesktop% current: %CurrentDesktop%
 }
}
;
; This function creates a new virtual desktop and switches to it
;
createVirtualDesktop()
{
 global CurrentDesktop, DesktopCount
 Send, #^d
 DesktopCount++
 CurrentDesktop = %DesktopCount%
 OutputDebug, [create] desktops: %DesktopCount% current: %CurrentDesktop%
}
;
; This function deletes the current virtual desktop
;
deleteVirtualDesktop()
{
 global CurrentDesktop, DesktopCount
 Send, #^{F4}
 DesktopCount--
 CurrentDesktop--
 OutputDebug, [delete] desktops: %DesktopCount% current: %CurrentDesktop%
}
; Main
SetKeyDelay, 75
mapDesktopsFromRegistry()
OutputDebug, [loading] desktops: %DesktopCount% current: %CurrentDesktop%
; User config!
; This section binds the key combo to the switch/create/delete actions
LWin & 1::switchDesktopByNumber(1)
LWin & 2::switchDesktopByNumber(2)
LWin & 3::switchDesktopByNumber(3)
LWin & 4::switchDesktopByNumber(4)
LWin & 5::switchDesktopByNumber(5)
LWin & 6::switchDesktopByNumber(6)
LWin & 7::switchDesktopByNumber(7)
LWin & 8::switchDesktopByNumber(8)
LWin & 9::switchDesktopByNumber(9)
;CapsLock & 1::switchDesktopByNumber(1)
;CapsLock & 2::switchDesktopByNumber(2)
;CapsLock & 3::switchDesktopByNumber(3)
;CapsLock & 4::switchDesktopByNumber(4)
;CapsLock & 5::switchDesktopByNumber(5)
;CapsLock & 6::switchDesktopByNumber(6)
;CapsLock & 7::switchDesktopByNumber(7)
;CapsLock & 8::switchDesktopByNumber(8)
;CapsLock & 9::switchDesktopByNumber(9)
;CapsLock & n::switchDesktopByNumber(CurrentDesktop + 1)
;CapsLock & p::switchDesktopByNumber(CurrentDesktop - 1)
;CapsLock & s::switchDesktopByNumber(CurrentDesktop + 1)
;CapsLock & a::switchDesktopByNumber(CurrentDesktop - 1)
;CapsLock & c::createVirtualDesktop()
;CapsLock & d::deleteVirtualDesktop()
; Alternate keys for this config. Adding these because DragonFly (python) doesn't send CapsLock correctly.
;^!1::switchDesktopByNumber(1)
;^!2::switchDesktopByNumber(2)
;^!3::switchDesktopByNumber(3)
;^!4::switchDesktopByNumber(4)
;^!5::switchDesktopByNumber(5)
;^!6::switchDesktopByNumber(6)
;^!7::switchDesktopByNumber(7)
;^!8::switchDesktopByNumber(8)
;^!9::switchDesktopByNumber(9)
;^!n::switchDesktopByNumber(CurrentDesktop + 1)
;^!p::switchDesktopByNumber(CurrentDesktop - 1)
;^!s::switchDesktopByNumber(CurrentDesktop + 1)
;^!a::switchDesktopByNumber(CurrentDesktop - 1)
;^!c::createVirtualDesktop()
;^!d::deleteVirtualDesktop()
  1. Dosya ‘yı kaydet.

İlk AutoHotkey.ahk komut dosyanızı Not Defteri'ne kaydetme

  1. Bu komut dosyası, AutoHotkey.ahk, Belgeler klasörünüzde bulunur. Yeni bir Dosya Gezgini penceresi açın (basın Windows tuşu+E) ve Belgeler’e gidin.

AutoHotkey.ahk, Belgeler klasörünüzde bulunur

  1. Dosyaya çift tıklayarak komut dosyasını çalıştırın. Hiçbir şey olduğunu görmeyeceksiniz, ancak AutoHotkey şimdi betiği çalıştırıyor.

O nasıl çalışır?

Komut dosyası, şu anda hangi sanal masaüstünü kullandığınızı takip ederek çalışır. Göz kırpma tuşunu basılı tutmak ve 1 ile 9 arasında bir sayıya basmak, istenen masaüstüne ulaşmak için otomatik olarak doğru sayıda sola veya sağa geçiş yapar. (Henüz var olmayan bir masaüstünün numarasına basarsanız hiçbir şey olmaz.)

Yeni kısayol tuşlarınızı test etme

Test etmek için önce yeni bir sanal masaüstü oluşturun. Bunu yapmak için Görev Çubuğunuzdaki Görev Görünümü simgesine tıklayın (veya Windows tuşu+Sekme), ardından + Yeni Masaüstü’nü tıklayın. Veya klavye kısayolunu kullanın Windows tuşu+Ctrl+NS.

Bunu, oluşturmak istediğiniz her yeni sanal masaüstü için bir kez yapın. Her ek masaüstü, bir öncekinin sağına yönlendirilir.

Artık, komut dosyasında tanımlanan klavye kısayollarını kullanarak bu masaüstlerinden herhangi birine geçebilirsiniz. basılı tutun Windows tuşu 1 ile 9 arasında bir sayıya basın ve otomatik olarak o numaralı masaüstüne geçersiniz. Örneğin, basın Windows tuşu+3 soldan üçüncü sanal masaüstüne geçmek için.

Komut dosyasını durdurma

Komut dosyasını kullanmayı durdurmak için sistem tepsinize gidin ve AutoHotkey Windows Bildirim menüsünü getirmek için büyük yeşil bir “H” gibi görünen AutoHotkey simgesine sağ tıklayın.

Not

Simgeyi görmüyorsanız, gizli simgeleri göstermek için şapka ^ düğmesini kullanın.

AutoHotkey systray menüsü

Bu menüde, Kısayol Tuşlarını Askıya Alabilir, Komut Dosyasını Duraklatabilir veya Otomatik Kısayol Tuşundan Tamamen Çıkabilirsiniz. Bu eylemlerden herhangi biri kısayol tuşlarınızı normale döndürür.

Windows başladığında komut dosyanızı otomatik olarak çalıştırma

Komut dosyasını Windows’u her başlattığınızda otomatik olarak çalıştırmak için komut dosyasını Başlangıç ​​klasörünüze taşıyın.

Windows 10’da Başlangıç ​​klasörü şu konumda bulunur:

 [Your home folder]AppDataRoamingMicrosoftWindowsStart MenuProgramsStartup

Bu klasör normalde gizlidir, bu nedenle Dosya Gezgini’nde yalnızca Gezgin penceresinin üst kısmındaki Görünüm → Gizli Dosyaları Görüntüle’yi seçerseniz erişebilirsiniz.

Ancak, Çalıştır kutusuna tam dizin yolunu girerek de Başlangıç ​​klasörüne doğrudan erişebilirsiniz. basmak Windows tuşu+r Çalıştır kutusunu açmak için tam dizin yolunu yazın. Yol adının başlangıcını otomatik olarak doldurmak için %APPDATA% ortam değişkenini kullanabilirsiniz. Örneğin, Çalıştır kutusuna şunu yazabilirsiniz:

 %APPDATA%MicrosoftWindowsStart MenuProgramsStartup

bastığınızda Girmek, bu klasör yeni bir Dosya Gezgini penceresinde açılır.

Şimdi betiğinizi bu klasöre taşıyın. Belgeler klasörünüz hala başka bir pencerede açıksa, AutoHotkey.ahk dosyasını Başlangıç ​​klasörüne sürükleyip bırakın.

AutoHotkey.ahk dosyasını Windows 10 Başlangıç ​​klasörünüze taşıma

Windows’u her başlattığınızda komut dosyasını otomatik olarak çalıştırmak istemediğinize karar verirseniz, bu klasörü yeniden açın ve komut dosyasını başka bir yere taşıyın. Bilgisayarınızın neresinde olursa olsun, her zaman çift tıklayarak manuel olarak çalıştırabilirsiniz.

Ek Notlar

Bu komut dosyası, normalde görev çubuğunuzdaki öğeleri açan Win+(Sayı) için varsayılan Windows kısayollarını geçersiz kılar (Win+1, ilk öğeyi açar, vb.). Ancak, Ayarlar veya Mağaza gibi bazı yerleşik Windows uygulamaları, AutoHotkey’in komut dosyasını yok sayar. Kısayol tuşlarını denerken bu pencerelerden birindeyseniz, Windows kısayol tuşu davranışını kullanır ve yeni bir masaüstü yerine Görev Çubuğunuzdan bir şey açar. Akılda tutulması gereken başka bir şey de, AutoHotkey’in sanal masaüstleriniz arasında tek tek hızlı bir şekilde sola ve sağa geçiş yapmasıdır. Bu özel uygulamalardan birinin açık olduğu bir sanal masaüstüne çarparsa, geçişi durdurur ve o masaüstünde kalır.

Ne yazık ki, varsayılan Windows kısayolları devre dışı bırakılamaz, bu uygun değildir, ancak bu uygulama pencerelerinden biri açık değilse, AutoHotkey komut dosyası düzgün çalışır. Komut dosyası genellikle diğer programlarınızın %95’i ile mükemmel çalışır.

Ancak, isterseniz, AutoHotkey komut dosyanızı farklı bir tuş kombinasyonu kullanacak şekilde düzenleyebilirsiniz.

AutoHotkey komut dosyanızı düzenleme

Not Defteri’ni açın (Başlat → Windows Aksesuarları → Not Defteri).

Not Defteri’nde AutoHotkey dosyasını açın. Başlangıç ​​klasörünüz zaten açıksa, dosyayı açmak için simgeyi Not Defteri penceresine sürükleyip bırakabilirsiniz.

Veya Dosya → Not Defteri’nde Aç’a gidip %APPDATA%MicrosoftWindowsStart MenuProgramsStartupAutoHotkey.ahk dosya adını girerek açabilirsiniz.

Dosya açıldığında, ihtiyaçlarınıza göre komut dosyasında değişiklikler yapabilirsiniz. Örneğin, kısayol tuşu kombinasyonunu kullanmayı tercih ederseniz Caps Lock+(Sayı), komut dosyasında şu satırları arayın:

LWin & 1::switchDesktopByNumber(1)
LWin & 2::switchDesktopByNumber(2)
LWin & 3::switchDesktopByNumber(3)
LWin & 4::switchDesktopByNumber(4)
LWin & 5::switchDesktopByNumber(5)
LWin & 6::switchDesktopByNumber(6)
LWin & 7::switchDesktopByNumber(7)
LWin & 8::switchDesktopByNumber(8)
LWin & 9::switchDesktopByNumber(9)

Bu satırlarda LWin’i CapsLock olarak değiştirin:

CapsLock & 1::switchDesktopByNumber(1)
CapsLock & 2::switchDesktopByNumber(2)
CapsLock & 3::switchDesktopByNumber(3)
CapsLock & 4::switchDesktopByNumber(4)
CapsLock & 5::switchDesktopByNumber(5)
CapsLock & 6::switchDesktopByNumber(6)
CapsLock & 7::switchDesktopByNumber(7)
CapsLock & 8::switchDesktopByNumber(8)
CapsLock & 9::switchDesktopByNumber(9)

Değişikliklerinizi kaydedin ve AutoHotkey’de güncellemek için komut dosyasını çift tıklayın. Komut dosyanızda herhangi bir hata yaptıysanız, AutoHotkey çalıştırmaz ve size bir hata mesajı verir. Aksi takdirde, halihazırda çalışmakta olan betiği güncellemek isteyip istemediğinizi sorar:

AutoHotkey güncelleme komut dosyası onay istemi

Yeni değişikliklerinizin yürürlüğe girmesi için Evet’i seçin.

Farklı bir kısayol tuşu kombinasyonu fikriniz varsa, bunu halihazırda kullanılmayan herhangi bir kısayol tuşu kombinasyonuyla değiştirebilirsiniz.

Bir tuş kombinasyonu seçme

AutoHotkey’in kendi komut dosyalarında klavye tuşlarını temsil etmek için kullandığı kendi özel kelimeleri ve karakterleri vardır. Örneğin, Ctrl tuşu bir ünlem işareti ile temsil edilir. Kullanmak Ctrl+(Sayı) kısayol tuşu kombinasyonunuz olarak “CapsLock &” öğesini “!” olarak değiştirebilirsiniz. komut dosyanızda. O zaman çizgiler şöyle görünür:

!1::switchDesktopByNumber(1)
!2::switchDesktopByNumber(2)
!3::switchDesktopByNumber(3)
!4::switchDesktopByNumber(4)
!5::switchDesktopByNumber(5)
!6::switchDesktopByNumber(6)
!7::switchDesktopByNumber(7)
!8::switchDesktopByNumber(8)
!9::switchDesktopByNumber(9)

Bir kelime yerine bir sembol kullandığınızda, kod sözdiziminde ” & ” kullanmamanız gerektiğine dikkat edin. Bu kural, AutoHotkey’in komut dosyası dilinde kullandığı özel kurallardan biridir.

AutoHotkey komut dosyaları için tüm özel kelimelerin ve sembollerin tam listesini AutoHotkey anahtar listesi sayfasında bulabilirsiniz.

Previous article
Next article

Related articles

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Stay Connected

0FansLike
0FollowersFollow
0FollowersFollow
0SubscribersSubscribe
Saçınızda Kahve Kullanmanın Faydaları Nelerdir?

Latest posts