これについてMSDNフォーラムを検索しましたが、誰もが(私が思うに)RDP 7.xに戻すことを提案しているようです(MS Update KB2592687をアンインストールします)。
C#/WPF で記述されたカスタム リモート デスクトップ クライアントがあり、リモート デスクトップ ActiveX コントロールは WindowsFormsHost コントロール内でホストされています。アプリは、RDP 8.0 (MS Update KB2592687) を更新する前に正常に動作します。MS アップデートをアンインストールすると (RDP 7.1 に戻す)、アプリは動作します。
私の RDP クライアントは、Virtualbox VRDP (Virtualbox 4.2.x) への接続に使用されます。認証は必要ありません (Null)。RDP 8.0 がインストールされている場合、Windows リモート デスクトップ クライアント (mstsc.exe) は問題なく接続され、応答性が大幅に向上します (RDP 8.0 拡張機能)。しかし、私のカスタム RD クライアントは接続できません。
さらに調査したところ、私のカスタム RDP クライアントは例外をスローしたり、OnConnectingやOnLogonErrorや他のほとんどのイベントを発生させたりしていません。奇妙なのは、これら 2 つのイベントのみを (順番に) 起動していることです。
OnAuthenticationWarningDisplayed
OnAuthenticationWarningDismissed
また、RawCap ( http://www.netresec.com/?page=RawCap ) でテストして、カスタム RDP クライアントがこれらのイベントの前に Virtualbox VRDP にパケットを送信しているかどうかを確認しました。驚いたことに、パケットを送信していません。(MS RD クライアント - mstsc.exe は正常に動作します。)
したがって、カスタム RDP クライアントでのこれらのイベント/メソッド呼び出しに要約されますが、残念ながら私は立ち往生しています。
(コードは簡潔にするために短縮されています)
AxMSTSCLib.AxMsRdpClient8 rdp = new AxMSTSCLib.AxMsRdpClient8();
rdp.OnAuthenticationWarningDisplayed+=new EventHandler(rdp_OnAuthenticationWarningDisplayed);
rdp.OnAuthenticationWarningDismissed+=new EventHandler(rdp_OnAuthenticationWarningDismissed);
rdp.Server = server;
rdp.AdvancedSettings8.RDPPort = 5050;
//No username/password since Virtualbox RDP authentication is set to *null*
//MS RD Client connects just fine to Virtualbox RDP without username/password
try
{
rdp.Connect();
}
catch (Exception ex)
{
}
OnAuthenticationWarningDisplayedとOnAuthenticationWarningDismissedにブレークポイントを設定すると、 Connect()メソッドの後に両方のイベントが発生することが確認されます。Connect()メソッドが呼び出された後、ActiveX コントロールがダイアログボックス (??) を表示しようとしていると思われます。しかし、私は理解できないようです。
RDP 8.0 を使用してカスタム クライアントを実行した人はいますか? それを機能させるための前提条件は何ですか(コード)。
どうもありがとう!大変感謝しています。