Я также искал эту опцию, и из поисков, которые я сделал (я думаю, что я также видел это на форумах Microsoft), это не то, что доступно встроенным в данный момент.
Лучший способ, которым я на данный момент выступил, чтобы избежать использования мыши, это:
- Winkey + вкладка для экрана рабочего стола
- Щелкните правой кнопкой мыши на окне, которое вы хотите переместить.
Используйте правую кнопку на клавиатуре или 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!
Если кто-то хочет продолжать расследование, это послужит началом.