これは、試して適応させるためのアイデアです。テストされていません。
スクリプトが実行されている限り、変数にアクティブな仮想デスクトップを保存するだけなので、必ずしもiniファイルは必要ありません。
スクリプトは、仮想デスクトップ#1をアクティブにして起動するか、強制的に同期する必要があります。強制機能は、ctrl + win + leftを何度でも押すことができ、最初の仮想デスクトップに到達するとループしないことを前提としています。
ショートカットキーはデフォルトのWindowsキーでトリガーされますが、キャプチャしません(つまり、チルダ〜はキーストロークを通過させます)。そのため、キーボードを使用している場合はキーボードを追跡し、マウスを使用している場合は、1つのショートカットキーにマウスを割り当てることができます。
また、デスクトップを切り替えるためにデフォルトのウィンドウキー以外にマウスボタンを割り当てる必要がある場合などに、これをctrl + alt + F8として表示して、1つまたは両方の方向にカスタム複製ショートカットを追加することもできます。
#NoEnv
#Persistent
numDesktops := 3 ; set to match number of virtual desktops
if forceSyncAtStartup := True ; set to False to disable sync on startup
SendInput % "^#{Left" (numDesktops-1) "}"
vDesktop := 1 ; this must match the virtual desktop active when program starts if a sync isn't forced
return
^!F8:: ; random/custom shortcut for the mouse if desired
~^#Left::
vDesktop -= 1
if (vDesktop=0) {
vDesktop := numDesktops
sleep 20 ; optional for better reliability
; use this if no delay needed for reliable operation
SendInput % "^#{Right " (numDesktops-1) "}
; use this type of setup if a delay is needed
; Loop, % (numDesktops-1) {
; SendInput ^#{Right}
; sleep 100 ; adjust for reliability
; }
}
return
~^#Right::
vDesktop += 1
sleep 20
if (vDesktop=(numDesktops+1)) {
vDesktop := 1
SendInput % "^#{Left" (numDesktops-1) "}"
}
return