Windows 10: Schalten Sie den virtuellen Desktop um, während Sie sich auf dem Remote-Desktop im Vollbildmodus befinden

28

Ich habe 3 virtuelle Desktops in Windows 10.
Auf einem dieser Desktops starte ich mstsc fullscreen.

Zum Wechseln des Desktops kann ich Windows + Strg + Links oder Rechts verwenden.
Aber wenn ich mich in einem Vollbildmodus befinde, wird dieser Schlüssel von mstsc erfasst und das Umschalten funktioniert nicht.
Gibt es eine Möglichkeit, dieses Verhalten zu ändern?

r03
quelle
Ich brauche auch dazu eine Antwort!
Antony
1
Upvoting, denn das wäre toll. Es wäre schön zu wählen, welche Windows-Tastenkombinationen für RDP oder Computer gelten
MikeMurko

Antworten:

32

Ich habe nach einer Lösung für dieses Problem gesucht und gerade eine gefunden!

CTRL+ ALT+ HOMEGibt den Tastaturfokus wieder auf Host , wenn in Remote Desktop.
Dann können Sie tun , WIN+ CTRL+ LEFToder RIGHTzum Wechsel zwischen virtuellen Desktops.
Nicht ideal, aber ich werde wahrscheinlich Autohotkey-Deal mit diesen 2 Verknüpfungen haben.

BignOOse
quelle
1
Das ist so verdammt genial !! Ich habe eine Weile nach so etwas gesucht und das Beste, was ich gefunden habe, war Strg + Alt + Pause, wodurch der Vollbildmodus geschlossen wird - es ist sehr unangenehm! Ich würde dir ein Kopfgeld geben, wenn das so wäre stackoverflow, aber ich kann das hier nicht tun. Danke +1!
Kiril Kirov
Lieb dich so sehr, nimm meine Punkte !!
Fedaykin
7

Es stellt sich heraus, dass Sie im Remotedesktop-Client "Nur dieser Computer" auswählen sollten, wenn Sie die Windows-Tastenkombination anwenden möchten.

Lokale Remotedesktopressourcen

Antonius
quelle
4
Das funktioniert, aber jetzt kann ich ALT + TAB
r03
1
Ich habe auch das gleiche Problem. Ich wünschte, es gäbe eine Möglichkeit, es ignorieren zu lassen, nur gewinnen + Strg + links / rechts
Ege Özcan
1
@EgeÖzcan gibt es (irgendwie)! Siehe diese Antwort
Lukas
4

Zuerst wollte ich, dass die Windows-Tasten ( Alt-Tabzum Beispiel) auf dem Remotecomputer funktionieren , daher habe ich für die Einstellung "Windows-Tastenkombinationen anwenden" die Option "Nur im Vollbildmodus".

Da nur sehr wenige Tastenkombinationen in der Lage sind, den Remotedesktop im Vollbildmodus zu verlassen, müssen Sie verwenden CTRL-ALT-HOME, um die Verbindungsleiste einzublenden, aber auch die Steuerung an den lokalen Computer zurückzugeben.

Also schrieb ich dieses Autohotkey- Skript: switchVirtualDesktopWithRD.ahk . Es basiert vollständig auf diesem Skript , daher nehme ich keine Anerkennung an. Ich habe es einfach an meine Bedürfnisse angepasst . Sie können es an Ihre anpassen ...

In meinem Fall habe ich nur zwei virtuelle Desktops: Der erste ist der wichtigste und der zweite ist der Ort, an dem ich einen Remote-Desktop-Client im Vollbildmodus ausführe.

Was das Skript macht, wenn ich drücke CTRL-ALT-HOME:

  • Wenn ich mich auf dem zweiten virtuellen Desktop befinde, auf dem ich einen Remote-Desktop-Client im Vollbildmodus ausführe, wird zuerst die Verbindungsleiste angezeigt. Ich drücke dann die HOMETaste erneut (mit CTRLund ALTimmer noch gedrückt) und kehre zum ersten Hauptdesktop zurück. Wenn auf dem zweiten Desktop keine Vollbildsitzung stattfindet, wechselt die erste Kombination sofort zum ersten Desktop.

  • Wenn ich mich auf dem ersten Desktop befinde, wird sofort auf den zweiten umgeschaltet.

Mit anderen Worten, ich CTRL-ALT-HOMEwechsle immer zwischen Desktops.

