web-dev-qa-db-fra.com

Windows 10: Basculer le bureau virtuel en mode de bureau distant plein écran

J'ai 3 bureaux virtuels dans Windows 10.
Sur l’un de ces ordinateurs, j’exécute mstsc en plein écran.

Pour changer de bureau, je peux utiliser Windows + Ctrl + gauche ou droite.
Mais lorsque je suis en mode plein écran mstsc, cette clé est capturée par mstsc et la commutation ne fonctionne pas.
Y a-t-il un moyen de changer ce comportement?

25
r03

Je cherchais une solution à ce problème et je viens d’en trouver une!

CTRL + ALT + HOME redonne le focus du clavier à l'hôte lorsqu'il est dans Remote Desktop.
Alors vous pouvez faire WIN + CTRL + LEFT ou RIGHT pour basculer entre les bureaux virtuels.
Pas idéal, mais j'aurai probablement autohotkey avec ces 2 raccourcis.

28
BignOOse

Il s'avère que dans le client de bureau à distance, vous devez sélectionner "Uniquement cet ordinateur" pour appliquer la combinaison de clés Windows.

Remote Desktop Local Resources

6
Antony

Tout d'abord, je voulais que les touches Windows fonctionnent sur l'ordinateur distant (Alt-Tab par exemple). J'ai donc l'option "Uniquement en mode plein écran" pour le paramètre "Appliquer les combinaisons de touches Windows".

Ensuite, comme très peu de combinaisons de touches sont capables de vous sortir du bureau distant en plein écran, vous devez utiliser CTRL-ALT-HOME, qui ramène la barre de connexion mais rend également le contrôle à l'ordinateur local.

J'ai donc écrit ce script autohotkey : switchVirtualDesktopWithRD.ahk. Il est complètement basé sur ce script , donc je ne prends aucun crédit. Je l'ai simplement modifié pour mes besoins . Vous pouvez l'ajuster à la vôtre ...

Dans mon cas, je n'ai que deux bureaux virtuels: le premier est le principal et le second est l'emplacement où je lance un client de bureau à distance plein écran.

Que fait le script lorsque j'appuie sur CTRL-ALT-HOME:

  • Si je suis sur le deuxième bureau virtuel, celui où je lance un client de bureau à distance plein écran, cela affiche d'abord la barre de connexion. J'appuie ensuite à nouveau sur la touche HOME (avec CTRL et ALT toujours enfoncés) et je suis de retour sur le premier bureau principal. S'il n'y a pas de session plein écran en cours sur le deuxième bureau, la première combinaison passe immédiatement au premier bureau.

  • Si je suis sur le premier bureau, il bascule immédiatement vers le second.

En d'autres termes, j'utilise toujours CTRL-ALT-HOME pour passer d'un bureau à un autre.

4
electrotype

Construire hors réponse d'électrotype J'ai un script AHK qui permettra Ctrl+Win+Left et Ctrl+Win+Right touches de raccourci pour changer de bureau sur l'ordinateur local, à partir d'une session RDP plein écran, sans sacrifier aucune autre clé de la session RDP - c'est-à-dire Alt+Tab et similaire fonctionnent toujours normalement dans la session RDP.

Comme nous voulons que la touche de raccourci habituelle fonctionne sur l’ordinateur distant, vous devez définir le paramètre "Uniquement en mode plein écran" pour "Appliquer les combinaisons de touches Windows" lors du démarrage de la session RDP.

J'ai en fait basé mon script sur n autre script J'ai trouvé sur les forums AHK.

Ce qu'il fait:

  • Exécutez le script sur votre ordinateur local (pas sur le bureau distant). J'ai collé le mien dans C:\users\<user>\documents\AutoHotkey.ahk afin qu'il s'exécute lorsque je commence ahk sans aucun argument.
  • Si vous êtes dans une session RDP et appuyez sur Ctrl+Win+ (Left ou right) le script envoie d'abord Ctrl+Alt+Home pour faire le focus, la barre de titre RDP envoie ensuite la liste déroulante des touches du bureau pour basculer le bureau.

Remarque: l'utilisation de deux postes de travail virtuels distants ou plus (par exemple, un bureau virtuel local, deux bureaux virtuels avec une fenêtre RDP plein écran) sur chacun) mais je n’ai plus le temps de travailler dessus pour le moment. Le problème est que lorsque vous passez d'un poste de travail distant virtuel à un autre, vous devez désassocier et rapprocher la touche de raccourci. Il a du mal à détecter ce problème (bien que cela ne devrait pas être le cas - la barre de titre de RDP a une classe de fenêtre différente, mais elle ne le permet pas. toujours prendre ceci en place).

Ahk script:

;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
Luke

Si vous avez un pavé tactile, vous pouvez essayer le geste des quatre doigts.

Depuis Microsoft Support - Gestes du pavé tactile pour Windows 10

Changer de bureau virtuel: Placez quatre doigts sur le pavé tactile et balayez vers la droite ou vers la gauche.

Je travaille avec deux bureaux virtuels sous Windows 10. Sur l'un de ces postes de travail, j'accède à Windows 7 via Bureau à distance en mode plein écran.

Je peux basculer entre les deux bureaux virtuels avec ce seul geste. Ça marche pour moi.

3
smperez