Я работаю в торговой компании, где наши пользователи взаимодействуют с основным торговым приложением через подключение к удаленному рабочему столу к серверу, который физически находится на территории биржи.
Особенностью нашего программного обеспечения является то, что оно отключается иавтоматически извлекает все кавычки, если с сетью что-то не так и сеанс удаленного рабочего стола отключается.
Обнаружение этого выполняется путем переопределения метода WndProc
основной формы приложения, где параметр сообщения проверяется на:
Msg == WM_WTSSESSION_CHANGE
и:
WParam.ToInt32() == WTR_REMOTE_DISCONNECT
В обычных случаях, когда удаленный рабочий стол полностью отключается, это прекрасно работает.
Однако иногда случается, что пользователи испытываюткороткий период кажущегося разъединения, когда сеанс RD перестает отвечать на запросы (т. е. нажатие ничего не делает), но, очевидно, описанное выше сообщение не принимается / не обрабатывается.В течение нескольких секунд - обычно ~ 10 секунд - пользователь видит сообщение «Повторное подключение к удаленному рабочему столу ...» (или что-то в этом роде), и внезапно сеанс RD начинает отвечать снова.
Поскольку весьИдея этой функции «отключить удаленное подключение к рабочему столу» состоит в том, чтобы предотвратить сценарий, в котором, по сути, наше приложение торгует без возможности видеть, что происходит, для нас очень желательно иметь возможность определять, когдаСессия RD находится в состоянии, которое я опишу как «почти отключенное» состояние.
Кто-нибудь знает, как мы могли бы обнаружить это?