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