VD虚拟桌面操作库出处:https://github.com/FuPeiJiang/VD.ahk

 

VD examples.ahk:

;you should first Run this, then Read this
;Ctrl + F: jump to #useful stuff

;#SETUP START
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
#SingleInstance force
ListLines Off
SetBatchLines -1
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#KeyHistory 0
#WinActivateForce

Process, Priority,, H

SetWinDelay -1
SetControlDelay -1

;START of gui stuff
Gui,Font, s12, Segoe UI
explanation=
(
Numpad0 可将此窗口固定在所有桌面上
您可以使用 (Numpad2,Numpad1,Numpad2,Numpad1),以获得乐趣

这里有一个挑战(您可能会丢失此窗口):
使用 Numpad0 取消固定
转到桌面 3 (Numpad3)
这一次,无论你在哪里,都可以使用 Numpad 上的 Win + * 键返回到此窗口
(以及此窗口所在的位置)
因此,您可以将此窗口移动到桌面 2(Numpad5),然后转到桌面 1,在 Numpad 上使用 Win + *。
(如果要在本脚本中搜索,热键是 #NumpadMult)

Numpad9 可将窗口抛至桌面 3(但不跟随窗口移动)

获取器:
f1 用于查看当前所在的桌面
f6 查看此窗口位于哪个桌面
f2 查看虚拟桌面总数

(您可能需要将此窗口固定为本部分):
NumpadAdd(Alt + Numpad+)创建桌面并进入该桌面
f1 查看当前所在的桌面

但此时只需使用 Win + Tab 即可。
这些功能主要用于脚本、
例如 我在本教程开始时使用了 VD.createUntil(3)
以确保我们至少有 3 个 VD

^+NumpadAdd (Ctrl Alt + Numpad+) 创建直到有 3 个桌面为止
NumpadSub (Alt + Numpad-) 删除当前桌面
^+NumpadSub (Ctrl ALt + Numpad-) 删除第 3 个桌面

更多信息,请查看代码中的热键。
)
gui, add, Edit, -vscroll -E0x200 +hwndHWndExplanation_Edit, % explanation ; https://www.autohotkey.com/boards/viewtopic.php?t=3956#p21359
;deselect edit text BY moving caret to start
Postmessage,0xB1,0,0,, % "ahk_id " HWndExplanation_Edit
gui, show,, VD.ahk examples WinTitle
;END of gui stuff

;include the library
#Include %A_LineFile%\..\VD.ahk
; or
; #Include %A_LineFile%\..\_VD.ahk
; ...{startup code}
; VD.init()

; VD.ahk : calls `VD.init()` on #Include
; _VD.ahk : `VD.init()` when you want, like after a GUI has rendered, for startup performance reasons


;you should WinHide invisible programs that have a window.
WinHide, % "Malwarebytes Tray Application"
;#SETUP END

VD.createUntil(3) ;create until we have at least 3 VD

return

;#有用的东西
1::VD.goToDesktopNum(1)
2::VD.goToDesktopNum(2)
3::VD.goToDesktopNum(3)

;顺着窗户走
4::VD.MoveWindowToDesktopNum("A",1), VD.goToDesktopNum(1)
5::VD.MoveWindowToDesktopNum("A",2), VD.goToDesktopNum(2)
6::VD.MoveWindowToDesktopNum("A",3), VD.goToDesktopNum(3)

;只需移动窗口
7::VD.MoveWindowToDesktopNum("A",1)
8::VD.MoveWindowToDesktopNum("A",2)
9::VD.MoveWindowToDesktopNum("A",3)

; wrapping / cycle back to first desktop when at the last
^#left::VD.goToRelativeDesktopNum(-1)
^#right::VD.goToRelativeDesktopNum(+1)

; move window to left and follow it
#!left::VD.goToDesktopNum(VD.MoveWindowToRelativeDesktopNum("A", -1))
; move window to right and follow it
#!right::VD.goToDesktopNum(VD.MoveWindowToRelativeDesktopNum("A", 1))

;to come back to this window
#NumpadMult:: ;#*
    VD.goToDesktopOfWindow("VD.ahk examples WinTitle")
    ; VD.goToDesktopOfWindow("ahk_exe code.exe")
return

;getters and stuff
f6::
    msgbox % VD.getDesktopNumOfWindow("VD.ahk examples WinTitle")
    ; msgbox % VD.getDesktopNumOfWindow("ahk_exe GitHubDesktop.exe")
return
f1::
    msgbox % VD.getCurrentDesktopNum()
return
f2::
    msgbox % VD.getCount()
return

;Create/Remove Desktop
!NumpadAdd::VD.createDesktop()
#NumpadAdd::VD.createDesktop(false) ;don't go to newly created

!NumpadSub::VD.removeDesktop(VD.getCurrentDesktopNum())
#!NumpadSub::VD.removeDesktop(VD.getCount()) ;removes 3rd desktop if there are 3 desktops

^+NumpadAdd::
VD.createUntil(3) ;create until we have at least 3 VD
return

^+NumpadSub::
VD.createUntil(3) ;create until we have at least 3 VD
sleep 1000
;FALLBACK IS ONLY USED IF YOU ARE CURRENTLY ON THAT VD
VD.removeDesktop(3, 1)
return

;Pin Window
numpad0::
    VD.TogglePinWindow("A")
return
^numpad0::
    VD.PinWindow("A")
return
!numpad0::
    VD.UnPinWindow("A")
return
#numpad0::
    MsgBox % VD.IsWindowPinned("A")
return

;Pin App
numpadDot::
    VD.TogglePinApp("A")
return
^numpadDot::
    VD.PinApp("A")
return
!numpadDot::
    VD.UnPinApp("A")
return
#numpadDot::
    MsgBox % VD.IsAppPinned("A")
return

f3::Exitapp

 

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。