60 votes

Bureau à distance : Envoi de Ctrl-Alt-Flèche gauche/Ctrl-Alt-Flèche droite au PC distant

Je dois utiliser les combinaisons de touches Ctrl - Alt - Left Arrow y Ctrl - Alt - Right Arrow dans une application sur mon ordinateur. Lorsque j'utilise Remote Desktop pour me connecter à cet ordinateur, le client Remote Desktop (mstsc.exe) ou l'implémentation du serveur RDP avale ces combinaisons de touches. Les combinaisons semblent être réservées au Bureau à distance, bien qu'elles ne semblent pas faire quoi que ce soit.

Existe-t-il un moyen (supporté ou non) de désactiver ce comportement afin que les combinaisons de touches soient envoyées à mon application ?

32voto

harrymc Points 394411

Les touches de raccourci Ctrl + Alt + Left Arrow et Ctrl + Alt + Right Arrow sont consommés par le client du bureau à distance. Leur seul effet est de vous renvoyer vers l'ordinateur hôte.

Il semble que c'était une fonctionnalité prévue qui n'a jamais été entièrement programmée. et achevée, mais il n'y a aucun moyen de la désactiver. Ces touches de raccourci ne sont même pas répertoriées par Microsoft dans sa documentation officielle à l'adresse suivante Touches de raccourci des services de bureau à distance .

Solution 1 : Utilisez la version Microsoft Store

Une autre version de RDP peut être trouvée dans le Microsoft Store à l'adresse suivante Bureau à distance Microsoft .

Cette version n'a pas cette fonctionnalité semi-implémentée, elle laisse donc passer ces touches de raccourci sans problème. Ceci a été vérifié sur Windows 10 version 1903.

Solution 2 : Traduisez les touches de raccourci sur le client et le serveur.

Cette solution utilisera AutoHotkey installé à la fois sur le client et le serveur, pour :

  • Sur le client, traduisez les touches de raccourci ci-dessus en d'autres qui ne sont pas interceptées par RDP
  • Sur le serveur, traduisez ces touches en touches de raccourci ci-dessus.

Vous pouvez par exemple utiliser sur le client le script "rdp hotkeys_slave.ahk" suivant d'AutoHotkey pour convertir
Ctrl + Alt + arrow à Alt + Win + arrow :

#SingleInstance Force
#IfWinActive, ahk_exe mstsc.exe
;Send Alt+Win+Left when user types Ctrl+Alt+Left
^!Left::
send !#{Left}
return

;Send Alt+Win+Right when user types Ctrl+Alt+Right
^!Right::
send !#{Right}
return

Le script est restreint au processus mstsc.exe utilisant #IfWin[Not]Active / #IfWin[Not]Exist .

Malheureusement, les scripts d'Autohotkey ne fonctionnent en RDP plein écran qu'une fois qu'ils sont relancés. après avoir activé le plein écran (Voir ici : Comment réparer l'AHK pour envoyer des clés à RDP en plein écran ? ) Nous avons donc besoin d'un deuxième script "rdp hotkeys_master.ahk" pour y parvenir :

#Persistent
SetTimer, ReloadOnRDPMaximized, 500
return

ReloadOnRDPMaximized:
If WinActive("ahk_class TscShellContainerClass")
{
    WinGet, maxOrMin, MinMax, ahk_class TscShellContainerClass

    if (maxOrMin = 0) {
        WinGetPos, PosX, PosY, WinWidth, WinHeight, ahk_class TscShellContainerClass

        if (PosY = 0) {
            ; it is fully maximized therefore reload "script.ahk"
            Run "autohotkey" "rdp hotkeys_slave.ahk"

            ; wait until window gets deactivated so you don't reload it again.
            WinWaitNotActive, ahk_class TscShellContainerClass

        }
    }
}

Vous pouvez utiliser sur le serveur le script AutoHotkey suivant pour convertir
Alt + Win + arrow à Ctrl + Alt + arrow :

