2016/01/22

メモ: RDP 接続でカーソルを点滅させたい

いままで気にしてなかった(気付かなかった)んですが、リモート デスクトップ接続のセッションや RemoteApp プログラムでは、カーソルが点滅しません。

RDP の設定 (.rdp ファイル) には disable cursor setting:i:0 という設定があり、0 (点滅有効、既定) と 1 (点滅無効) で調整できるようなのですが、これが利かない。

追記) 以下の仕様変更とは関係なく、そもそも disable cursor setting:0|1 はカーソル点滅には影響しない設定かもです。

どうやら、RDP 接続のセッションで画面の更新を減らすために、Windows Server 2003 からサーバー側で無効化されているらしい。なつかしのハイパーターミナルに関する情報に、そう書いていました。

ハイパーターミナルのトラブルシューティング > リモート デスクトップ接続でハイパーターミナルを使用している場合に、カーソルが点滅しません。
[URL] https://msdn.microsoft.com/ja-jp/library/cc786584(v=ws.10).aspx#BKMK_11

原因 :  リモート デスクトップ接続でハイパーターミナルを使用している場合には、カーソル点滅オプションは使用できません。これは、リモート デスクトップ セッションでの画面の更新を減らすためです。
解決方法 :  ありません。

“解決方法: ありません” となっていますが、解決方法はありました。


ターミナル サービス セッションを使用して Windows Server 2003 ベースのコンピューターに接続するとき、プログラムでカーソルが点滅しません。
[URL] https://support.microsoft.com/ja-jp/kb/873418



接続先のサーバー側でレジストリの次の場所に CursorBlinkEnable 値を作成して 1 に設定してあげれば解決。Hotfix は必要なし(2003 用の Hotfix ですし、提供終了してますが)。

キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server
値(REG_SZ):
CursorBlinkEnable
値のデータ:
1 (点滅有効)|0 (点滅無効)

コマンド プロンプト (管理者として実行) からなら、次の 1 行のコマンド ラインを実行すればよし。

REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v "CursorBlinkEnable" /t REG_SZ /d 1

セッションをいったん切断して、再接続すれば点滅するようになります。以下は、Windows 7 SP1 の Mstsc.exe (RDP 8.1 クライアント) から Windows 10 に対するリモート デスクトップ接続です。


Windows Server 2012 R2、Windows 10、Windows XP へのリモート デスクトップ接続で点滅することを確認しました。もちろん、RemoteApp プログラム内でも点滅します。

ちなみに、Windows XP のリモート デスクトップでもやってみましたが、ハイパーターミナルでもカーソルは点滅しました。

0 件のコメント: