void axMsTscAx_OnDisconnected(object sender, IMsTscAxEvents_OnDisconnectedEvent e) { AxMsRdpClient2 client = (AxMsRdpClient2)sender; string error = Functions.GetErrorMessage(e.discReason); if (error != null) { // MessageBox.Show(this, String.Format("Error connecting to {0} ({1})", client.Server, error), "Terminals " + Program.TerminalsVersion.ToString(),MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } TabControlItem selectedTabPage = (TabControlItem)(client.Parent); bool wasSelected = selectedTabPage.Selected; ParentForm.tcTerminals.RemoveTab(selectedTabPage); ParentForm.tcTerminals_TabControlItemClosed(null, EventArgs.Empty); if (wasSelected) { NativeApi.PostMessage(new HandleRef(this, this.Handle), MainForm.WM_LEAVING_FULLSCREEN, IntPtr.Zero, IntPtr.Zero); } ParentForm.UpdateControls(); if (OnDisconnected != null) { OnDisconnected(this); } }
public AxMsRdpClient2EventMulticaster(AxMsRdpClient2 parent) { this.parent = parent; }
public AxMsRdpClient2 axMsRdpClient2 = null; //new AxMsRdpClient2(); public override bool Connect() { try { axMsRdpClient2 = new AxMsRdpClient2(); Controls.Add(axMsRdpClient2); axMsRdpClient2.BringToFront(); this.BringToFront(); axMsRdpClient2.Parent = base.TerminalTabPage; this.Parent = TerminalTabPage; axMsRdpClient2.AllowDrop = true; ((Control)axMsRdpClient2).DragEnter += new DragEventHandler(axMsRdpClient2_DragEnter); ((Control)axMsRdpClient2).DragDrop += new DragEventHandler(axMsRdpClient2_DragDrop); axMsRdpClient2.OnConnected += new EventHandler(axMsRdpClient2_OnConnected); axMsRdpClient2.Dock = DockStyle.Fill; ChangeDesktopSize(Favorite.DesktopSize); try { //if(Favorite.DesktopSize == DesktopSize.AutoScale) axMsRdpClient2.AdvancedSettings3.SmartSizing = true; //axMsRdpClient2.DesktopWidth = width; //axMsRdpClient2.DesktopHeight = height; switch (Favorite.Colors) { case Colors.Bits8: axMsRdpClient2.ColorDepth = 8; break; case Colors.Bit16: axMsRdpClient2.ColorDepth = 16; break; case Colors.Bits24: axMsRdpClient2.ColorDepth = 24; break; case Colors.Bits32: if (Settings.SupportsRDP6) { axMsRdpClient2.ColorDepth = 32; } else { axMsRdpClient2.ColorDepth = 24; } break; } axMsRdpClient2.ConnectingText = "Connecting. Please wait..."; axMsRdpClient2.DisconnectedText = "Disconnecting..."; axMsRdpClient2.AdvancedSettings3.RedirectDrives = Favorite.RedirectDrives; //advanced settings //bool, 0 is false, other is true if (Favorite.AllowBackgroundInput) { axMsRdpClient2.AdvancedSettings.allowBackgroundInput = -1; } if (Favorite.BitmapPeristence) { axMsRdpClient2.AdvancedSettings.BitmapPeristence = -1; } if (Favorite.EnableCompression) { axMsRdpClient2.AdvancedSettings.Compress = -1; } if (Favorite.AcceleratorPassthrough) { axMsRdpClient2.AdvancedSettings2.AcceleratorPassthrough = -1; } if (Favorite.DisableControlAltDelete) { axMsRdpClient2.AdvancedSettings2.DisableCtrlAltDel = -1; } if (Favorite.DisplayConnectionBar) { axMsRdpClient2.AdvancedSettings2.DisplayConnectionBar = true; } if (Favorite.DoubleClickDetect) { axMsRdpClient2.AdvancedSettings2.DoubleClickDetect = -1; } if (Favorite.DisableWindowsKey) { axMsRdpClient2.AdvancedSettings2.EnableWindowsKey = -1; } if (Favorite.EnableEncryption) { axMsRdpClient2.AdvancedSettings2.EncryptionEnabled = -1; } if (Favorite.GrabFocusOnConnect) { axMsRdpClient2.AdvancedSettings2.GrabFocusOnConnect = true; } if (Favorite.EnableSecuritySettings) { if (Favorite.SecurityFullScreen) { axMsRdpClient2.SecuredSettings2.FullScreen = -1; } axMsRdpClient2.SecuredSettings2.StartProgram = Favorite.SecurityStartProgram; axMsRdpClient2.SecuredSettings2.WorkDir = Favorite.SecurityWorkingFolder; } axMsRdpClient2.AdvancedSettings2.MinutesToIdleTimeout = Favorite.IdleTimeout; try { int timeout = Favorite.OverallTimeout; if (timeout > 600) { timeout = 10; } if (timeout <= 0) { timeout = 10; } axMsRdpClient2.AdvancedSettings2.overallConnectionTimeout = timeout; timeout = Favorite.ConnectionTimeout; if (timeout > 600) { timeout = 10; } if (timeout <= 0) { timeout = 10; } axMsRdpClient2.AdvancedSettings2.singleConnectionTimeout = timeout; timeout = Favorite.ShutdownTimeout; if (timeout > 600) { timeout = 10; } if (timeout <= 0) { timeout = 10; } axMsRdpClient2.AdvancedSettings2.shutdownTimeout = timeout; //axMsRdpClient2.AdvancedSettings2.PinConnectionBar; //axMsRdpClient2.AdvancedSettings2.TransportType; //axMsRdpClient2.AdvancedSettings2.WinceFixedPalette; //axMsRdpClient2.AdvancedSettings3.CanAutoReconnect = Favorite.CanAutoReconnect; } catch (Exception exc) { Terminals.Logging.Log.Error("Error when trying to set timeout values.", exc); } axMsRdpClient2.AdvancedSettings3.RedirectPorts = Favorite.RedirectPorts; axMsRdpClient2.AdvancedSettings3.RedirectPrinters = Favorite.RedirectPrinters; axMsRdpClient2.AdvancedSettings3.RedirectSmartCards = Favorite.RedirectSmartCards; axMsRdpClient2.AdvancedSettings3.PerformanceFlags = Favorite.PerformanceFlags; /* * TS_PERF_DISABLE_CURSOR_SHADOW * 0x00000020 * No shadow is displayed for the cursor. * TS_PERF_DISABLE_CURSORSETTINGS * 0x00000040 * Cursor blinking is disabled. * TS_PERF_DISABLE_FULLWINDOWDRAG * 0x00000002 * Full-window drag is disabled; only the window outline is displayed when the window is moved. * TS_PERF_DISABLE_MENUANIMATIONS * 0x00000004 * Menu animations are disabled. * TS_PERF_DISABLE_NOTHING * 0x00000000 * No features are disabled. * TS_PERF_DISABLE_THEMING * 0x00000008 * Themes are disabled. * TS_PERF_DISABLE_WALLPAPER * 0x00000001 * Wallpaper on the desktop is not displayed. * */ if (Settings.SupportsRDP6) { MSTSCLib6.IMsRdpClientAdvancedSettings5 advancedSettings5 = (axMsRdpClient2.AdvancedSettings3 as MSTSCLib6.IMsRdpClientAdvancedSettings5); if (advancedSettings5 != null) { advancedSettings5.RedirectClipboard = Favorite.RedirectClipboard; advancedSettings5.RedirectDevices = Favorite.RedirectDevices; advancedSettings5.ConnectionBarShowMinimizeButton = false; advancedSettings5.ConnectionBarShowPinButton = false; advancedSettings5.ConnectionBarShowRestoreButton = false; } } axMsRdpClient2.SecuredSettings2.AudioRedirectionMode = (int)Favorite.Sounds; string domainName = Favorite.DomainName; if (domainName == null || domainName == "") { domainName = Settings.DefaultDomain; } string pass = Favorite.Password; if (pass == null || pass == "") { pass = Settings.DefaultPassword; } string userName = Favorite.UserName; if (userName == null || userName == "") { userName = Settings.DefaultUsername; } axMsRdpClient2.UserName = userName; axMsRdpClient2.Domain = domainName; try { if (!String.IsNullOrEmpty(pass)) { MSTSC.IMsTscNonScriptable nonScriptable = (MSTSC.IMsTscNonScriptable)axMsRdpClient2.GetOcx(); if (nonScriptable != null) { nonScriptable.ClearTextPassword = pass; } } } catch (Exception exc) { Terminals.Logging.Log.Error("Error when trying to set the ClearTextPassword on the nonScriptable mstsc object", exc); } axMsRdpClient2.Server = Favorite.ServerName; axMsRdpClient2.AdvancedSettings3.RDPPort = Favorite.Port; axMsRdpClient2.AdvancedSettings3.ContainerHandledFullScreen = -1; axMsRdpClient2.AdvancedSettings3.DisplayConnectionBar = Favorite.DisplayConnectionBar; // Use ConnectToServerConsole or ConnectToAdministerServer based on implementation if (axMsRdpClient2.AdvancedSettings3 is MSTSCLib6.IMsRdpClientAdvancedSettings6) { ((MSTSCLib6.IMsRdpClientAdvancedSettings6)axMsRdpClient2.AdvancedSettings3).ConnectToAdministerServer = Favorite.ConnectToConsole; } else { axMsRdpClient2.AdvancedSettings3.ConnectToServerConsole = Favorite.ConnectToConsole; } axMsRdpClient2.OnRequestGoFullScreen += new EventHandler(axMsTscAx_OnRequestGoFullScreen); axMsRdpClient2.OnRequestLeaveFullScreen += new EventHandler(axMsTscAx_OnRequestLeaveFullScreen); axMsRdpClient2.OnDisconnected += new IMsTscAxEvents_OnDisconnectedEventHandler(axMsTscAx_OnDisconnected); axMsRdpClient2.OnWarning += new IMsTscAxEvents_OnWarningEventHandler(axMsRdpClient2_OnWarning); axMsRdpClient2.OnFatalError += new IMsTscAxEvents_OnFatalErrorEventHandler(axMsRdpClient2_OnFatalError); Text = "Connecting to RDP Server..."; axMsRdpClient2.FullScreen = true; } catch (Exception exc) { Terminals.Logging.Log.Warn("There was an exception setting an RDP Value.", exc); } axMsRdpClient2.Connect(); return(true); } catch (Exception exc) { Terminals.Logging.Log.Fatal("Connecting to RDP", exc); return(false); } }
public OptionsForm(AxMsRdpClient2 terminal) { InitializeComponent(); chkShowInformationToolTips.Checked = Settings.ShowInformationToolTips; chkShowUserNameInTitle.Checked = Settings.ShowUserNameInTitle; chkShowFullInfo.Checked = Settings.ShowFullInformationToolTips; txtDefaultDesktopShare.Text = Settings.DefaultDesktopShare; chkExecuteBeforeConnect.Checked = Settings.ExecuteBeforeConnect; txtArguments.Text = Settings.ExecuteBeforeConnectArgs; txtCommand.Text = Settings.ExecuteBeforeConnectCommand; txtInitialDirectory.Text = Settings.ExecuteBeforeConnectInitialDirectory; chkWaitForExit.Checked = Settings.ExecuteBeforeConnectWaitForExit; autoSwitchToCaptureCheckbox.Checked = Settings.AutoSwitchOnCapture; chkSingleInstance.Checked = Settings.SingleInstance; chkShowConfirmDialog.Checked = Settings.ShowConfirmDialog; chkSaveConnections.Checked = Settings.SaveConnectionsOnClose; validateServerNamesCheckbox.Checked = Settings.ForceComputerNamesAsURI; warnDisconnectCheckBox.Checked = Settings.WarnOnConnectionClose; if (Settings.Office2007BlueFeel) { RenderBlueRadio.Checked = true; } else if (Settings.Office2007BlackFeel) { RenderBlackRadio.Checked = true; } else { RenderNormalRadio.Checked = true; } currentTerminal = terminal; this.PortscanTimeoutTextBox.Text = Settings.PortScanTimeoutSeconds.ToString(); ClearMasterButton.Enabled = false; if (Settings.TerminalsPassword != string.Empty) { PasswordProtectTerminalsCheckbox.Checked = true; PasswordProtectTerminalsCheckbox.Enabled = false; PasswordTextbox.Enabled = false; ConfirmPasswordTextBox.Enabled = false; ClearMasterButton.Enabled = true; } this.MinimizeToTrayCheckbox.Checked = Settings.MinimizeToTray; this.AutoExapandTagsPanelCheckBox.Checked = Settings.AutoExapandTagsPanel; ProxyRadionButton.Checked = Settings.UseProxy; if (Settings.UseProxy) { ProxyAddressTextbox.Text = Settings.ProxyAddress; ProxyPortTextbox.Text = Settings.ProxyPort.ToString(); } this.EnableFavoritesPanel.Checked = Settings.EnableFavoritesPanel; this.EnableGroupsMenu.Checked = Settings.EnableGroupsMenu; this.AmazonBackupCheckbox.Checked = Settings.UseAmazon; this.AccessKeyTextbox.Text = Settings.AmazonAccessKey; this.SecretKeyTextbox.Text = Settings.AmazonSecretKey; this.AccessKeyTextbox.Enabled = AmazonBackupCheckbox.Checked; this.SecretKeyTextbox.Enabled = AmazonBackupCheckbox.Checked; this.TestButton.Enabled = AmazonBackupCheckbox.Checked; this.BackupButton.Enabled = AmazonBackupCheckbox.Checked; this.RestoreButton.Enabled = AmazonBackupCheckbox.Checked; this.autoCaseTagsCheckbox.Checked = Settings.AutoCaseTags; }