Windows 10:フルスクリーンのリモートデスクトップで仮想Deskopを切り替える


28

Windows 10には3つの仮想デスクトップがあります。
これらのデスクトップの1つでmstscフルスクリーンを実行します。

デスクトップを切り替えるには、windows + ctrl + leftまたはrightを使用できます。
しかし、私がフルスクリーンmstscにいるとき、このキーはmstscによってキャプチャされ、切り替えは機能しません。
この動作を変更する方法はありますか?


これについても答えが必要です!
アントニー

1
これは素晴らしいことだからです。どのWindowsキーの組み合わせをRDPまたはコンピューターに適用するかを選択するといいと
思い

回答:


32

私はこの問題の解決策を探していましたが、見つけました!

CTRL+ ALT+ HOMEリモートデスクトップの場合、キーボードフォーカスをホストに戻します。
その後、WIN+ CTRL+ LEFTまたはRIGHT仮想デスクトップを切り替えることができます。
理想的ではありませんが、これら2つのショートカットをオートホットキーで処理する可能性があります。


1
それはとても素晴らしいです!! 私はしばらくの間このようなものを探していましたが、私が見つけた最高のものはCtrl + alt + break(pause)でした。これはフルスクリーンモードを閉じます-それは非常に不快です!これがのstackoverflow場合、私はあなたに賞金を贈りますが、ここではできません。+1ありがとう!
キリルキーロフ

愛してる
フェダイキン

7

リモートデスクトップクライアントでは、Windowsキーの組み合わせを適用する際に「このコンピューターのみ」を選択する必要があることがわかりました。

リモートデスクトップローカルリソース


4
それは機能しますが、今はAlt + Tabを使用できません
-r03

1
私も同じ問題を抱えています。私はそれだけで勝つ無視させる方法があったことを望む+ CTRL +左/右
エーゲOzcan氏

1
@EgeÖzcanがあります!この回答を参照してください
ルーク

4

最初に、Windowsキーをリモートコンピューターで動作させる(Alt-Tabたとえば)ため、「Windowsキーの組み合わせを適用する」設定に「フルスクリーン使用時のみ」があります。

次に、フルスクリーンのときにリモートデスクトップから抜け出すことができるキーの組み合わせはほとんどないためCTRL-ALT-HOME、接続バーを表示するだけでなく、ローカルコンピューターに制御を戻すリモートデスクトップを使用する必要があります。

そこで、このautohotkeyスクリプトを作成しました:switchVirtualDesktopWithRD.ahkこのスクリプトに完全に基づいているため、私は信用しません。必要に応じて変更しました。あなたにそれを調整することができます...

私の場合、仮想デスクトップは2つしかありません。1つ目はメインデスクトップで、2つ目はフルスクリーンリモートデスクトップクライアントを実行する場所です。

を押したときのスクリプトの動作CTRL-ALT-HOME

  • フルスクリーンのリモートデスクトップクライアントを実行している2番目の仮想デスクトップを使用している場合、最初に接続バーが表示されます。私は押しHOME(と再びキーをCTRLし、ALTまだ押し)と私は戻って最初に、メインのデスクトップに思います。2番目のデスクトップで全画面セッションが実行されていない場合、最初の組み合わせはすぐに最初のデスクトップに切り替わります。

  • 最初のデスクトップにいる場合、すぐに2番目のデスクトップに切り替わります。

つまり、CTRL-ALT-HOMEデスクトップを切り替えるために常に使用します。


私はこれが好き。リモートコンピューターでahkスクリプトを実行(およびログイン時に開始するように設定)する場合、リモートahkからRDP接続バーへのフォーカススイッチを変換しCTRL-WIN-LEFTCTRL-ALT-HOMEトリガーできるかどうか疑問に思います。次に、CTRL-WIN-LEFTデスクトップを切り替えるために2回押すだけです。
ルーク

動作するようになりましたが、ローカルマシンでのみスクリプトが実行されています-リモートでahkを使用する必要はありません:D-
ルーク

3

オフの構築electrotypeの答えを私が可能になりますAHKスクリプト持ってCtrl+ Win+ LeftCtrl+ Win+ Rightすなわち-スイッチにホットキーがRDPセッション内の任意の他のキーを犠牲にすることなく、フルスクリーンのRDPセッション内から、ローカルコンピュータ上のデスクトップAlt+ Tabすべてのまだおよび類似RDPセッション内で通常どおり動作します。

通常のショートカットキーをリモートコンピューターで機能させるには、RDPセッションを開始するときに[Windowsキーの組み合わせを適用する]設定に[フルスクリーン使用時のみ]が必要です。

実際に、AHKフォーラムで見つけた別のスクリプトからスクリプトを作成しました。

それが何をする:

  • (リモートデスクトップではなく)ローカルマシンでスクリプトを実行します。C:\users\<user>\documents\AutoHotkey.ahk引数を指定せずにahkを起動すると実行されるように、私のものを貼り付けました。
  • RDPセッション内でCtrl+ Win+(Leftまたはright)を押すと、スクリプトは最初にCtrl+ Alt+ Homeを送信してRDPタイトルバーをフォーカスし、次にデスクトップの切り替えキーコンボを送信して実際にデスクトップを切り替えます。

注: 2つ以上の仮想リモートデスクトップ(たとえば、1つのローカル仮想デスクトップ、それぞれにフルスクリーンRDPウィンドウを持つ2つの仮想デスクトップ)を使用すると、少しバグが発生しますが、もう作業する時間はありません。問題は、ある仮想リモートデスクトップから別のデスクトップに切り替えると、ホットキーのバインドを解除して再バインドする必要があり、これを検出するのに問題があることです(ただし、RDPタイトルバーには異なるウィンドウクラスがありますが、そうではありません) tは常にこれを拾います)。

Ahkスクリプト:

;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

時々、それが機能していないように感じます- Ctrl+Winローカルデスクトップからリモートに、またはその逆に移動するときに、時々キーを放して再度押す必要があります。それは働いていない場合ことを試してみてください、または送信の間の遅延を高めるために、スクリプトの先頭にSLEEP_VALを増やすCtrl+Alt+HomeCtrl+Win+Left
ルーク

3

タッチパッドを使用している場合は、4本指ジェスチャーを試すことができます。

Microsoftサポートから-Windows 10のタッチパッドジェスチャ

仮想デスクトップの切り替え:4本の指をタッチパッドに置き、左右にスワイプします。

Windows 10で2つの仮想デスクトップを使用しています。これらのデスクトップの1つで、フルスクリーンモードのリモートデスクトップを介してWin 7にアクセスしています。

この1つのジェスチャーで2つの仮想デスクトップを切り替えることができます。わたしにはできる。


-1

実行時にホットキーをバインドし、バインドを解除しないようにスクリプトを変更して、ホットキーを押して放さなければならないという問題を回避しました。


あなたが提案していることを正確に伝えるために、この答えにもう少し文脈を明確にして追加してください。あなたが知っている、あなたが述べていることをサポートするこの答えへの参照を追加することを検討してください。そうでない場合は、「コメントするには50の評判が必要な理由」を読んで、コメントを開始する方法を理解してください。
ピンプジュースIT
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.