Windows 10: переключение виртуального десктопа в полноэкранном режиме удаленного рабочего стола

28

У меня 3 виртуальных рабочих стола в Windows 10.
На одном из них я запускаю mstsc в полноэкранном режиме.

Для переключения рабочего стола я могу использовать windows + ctrl + left или right.
Но когда я в полноэкранном режиме mstsc, этот ключ перехватывается mstsc, и переключение не работает.
Есть ли способ изменить это поведение?

r03
источник
Мне тоже нужен ответ на этот вопрос!
Энтони
1
Upvoting, потому что это было бы здорово. Было бы неплохо выбрать, какие комбинации клавиш Windows применяются к RDP или компьютеру
MikeMurko

Ответы:

32

Я искал решение этой проблемы и только что нашел!

CTRL+ ALT+ HOMEвозвращает фокус клавиатуры обратно на хост при работе в удаленном рабочем столе.
Тогда вы можете сделать WIN+ CTRL+ LEFTили RIGHTдля переключения между виртуальными рабочими столами.
Не идеально, но я, вероятно, буду иметь дело с AutoHotkey с этими 2 ярлыками.

BignOOse
источник
1
Это так чертовски здорово! Некоторое время я искал что-то подобное, и лучшее, что я нашел, было Ctrl + Alt + Break (пауза), который закрывает полноэкранный режим - это очень неудобно! Я бы дал вам награду, если бы это было stackoverflow, но я не могу сделать это здесь. Спасибо +1!
Кирилл Киров
Люблю тебя так много, возьми мои возражения !!
Федайкин
7

Оказывается, что в клиенте удаленного рабочего стола, вы должны выбрать «Только этот компьютер», когда дело доходит до применения комбинации клавиш Windows.

Локальные ресурсы удаленного рабочего стола

Antony
источник
4
Это работает, но теперь я не могу использовать ALT + TAB
r03
1
У меня тоже есть такая же проблема. Хотелось бы, чтобы был способ игнорировать это, просто выиграть + Ctrl + Влево /
Вправо
1
@ EgeÖzcan есть (вроде)! Смотрите этот ответ
Лука
4

Во-первых, я хотел, чтобы ключи Windows работали на удаленном компьютере ( Alt-Tabнапример), поэтому у меня есть параметр «Только при использовании полноэкранного режима» для параметра «Применить сочетание клавиш Windows».

Затем, поскольку очень немногие сочетания клавиш способны вывести вас из удаленного рабочего стола, когда он работает в полноэкранном режиме, вы должны использовать его CTRL-ALT-HOME, который отображает панель соединений, но также возвращает управление локальному компьютеру.

Поэтому я написал этот AutoHotkey сценарий: switchVirtualDesktopWithRD.ahk . Он полностью основан на этом сценарии , поэтому я не возражаю. Я просто изменил его для своих нужд . Вы можете настроить это для своего ...

В моем случае у меня есть только два виртуальных рабочих стола: первый является основным, а второй - где я запускаю полноэкранный клиент удаленного рабочего стола.

Что делает скрипт, когда я нажимаю CTRL-ALT-HOME:

  • Если я нахожусь на втором виртуальном рабочем столе, на котором я запускаю полноэкранный клиент удаленного рабочего стола, сначала отображается панель подключения. Затем я снова нажимаю HOMEклавишу (с CTRLи ALTвсе еще нажата), и я возвращаюсь к первому главному рабочему столу. Если на втором рабочем столе не происходит полноэкранный сеанс, первое сочетание сразу переключается на первый рабочий стол.

  • Если я нахожусь на первом рабочем столе, он сразу переключается на второй.

Другими словами, я всегда использую CTRL-ALT-HOMEдля переключения между рабочими столами.

электротипия
источник
Мне это нравится. Если запустить скрипт АКА на удаленном компьютере (ы) (и установить их , чтобы начать при входе), я думаю, мы могли бы переведите CTRL-WIN-LEFTна CTRL-ALT-HOMEи вызвать переключатель фокуса в строку подключения RDP с удаленными АКА. Тогда вам просто нужно нажать CTRL-WIN-LEFTдважды, чтобы переключить рабочие столы.
Лука
Я получил это работает, но с помощью скрипта, работающего только на локальной машине - нет необходимости в ahk на пульте: D
Лука
3

Строительство от ответа гальванопластики в У меня есть сценарий АКА , который позволит Ctrl+ Win+ Leftи Ctrl+ Win+ Rightгорячие клавиши для переключения между рабочими столами на локальном компьютере, в рамках полного экрана RDP сессии, без ущерба для любых других ключей в RDP сессии - то есть Alt+ Tabи аналогично все еще работать как обычно в течение сеанса RDP.

Поскольку мы хотим, чтобы обычные сочетания клавиш работали на удаленном компьютере, при запуске сеанса RDP у вас должен быть параметр «Только при использовании полноэкранного режима» для параметра «Применить сочетания клавиш Windows».

Я фактически основал свой сценарий на другом сценарии, который я нашел на форумах AHK.

Что оно делает:

  • Запустите скрипт на локальном компьютере (не на удаленном рабочем столе). Я вставил мой C:\users\<user>\documents\AutoHotkey.ahkтак, чтобы он работал, когда я запускаю ах без аргументов.
  • Если вы находитесь в сеансе RDP и нажимаете Ctrl+ Win+ ( Leftили right), сценарий сначала отправляет Ctrl+ Alt+, Homeчтобы сфокусировать строку заголовка RDP, а затем отправляет комбинацию клавиш переключения рабочего стола, чтобы фактически переключить рабочий стол.

