Представлена Windows 10Вид задачи- возможность иметь несколько виртуальных рабочих столов. Когда я нахожусь в окне на Рабочем столе 1, как быстрее всего переместить его на Рабочий стол 2?
В настоящее время мне нужно войти в переключатель задач (значок на панели задач или Win+ Tab), найти окно и перетащить его между рабочими столами. Это неудобно. Есть ли более быстрый способ?
решение1
Я думаю, что для более быстрого переключения это должно быть в заголовке окна, поэтому я создал для этого инструмент:
https://github.com/Eun/MoveToDesktop
Вы также можете перемещать окна с помощью WIN+ ALT+ Left/ Rightили менять сочетание клавиш по мере необходимости.
решение2
Я также искал эту опцию, и, судя по результатам поиска (думаю, я также видел ее на форумах Microsoft), на данный момент она не является встроенной.
Лучший способ, который я придумал на данный момент, чтобы избежать использования мыши, это:
- Winkey+ tabдля экрана рабочего стола
- Щелкните правой кнопкой мыши по окну, которое вы хотите переместить.
Используйте правую кнопку мыши на клавиатуре или Shift+ F10, если у вас нет такой клавиши на клавиатуре. - Выберите
Move to
(или введитеM
, так как он отмечен), а затем нужный вам рабочий стол (илиN
для нового рабочего стола, также отмеченный)
Это не особо помогает, но так будет до тех пор, пока кто-то не придумает что-то, что облегчит задачу.
Обновлять:Я начал изучать это. Есть значение реестра, которое изменяется, когда приложение перемещается между рабочими столами. В этом месте находятся все открытые приложения:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\ApplicationViewManagement
(I guess the session number will change if there is more than one logged in).
Идентификатор текущего рабочего стола находится здесь:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\SessionInfo\1\VirtualDesktops\CurrentVirtualDesktop
Недостаточно просто изменить ее на другую клавишу виртуального рабочего стола, поскольку необходимо некоторое обновление пользовательского интерфейса.
Я проверил с помощью procmon, и вот библиотеки DLL, которые используются в процессе:
- msctf.dll
- twinui.dll
- windows.immersiveshell.serviceprovider.dll
- shell32.dll
- UIAnimation.dll
Я предполагаю, что один из них отвечает за визуальное обновление, и главный подозреваемый — UIAnimation.dll!
Если кто-то захочет продолжить расследование, это послужит началом.
решение3
Еще один сценарий AHK
#Left::
WinGetTitle, Title, A
WinSet, ExStyle, ^0x80, %Title%
Send {LWin down}{Ctrl down}{Left}{Ctrl up}{LWin up}
sleep, 50
WinSet, ExStyle, ^0x80, %Title%
WinActivate, %Title%
Return
#Right::
WinGetTitle, Title, A
WinSet, ExStyle, ^0x80, %Title%
Send {LWin down}{Ctrl down}{Right}{Ctrl up}{LWin up}
sleep, 50
WinSet, ExStyle, ^0x80, %Title%
WinActivate, %Title%
Return
Это перемещает активное окно влево или вправо с помощью клавиш win+стрелка. Протестировано на Win10 версии 10.0.17134.1365 с отключенной анимацией.
решение4
На этом уровне управления Windows, я действительно думаю, что вам следует использовать стороннюю программу, чтобы помочь. Моим собственным решением было добавить простой ярлык дляAutoHotKey(АХК):
#|::Send, +{F10}M{Enter}
#|
это сокращение, которое переводится как Win+|
На моей клавиатуре это имеет смысл, как |указано выше Tab, но вы можете изменить это на то, что вам нужно.
С использованиемвыше ответ arieljannai, отправив Shift+ F10, M, Enter, отмеченное окно будет перемещено на другой виртуальный рабочий стол, если вы переключаетесь между двумя.
Для ознакомления с AHK см.https://autohotkey.com/docs/Tutorial.htm.