私は、取引所の施設内に物理的に配置されたサーバーへのリモート デスクトップ接続を介して、ユーザーがプライマリ取引アプリケーションと対話する商社で働いています。
私たちのソフトウェアの特徴は、ネットワークに何か問題が発生して RD セッションが切断された場合に、すべての見積もりを自動的に切断してプルすることです。
これを検出するには、アプリケーションのメイン フォームのメソッドをオーバーライドしますWndProc
。ここで、メッセージ パラメータがチェックされます。
Msg == WM_WTSSESSION_CHANGE
と:
WParam.ToInt32() == WTR_REMOTE_DISCONNECT
これは、リモート デスクトップが完全に切断される通常のケースではうまく機能するようです。
ただし、 RD セッションが応答しなくなり (つまり、クリックしても何も起こらない)、明らかに上記のメッセージが受信/処理されないという、短時間の明らかな切断がユーザーに発生することがあります。しばらくすると (通常は 10 秒以内)、ユーザーに「リモート デスクトップに再接続しています...」(またはそのようなメッセージ) というメッセージが表示され、突然 RD セッションが再び応答を開始します。
この pull-quotes-on-remote-desktop-disconnect 機能の全体的な考え方は、基本的に、ユーザーが何が起こっているかを確認できないままアプリケーションが取引されるというシナリオを防ぐことであるため、できることは非常に望ましいことです。 RD セッションが、この「ほとんど切断された」状態として説明する状態にあることを検出します。
これを検出する方法を知っている人はいますか?