Elektrotyp
quelle
Ich mag das. Wenn wir ein ahk-Skript auf den Remotecomputern ausführen (und sie so einstellen, dass sie beim Anmelden gestartet werden), frage ich mich, ob wir von der Remote-ahk aus ein CTRL-WIN-LEFTin übersetzen CTRL-ALT-HOMEund den Fokusschalter auf die RDP-Verbindungsleiste auslösen könnten. Dann müssen Sie nur CTRL-WIN-LEFTzweimal drücken , um den Desktop zu wechseln.
Luke
Ich habe es zum Laufen gebracht, aber mit einem Skript, das nur auf dem lokalen Computer ausgeführt wird - ahk auf der Fernbedienung ist nicht erforderlich: D
Luke
3

Aufbauend auf Antwort des Galvano Ich habe einen AHK - Skript , das ermöglicht Ctrl+ Win+ Leftund Ctrl+ Win+ RightHotkeys Schalter auf der lokalen Computer - Desktops, aus einer Vollbild - RDP - Sitzung, ohne irgendwelche andere Tasten in der RDP - Sitzung zu opfern - dh Alt+ Tabund ähnlich alle noch arbeiten wie gewohnt innerhalb der RDP-Sitzung.

Da die reguläre Tastenkombination auf dem Remotecomputer funktionieren soll, muss beim Starten der RDP-Sitzung die Einstellung "Windows-Tastenkombinationen anwenden" auf "Nur bei Verwendung des Vollbildmodus" gesetzt sein.

Ich habe mein Skript auf ein anderes Skript gestützt, das ich in den AHK-Foren gefunden habe.

Was es macht:

  • Führen Sie das Skript auf Ihrem lokalen Computer aus (nicht auf dem Remotedesktop). Ich habe meine eingefügt, C:\users\<user>\documents\AutoHotkey.ahkdamit es läuft, wenn ich ahk ohne Argumente starte.
  • Wenn Sie sich in einer RDP-Sitzung befinden und Ctrl+ Win+ ( Leftoder right) drücken, sendet das Skript zuerst Ctrl+ Alt+, Homeum die RDP-Titelleiste zu aktivieren, und sendet dann die Tastenkombination zum Wechseln des Desktops, um den Desktop tatsächlich zu wechseln.

Hinweis: Wenn Sie zwei oder mehr virtuelle Remote-Desktops verwenden (z. B. einen lokalen virtuellen Desktop, zwei virtuelle Desktops mit jeweils einem Vollbild-RDP-Fenster), wird es etwas fehlerhaft, aber ich habe momentan keine Zeit mehr, daran zu arbeiten . Das Problem ist, dass Sie beim Wechsel von einem virtuellen Remote-Desktop zu einem anderen den Hotkey lösen und erneut binden müssen. Dies kann jedoch nicht erkannt werden. Die RDP-Titelleiste verfügt über eine andere Fensterklasse, hat jedoch keine. ' nicht immer abholen).

Ahk-Schrift:

;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
Luke
quelle
Manchmal fühlt es sich so an, als würde es nicht funktionieren. Manchmal muss ich die Ctrl+WinTasten loslassen und erneut drücken, wenn ich von einem lokalen Desktop zu einer Fernbedienung wechsle oder umgekehrt. Versuchen Sie dies, wenn es nicht funktioniert, oder erhöhen Sie SLEEP_VAL am oberen Rand des Skripts, um die Verzögerung zwischen dem Senden Ctrl+Alt+HomeundCtrl+Win+Left
Luke,
3

Wenn Sie ein Touchpad haben, können Sie die Vier-Finger-Geste ausprobieren.

Vom Microsoft Support - Touchpad-Gesten für Windows 10

Virtuelle Desktops wechseln: Legen Sie vier Finger auf das Touchpad und streichen Sie nach rechts oder links.

Ich arbeite mit zwei virtuellen Desktops in Windows 10. Auf einem dieser Desktops greife ich im Vollbildmodus über Remotedesktop auf Windows 7 zu.

Mit dieser Geste kann ich zwischen den beiden virtuellen Desktops wechseln. Für mich geht das.

smperez
quelle
-1

Ich habe das Problem umgangen, dass die Hotkeys durch Ändern des Skripts gedrückt und wieder freigegeben werden müssen, damit die Hotkeys beim Ausführen gebunden und nie wieder freigegeben werden.

Greg
quelle
Bitte verdeutlichen Sie diese Antwort und fügen Sie ein wenig mehr Kontext hinzu, um zu vermitteln, was Sie genau vorschlagen. Sie wissen, ziehen Sie in Betracht, einen Verweis auf diese Antwort hinzuzufügen, der Ihre Aussage bestätigt. Lesen Sie andernfalls "Warum brauche ich 50 Ruf, um zu kommentieren" , um zu verstehen, wie Sie mit dem Kommentieren beginnen können.
Pimp Juice IT