Windows 10: Wechseln Sie den virtuellen Schreibtisch im Vollbildmodus auf dem Remotedesktop

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

Um den Desktop zu wechseln, kann ich Windows+Strg+links oder rechts verwenden.
Aber wenn ich in einem Vollbild-mstsc bin, wird dieser Schlüssel von mstsc erfasst und das Umschalten funktioniert nicht.
Gibt es eine Möglichkeit, dieses Verhalten zu ändern?

Author: r03, 2016-02-29

6 answers

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

STRG + ALT + HOME gibt tastatur fokus zurück zu host, wenn in Remote Desktop.
Dann können Sie WIN + STRG + LINKS oder RECHTS, um zwischen virtuellen Desktops zu wechseln.
Nicht ideal, aber ich werde wahrscheinlich Autohotkey mit diesen 2 Verknüpfungen umgehen lassen.

 57
Author: BignOOse,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-02-15 16:27:15

Es stellt sich heraus, dass Sie im Remotedesktopclient "Nur diesen Computer" auswählen sollten, wenn Sie die Windows-Tastenkombination anwenden.

Remote-Desktop Lokale Ressourcen

 10
Author: Antony,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-03-09 16:14:29

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

Von Microsoft Support - Touchpad-gesten für Windows-10

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

, arbeite ich mit zwei virtuellen desktops in Windows 10. Auf einem dieser Desktops greife ich im Vollbildmodus über Remote Desktop auf einen Win 7 zu.

Ich kann mit dieser einzigen Geste zwischen den beiden virtuellen Desktops wechseln. Es funktioniert für mich.

 6
Author: smperez,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-01-25 12:03:59

Zuerst wollte ich, dass die Windows-Tasten auf dem Remote-Computer funktionieren (zum BeispielAlt-Tab), also habe ich "Nur bei Verwendung des Vollbildschirms" für die Einstellung "Windows-Tastenkombinationen anwenden".

Da nur sehr wenige Tastenkombinationen Sie im Vollbildmodus aus dem Remotedesktop herausholen können, müssen Sie CTRL-ALT-HOME verwenden, wodurch die Verbindungsleiste angezeigt wird, aber auch die Steuerung an den lokalen Computer zurückgegeben wird.

Also habe ich dieses autohotkey Skript geschrieben : switchVirtualDesktopWithRD.ahk. Es basiert vollständig auf dieses Skript, also nehme ich keinen Kredit. Ich habe es einfach für meine Bedürfnisse geändert. 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, wo ich einen Vollbild-Remote-Desktop-Client ausführe.

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

  • Wenn ich auf dem zweiten virtuellen Desktop bin, der, auf dem ich eine vollständige bildschirm Remote Desktop Client, der zuerst die Verbindungsleiste anzeigt. Ich drücke dann erneut die Taste HOME (wobei CTRL und ALT noch gedrückt werden) und kehre zum ersten Hauptdesktop zurück. Wenn auf dem zweiten Desktop keine Vollbildsitzung stattfindet, wechselt die erste Combinaison sofort zum ersten Desktop.

  • Wenn ich auf dem ersten Desktop bin, wechselt es sofort zum zweiten.

Mit anderen Worten, ich verwende immer CTRL-ALT-HOME, um zwischen Desktops zu wechseln.

 5
Author: electrotype,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-04-09 16:18:08

Aufbauend auf electrotype ' s Antwort Ich habe ein AHK-Skript, das Strg aktiviert+Sieg+Links und Strg+Sieg+Right Hotkeys, um Desktops auf dem lokalen Computer innerhalb einer Vollbild-RDP-Sitzung zu wechseln, ohne andere Schlüssel innerhalb der RDP-Sitzung zu opfern-dh Alt+Tab und ähnliches funktionieren in der RDP-Sitzung weiterhin normal.

Da die reguläre Tastenkombination auf der Fernbedienung funktionieren soll computer, Sie müssen "Nur bei Verwendung des Vollbildmodus" für die Einstellung "Windows-Tastenkombinationen anwenden" haben, wenn Sie die RDP-Sitzung starten.

Ich habe mein Skript tatsächlich auf ein anderes Skript basiert, das ich in den AHK-Foren gefunden habe.

Was es tut:

  • Führen Sie das Skript auf Ihrem lokalen Computer aus (nicht auf dem Remotedesktop). Ich habe meine in C:\users\<user>\documents\AutoHotkey.ahk eingefügt, damit sie ausgeführt wird, wenn ich ahk ohne Argumente starte.
  • Wenn Sie sich in einer RDP-Sitzung befinden und drücken Strg+Sieg+(Left oder right) das Skript sendet zuerst Strg+Alt+Home um die RDP-Titelleiste zu fokussieren, wird die Switch Desktop-Tastenkombination gesendet, um den Desktop tatsächlich zu wechseln.

Hinweis: es wird ein wenig fehlerhaft, wenn zwei oder mehr virtuelle Remote-Desktops (zB. ein lokaler virtueller Desktop, zwei virtuelle Desktops mit jeweils einem Vollbild-RDP-Fenster), aber ich habe momentan keine Zeit mehr, daran zu arbeiten. Das Problem ist wenn Sie von einem Virtual-Remote-Desktop zu einem anderen wechseln, müssen Sie die Hotkey - Bindung aufheben und neu binden, und es hat Probleme, dies zu erkennen (obwohl dies nicht der Fall sein sollte-die RDP-Titelleiste hat eine andere Fensterklasse, nimmt dies jedoch nicht immer auf).

Ahk-Skript:

;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
 3
Author: Luke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-08 15:09:59

Ich habe das Problem umgangen, die Hotkeys drücken und loslassen zu müssen, indem ich das Skript so geändert habe, dass es die Hotkeys beim Ausführen bindet und sie niemals aufbindet.

 -1
Author: Greg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-08-11 15:17:11