private void RDPEvent_OnDisconnected(object sender, IMsTscAxEvents_OnDisconnectedEvent e) { const int UI_ERR_NORMAL_DISCONNECT = 0xb08; if (e.discReason != UI_ERR_NORMAL_DISCONNECT) { string reason = RDP_Client.GetErrorDescription((uint)e.discReason, (uint)RDP_Client.ExtendedDisconnectReason); Event_Disconnected(this, e.discReason + Constants.vbCrLf + reason); } if (Settings.Default.ReconnectOnDisconnect) { ReconnectGroup = new ReconnectGroup(); ReconnectGroup.Left = (Control.Width / 2) - (ReconnectGroup.Width / 2); ReconnectGroup.Top = (Control.Height / 2) - (ReconnectGroup.Height / 2); ReconnectGroup.Parent = Control; ReconnectGroup.Show(); tmrReconnect.Enabled = true; } else { Close(); } }
private void tmrReconnect_Elapsed(object sender, System.Timers.ElapsedEventArgs e) { bool srvReady = System.Convert.ToBoolean(Tools.PortScan.Scanner.IsPortOpen(Info.Hostname, Info.Port.ToString())); ReconnectGroup.ServerReady = srvReady; if (ReconnectGroup.ReconnectWhenReady && srvReady) { tmrReconnect.Enabled = false; ReconnectGroup.DisposeReconnectGroup(); ICA_Client.Connect(); } }