Примечание. При использовании двух или более виртуально-удаленных рабочих столов (например, один локальный виртуальный рабочий стол, два виртуальных рабочих стола с полноэкранным RDP-окном на каждом) он немного глючит, но сейчас у меня больше нет времени на него работать. , Проблема заключается в том, что при переключении с одного виртуального удаленного рабочего стола на другой необходимо отсоединить и повторно связать горячую клавишу, и у него возникают проблемы с обнаружением этого (хотя это не должно происходить - строка заголовка RDP имеет другой класс окна, но это не так). не всегда забрать это).

Ахк скрипт:

;setTimer, windowwatch, 500
#persistent
#usehook
SLEEP_VAL := 500
DEBUG := false
keys_bound := false

while true {
    ;Debug("Waiting")
    sleep, SLEEP_VAL
    keys_bound := WaitBind()
}

WaitBind() {
    WinWaitActive, ahk_class TscShellContainerClass
    Debug("bind")
    hotkey LWin & Left, ctrl_win_left_key, on
    hotkey LWin & Right, ctrl_win_right_key, on
    return true
}

WaitUnbind() {
    WinWaitNotActive, ahk_class TscShellContainerClass
    Debug("unbind")
    hotkey LWin & Left, ctrl_win_left_key, off
    hotkey LWin & Right, ctrl_win_right_key, off
    return false
}

Debug(msg) {
    global DEBUG
    if (DEBUG) {
        tooltip %msg%
        settimer, TooltipClear, 2000
    }
}
return

z_key:
    ; simple script for testing - change the z to 'he'
    send, he
    Debug("done z")
return

j_key:
    ; testing if we can activate the RDP title bar
    send {Ctrl down}{Alt down}{Home}{Alt up}{Ctrl up}
    Debug("done j")
Return

ctrl_win_left_key:
    ; we are intercepting all Win+Left combinations so we have to do Win+Shift+Left and Win+Left manually to preserve them inside the RDP
    GetKeyState, shiftState, Shift
    GetKeyState, ctrlState, Ctrl
    if (shiftState = "D") {
        ; by default in windows Ctrl+Shift+Win+Left will act like Shift+Win+Left - shift takes precedence
        Debug("done shift win left")
        send {Shift down}{LWin down}{Left}{LWin up}{Shift up}
    } else if (ctrlState = "D") {
        Debug("done ctrl win left")
        ; the magic happens here
        send {Ctrl down}{Alt down}{Home}{Alt up}{Ctrl up}
        keys_bound := WaitUnbind()
        ;Sleep, SLEEP_VAL ;give the OS time to focus on the title bar
        send {Ctrl down}{LWin down}{Left}{LWin up}{Ctrl up}
    } else {
        Debug("done win left")
        send {LWin down}{Left}{LWin up}
    }
Return

ctrl_win_right_key:
    ; we are intercepting all Win+Right combinations so we have to do Win+Shift+Right and Win+Right manually to preserve them inside the RDP
    GetKeyState, shiftState, Shift
    GetKeyState, ctrlState, Ctrl
    if (shiftState = "D") {
        ; by default in windows Ctrl+Shift+Win+Left will act like Shift+Win+Left - shift takes precedence
        Debug("done shift win right")
        send {Shift down}{LWin down}{Right}{LWin up}{Shift up}
    } else if (ctrlState = "D") {
        Debug("done ctrl win right")
        ; the magic happens here
        send {Ctrl down}{Alt down}{Home}{Alt up}{Ctrl up}
        keys_bound := WaitUnbind()
        ;Sleep, SLEEP_VAL ;give the OS time to focus on the title bar
        send {Ctrl down}{LWin down}{Right}{LWin up}{Ctrl up}
    } else {
        Debug("done win right")
        send {LWin down}{Right}{LWin up}
    }
Return


TooltipClear:
    ; just a routine to turn off tooltip after x milliseconds
    tooltip
    settimer, TooltipClear, off
Return

windowwatch:
    ifwinactive ahk_class TscShellContainerClass
    {
      Debug("bind")
      hotkey LWin & Left, ctrl_win_left_key, on
      hotkey LWin & Right, ctrl_win_right_key, on
    }
    else
    {
     Debug("unbind")
     hotkey LWin & Left, ctrl_win_left_key, off
     hotkey LWin & Right, ctrl_win_right_key, off
    }
Return
Люк
источник
Иногда кажется, что это не работает - я обнаруживаю, что мне приходится отпускать и снова нажимать Ctrl+Winклавиши, когда я перехожу с локального рабочего стола на удаленный или наоборот. Попробуйте это, если это не работает, или увеличьте SLEEP_VAL в верхней части скрипта, чтобы увеличить задержку между отправкой Ctrl+Alt+HomeиCtrl+Win+Left
Люк
3

Если у вас есть сенсорная панель, вы можете попробовать четыре пальца жест.

От службы поддержки Microsoft - жесты сенсорной панели для Windows 10

Переключение виртуальных рабочих столов. Поместите четыре пальца на сенсорную панель и проведите пальцем вправо или влево.

Я работаю с двумя виртуальными рабочими столами в Windows 10. На одном из этих рабочих столов я получаю доступ к Win 7 через удаленный рабочий стол в полноэкранном режиме.

Я могу переключаться между двумя виртуальными рабочими столами одним жестом. Меня устраивает.

smperez
источник
-1

Я обошел проблему с необходимостью нажимать и отпускать горячие клавиши, изменяя скрипт так, чтобы он связывал горячие клавиши при запуске и никогда не связывал их.

Greg
источник
Пожалуйста, уточните и добавьте немного больше контекста к этому ответу, чтобы точно передать то, что вы предлагаете. Вы знаете, подумайте над добавлением ссылки на этот ответ в поддержку того, что вы заявляете. В противном случае, прочитайте «Почему мне нужно 50 репутации, чтобы комментировать», чтобы понять, как вы можете начать комментировать.
Сок Pimp IT