;Send Ctrl+Alt+Left when user types Ctrl+Win+Left
!#Left::
send !^{Left}
return

;Send Ctrl+Alt+Right when user types Ctrl+Win+Right
!#Right::
send !^{Right}
return

Pour que les scripts s'exécutent au démarrage, mettez-les tous dans le dossier de démarrage automatique sur les appareils respectifs (tapez Win+R et scripts:startup).

7voto

iamsolarplexus Points 71

Merci à l'auteur du message et aux réponses apportées jusqu'à présent ; elles m'ont aidé à résoudre mon problème similaire : J'ai des raccourcis clavier dans l'éditeur de texte de mon ordinateur de bureau qui utilisent les fonctions suivantes Ctrl+Alt+... et je voulais pouvoir les utiliser pour accéder à la machine à distance.

Avec cet AHK script, je tape Win au lieu de Alt et je suis capable d'accomplir les commandes commentées ci-dessous. Maintenant, quel que soit le PC que j'utilise pour accéder au PC du bureau distant (c'est-à-dire à la maison ou en voyage), je peux utiliser mes raccourcis (et Win est assez proche de Alt). Voici mon AHK script :

;Send Ctrl+Alt+Left keys when user types Ctrl+Win+Left
^#Left::
send !^{Left}
return

;Send Ctrl+Alt+Right keys when user types Ctrl+Win+Right
^#Right::
send !^{Right}
return

;Send Ctrl+Alt+Up keys when user types Ctrl+Win+Up
^#Up::
send !^{Up}
return

;Send Ctrl+Alt+Down keys when user types Ctrl+Win+Down
^#Down::
send !^{Down}
return

;Send Ctrl+Alt+Shift+Left keys when user types Ctrl+Win+Shift+Left
^#+Left::
send !^+{Left}
return

;Send Ctrl+Alt+Shift+Right keys when user types Ctrl+Win+Shift+Right
^#+Right::
send !^+{Right}
return

;Send Ctrl+Alt+Shift+Up keys when user types Ctrl+Win+Shift+Up
^#+Up::
send !^+{Up}
return

;Send Ctrl+Alt+Shift+Down keys when user types Ctrl+Win+Shift+Down
^#+Down::
send !^+{Down}
return

Note, j'utilise "Appliquer les combinaisons de touches Windows...sur l'ordinateur distant" dans Connexion Bureau à distance, donc j'exécute ce script. sur l'ordinateur distant .

Bien qu'il existe probablement des moyens plus efficaces de faire cela, la méthode ci-dessus fonctionne pour moi. J'espère que cela aidera quelqu'un d'autre.

2voto

Zeroes Points 29

Pour l'utilisation CtrlAlt + dans Far Manager j'ai utilisé l'AutoHotKey script suivant :

!^Right::
send ^+{F9}
return

!^Left::
send ^+{F8}
return

où sous CtrlShiftF8 / F9 J'ai des macros Far qui font la même chose que lorsqu'on appuie sur CtrlAlt + .

Cette solution de contournement ne fonctionne que si, dans Propriétés, l'option de connexion Clavier est réglé sur "Sur cet ordinateur".

2voto

Trident D'Gao Points 579

Pour ce que ça vaut, si vous avez besoin de Ctrl + Alt + Up pour travailler dans VSCode, un moyen moins douloureux est de le remapper en Ctrl + Alt + Num8.

enter image description here

2voto

Giovanni Toraldo Points 101

J'aimerais partager un court Autohotkey script qui réparera tous Alt combinaisons interceptées par RDP.

Le script ne remappe pas une combinaison commune qui dépend de l'option de l'utilisateur. # entraîne donc un nombre presque nul de conflits, car les combinaisons avec la touche AppsKey sont très rares.

Client

*^LAlt::^AppsKey
return

Serveur

*^AppsKey::^LAlt
return

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X