Windows 10: basculer sur le bureau virtuel en mode Bureau à distance en plein écran

28

J'ai 3 bureaux virtuels dans Windows 10.
Sur l'un de ces bureaux, je lance mstsc en plein écran.

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

r03
la source
J'ai aussi besoin d'une réponse!
Antony
1
Voter, car ce serait formidable. Ce serait bien de choisir les combinaisons de touches Windows qui s'appliquent à RDP ou à l'ordinateur
MikeMurko

Réponses:

32

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

CTRL+ ALT+ HOMEredonne la focalisation du clavier à l'hôte en mode Bureau à distance.
Ensuite, vous pouvez faire WIN+ CTRL+ LEFTou RIGHTpour basculer entre les bureaux virtuels.
Pas idéal, mais je vais probablement avoir un accord avec ces 2 raccourcis.

BignOOse
la source
1
C'est tellement génial !! Je cherchais quelque chose comme ça depuis un moment et le meilleur que j'ai trouvé était Ctrl + alt + pause (pause), ce qui ferme le mode plein écran - c'est très inconfortable! Je vous donnerais une prime si c'était le cas stackoverflow, mais je ne peux pas faire ça ici. Merci +1!
Kiril Kirov
Je t'aime tellement, prends mes pointes !!
Fedaykin
7

Il s'avère que dans le client de bureau à distance, vous devez sélectionner "uniquement cet ordinateur" lorsqu'il s'agit d'appliquer la combinaison de touches Windows.

Ressources locales de bureau à distance

Antony
la source
4
Cela fonctionne, mais maintenant je ne peux pas utiliser ALT + TAB
r03
1
J'ai aussi le même problème. Je souhaite qu'il y ait un moyen de le faire ignorer simplement gagner + ctrl + gauche / droite
Ege Özcan
1
@ EgeÖzcan il y a (en quelque sorte)! Voir cette réponse
Luc
4

Tout d'abord, je voulais que les touches Windows fonctionnent sur l'ordinateur distant ( Alt-Tabpar exemple), j'ai donc "Seulement lors de l'utilisation du 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 lorsqu'il est en plein écran, vous devez utiliser CTRL-ALT-HOME, ce qui amène la barre de connexion, mais redonne également le contrôle à l'ordinateur local.

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

Dans mon cas, je n'ai que deux bureaux virtuels: le premier est le principal et le second est l'endroit où j'exécute un client de bureau distant en plein écran.

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

  • Si je suis sur le deuxième bureau virtuel, celui sur lequel j'exécute un client de bureau distant en plein écran, cela montre d'abord la barre de connexion. J'appuie ensuite à nouveau sur la HOMEtouche (avec CTRLet ALTtoujours enfoncée) et je reviens au 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 passe immédiatement au second.

En d'autres termes, j'utilise toujours CTRL-ALT-HOMEpour basculer entre les bureaux.

galvanotype
la source
J'aime ça. Si nous exécutons un script ahk sur les ordinateurs distants (et les configurons pour démarrer lorsque vous vous connectez), je me demande si nous pourrions traduire un CTRL-WIN-LEFTvers CTRL-ALT-HOMEet déclencher le commutateur de focus vers la barre de connexion RDP à partir de l'ahk distant. Ensuite, il vous suffit d'appuyer CTRL-WIN-LEFTdeux fois pour qu'il change de bureau.
Luke
Je l'ai fait fonctionner, mais avec un script fonctionnant uniquement sur la machine locale - pas besoin de ahk sur la télécommande: D
Luke
3

En s'appuyant sur la réponse de l'électrotype, j'ai un script AHK qui permettra aux touches de raccourci Ctrl+ Win+ Leftet Ctrl+ Win+ Rightde changer de bureau sur l'ordinateur local, à partir d'une session RDP en plein écran, sans sacrifier aucune autre clé dans la session RDP - c'est-à-dire Alt+ Tabet similaires tous encore fonctionner normalement dans la session RDP.

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

En fait, j'ai basé mon script sur un autre script que 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 C:\users\<user>\documents\AutoHotkey.ahkpour qu'il fonctionne quand je commence ahk sans argument.
  • Si vous êtes dans une session RDP et appuyez sur Ctrl+ Win+ ( Leftou right) le script envoie d'abord Ctrl+ Alt+ Homepour concentrer la barre de titre RDP puis envoie la combinaison de touches de changement de bureau pour changer de bureau.

Remarque: il devient un peu bogué lors de l'utilisation de deux ou plusieurs bureaux virtuels distants (par exemple, un bureau virtuel local, deux bureaux virtuels avec une fenêtre RDP en 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 bureau virtuel distant à un autre, vous devez dissocier et relier la touche de raccourci et il a du mal à le détecter (bien que cela ne devrait pas - la barre de titre RDP a une classe de fenêtre différente mais elle ne fonctionne pas) t toujours ramasser).

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
Luc
la source
Parfois, j'ai l'impression que cela ne fonctionne pas - je trouve que je dois relâcher et ré-appuyer sur les Ctrl+Wintouches parfois lorsque je passe d'un bureau local à une télécommande ou vice versa. Essayez cela si cela ne fonctionne pas, ou augmentez le SLEEP_VAL en haut du script pour augmenter le délai entre l'envoi Ctrl+Alt+HomeetCtrl+Win+Left
Luke
3

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

Du support Microsoft - gestes du pavé tactile pour Windows 10

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

Je travaille avec deux bureaux virtuels dans Windows 10. Sur l'un de ces bureaux, j'accède à un Win 7 via Remote Desktop en mode plein écran.

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

smperez
la source
-1

J'ai contourné le problème de devoir appuyer et relâcher les raccourcis clavier en modifiant le script afin qu'il lie les raccourcis clavier lors de l'exécution et ne les délie jamais.

Greg
la source
Veuillez clarifier et ajouter un peu plus de contexte à cette réponse pour exprimer exactement ce que vous proposez. Vous savez, pensez à ajouter une référence à cette réponse à l'appui de ce que vous dites. Sinon, lisez «Pourquoi ai-je besoin de 50 points de réputation pour commenter» pour vous assurer de comprendre comment vous pouvez commencer à commenter.
Pimp Juice IT