/// <summary> /// 重置远程连接默认设置 /// </summary> private void PART_Reset_Change_Click(object sender, RoutedEventArgs e) { int i = 0; DbItemSetting itemSetting; if (PART_Reset_Rdp.IsChecked.Value) { i++; itemSetting = DbItemSettingRdp.FromDefault(); itemSetting.SetDefaultSetting(); } if (PART_Reset_Ssh.IsChecked.Value) { i++; itemSetting = DbItemSettingSsh.FromDefault(); itemSetting.SetDefaultSetting(); } if (PART_Reset_Telnet.IsChecked.Value) { i++; itemSetting = DbItemSettingTelnet.FromDefault(); itemSetting.SetDefaultSetting(); } MainWindow.ShowNoticeDialog("提示", i == 0 ? "至少选择一个要重置的项目" : "所选的项目重置重置成功"); }
public override void Connect(DbItemRemoteLink linkSettings, DbItemSetting lastSetting) { DbItemSettingRdp lastSettingRdp = lastSetting as DbItemSettingRdp; if (lastSettingRdp == null) { return; } //分离服务器地址和端口 string[] addr = linkSettings.Server.Split(':'); int port = 3389; if (addr.Length > 1) { int.TryParse(addr[1], out port); } if (port <= 0) { port = 3389; } //初始化远程连接属性 if (MsRdpClient7 != null) //win7及以下版本 { MsRdpClient7.Server = addr[0]; MsRdpClient7.UserName = linkSettings.UserName; MsRdpClient7.AdvancedSettings2.ClearTextPassword = linkSettings.Password; MsRdpClient7.AdvancedSettings2.RDPPort = port; MsRdpClientOcx = (IMsRdpClientNonScriptable5)MsRdpClient7.GetOcx(); MsRdpClientOcx.PromptForCredentials = false; //凭据提示对话框 MsRdpClientOcx.AllowPromptingForCredentials = true; //显示密码输入框 MsRdpClientOcx.DisableConnectionBar = true; //禁用连接栏 //将窗口句柄设置或检索为控件显示的任何对话框的父窗口 var parentHwnd = CommonServices.HWNDtoRemotableHandle(new WindowInteropHelper(Window.GetWindow(this)).Handle); MsRdpClientOcx.set_UIParentWindowHandle(ref parentHwnd); MsRdpClient7.AdvancedSettings.BitmapPeristence = 1; //启用位图缓存 MsRdpClient7.AdvancedSettings.Compress = 1; //启用压缩 MsRdpClient7.AdvancedSettings.ContainerHandledFullScreen = 1; //启用容器处理的全屏模式。 MsRdpClient7.AdvancedSettings2.BitmapPersistence = 1; //持久位图缓存 MsRdpClient7.AdvancedSettings2.CachePersistenceActive = 1; //持久位图缓存 MsRdpClient7.AdvancedSettings2.GrabFocusOnConnect = false; //连接的时候获取焦点 MsRdpClient7.AdvancedSettings7.EnableCredSspSupport = true; //指定是否为此连接启用凭据安全服务提供程序 //分辨率 if (lastSettingRdp.SizeIndex == DbItemSetting.DESKSIZE_AUTO)//自适应分辨率 { Window windows = Window.GetWindow(this); MsRdpClient7.DesktopWidth = (int)windows.Width - 4; MsRdpClient7.DesktopHeight = (int)windows.Height - 34; } else { var size = lastSettingRdp.GetDeskTopSize(); MsRdpClient7.DesktopWidth = (int)size.Width; MsRdpClient7.DesktopHeight = (int)size.Height; } //性能选项 if (lastSettingRdp.Performance != DbItemSettingRdp.CONNECTION_TYPE_AUTO) { MsRdpClient7.AdvancedSettings8.NetworkConnectionType = (uint)lastSettingRdp.Performance; } //颜色深度 switch (lastSettingRdp.ColorDepthMode) { case DbItemSettingRdp.COLOR_15BPP: MsRdpClient7.ColorDepth = 15; break; case DbItemSettingRdp.COLOR_16BPP: MsRdpClient7.ColorDepth = 16; break; case DbItemSettingRdp.COLOR_24BPP: MsRdpClient7.ColorDepth = 24; break; case DbItemSettingRdp.COLOR_32BPP: MsRdpClient7.ColorDepth = 32; break; default: MsRdpClient7.ColorDepth = 32; break; } //音频 MsRdpClient7.AdvancedSettings6.AudioRedirectionMode = (uint)lastSettingRdp.AudioRedirectionMode - 1; //组合键 MsRdpClient7.SecuredSettings2.KeyboardHookMode = lastSettingRdp.KeyboardHookMode - 1; //本地资源 MsRdpClient7.AdvancedSettings2.RedirectPrinters = lastSettingRdp.RedirectionPrintf.Value ? true : false; //打印机 MsRdpClient7.AdvancedSettings6.RedirectClipboard = lastSettingRdp.RedirectionClipboard.Value ? true : false; //剪贴板重定向 MsRdpClient7.AdvancedSettings3.RedirectSmartCards = lastSettingRdp.RedirectionsMartcard.Value ? true : false; //智能卡重定向 MsRdpClient7.AdvancedSettings3.RedirectPorts = lastSettingRdp.RedirectionsPort.Value ? true : false; //端口重定向 MsRdpClient7.AdvancedSettings3.RedirectDrives = lastSettingRdp.RedirectionsDriver.Value ? true : false; //驱动器重定向 MsRdpClient7.AdvancedSettings4.ConnectionBarShowMinimizeButton = false;//显示全部工具栏上的最小化按钮 MsRdpClient7.AdvancedSettings7.ConnectToAdministerServer = false; MsRdpClient7.Connect(); User32.EnumChildWindows(MsRdpClient7.Handle, EnumWindowsProc, IntPtr.Zero); } else //win8 及以上版本 { MsRdpClient9.Server = addr[0]; MsRdpClient9.UserName = linkSettings.UserName; MsRdpClient9.AdvancedSettings2.ClearTextPassword = linkSettings.Password; MsRdpClient9.AdvancedSettings2.RDPPort = port; MsRdpClientOcx = (IMsRdpClientNonScriptable5)MsRdpClient9.GetOcx(); MsRdpClientOcx.PromptForCredentials = false; //凭据提示对话框 MsRdpClientOcx.AllowPromptingForCredentials = true; //显示密码输入框 MsRdpClientOcx.DisableConnectionBar = true; //禁用连接栏 //将窗口句柄设置或检索为控件显示的任何对话框的父窗口 var parentHwnd = CommonServices.HWNDtoRemotableHandle(new WindowInteropHelper(Window.GetWindow(this)).Handle); MsRdpClientOcx.set_UIParentWindowHandle(ref parentHwnd); MsRdpClient9.AdvancedSettings.BitmapPeristence = 1; //启用位图缓存 MsRdpClient9.AdvancedSettings.Compress = 1; //启用压缩 MsRdpClient9.AdvancedSettings.ContainerHandledFullScreen = 1; //启用容器处理的全屏模式。 MsRdpClient9.AdvancedSettings2.BitmapPersistence = 1; //持久位图缓存 MsRdpClient9.AdvancedSettings2.CachePersistenceActive = 1; //持久位图缓存 MsRdpClient9.AdvancedSettings2.GrabFocusOnConnect = false; //连接的时候获取焦点 MsRdpClient9.AdvancedSettings7.EnableCredSspSupport = true; //指定是否为此连接启用凭据安全服务提供程序 //分辨率 if (lastSettingRdp.SizeIndex == DbItemSetting.DESKSIZE_AUTO)//自适应分辨率 { Window windows = Window.GetWindow(this); MsRdpClient9.DesktopWidth = (int)windows.Width - 4; MsRdpClient9.DesktopHeight = (int)windows.Height - 34; } else { var size = lastSettingRdp.GetDeskTopSize(); MsRdpClient9.DesktopWidth = (int)size.Width; MsRdpClient9.DesktopHeight = (int)size.Height; } //性能选项 if (lastSettingRdp.Performance == DbItemSettingRdp.CONNECTION_TYPE_AUTO) { MsRdpClient9.AdvancedSettings9.BandwidthDetection = true; //自动检查带宽 } else { MsRdpClient9.AdvancedSettings8.NetworkConnectionType = (uint)lastSettingRdp.Performance; } //颜色深度 switch (lastSettingRdp.ColorDepthMode) { case DbItemSettingRdp.COLOR_15BPP: MsRdpClient9.ColorDepth = 15; break; case DbItemSettingRdp.COLOR_16BPP: MsRdpClient9.ColorDepth = 16; break; case DbItemSettingRdp.COLOR_24BPP: MsRdpClient9.ColorDepth = 24; break; case DbItemSettingRdp.COLOR_32BPP: MsRdpClient9.ColorDepth = 32; break; default: MsRdpClient9.ColorDepth = 32; break; } //音频 MsRdpClient9.AdvancedSettings6.AudioRedirectionMode = (uint)lastSettingRdp.AudioRedirectionMode - 1; //录音设备 MsRdpClient9.AdvancedSettings8.AudioCaptureRedirectionMode = lastSettingRdp.AudioCaptureRedirectionMode == DbItemSettingRdp.AAUDIOCAPTURE_TRUE; //组合键 MsRdpClient9.SecuredSettings2.KeyboardHookMode = lastSettingRdp.KeyboardHookMode - 1; //重定向 MsRdpClient9.AdvancedSettings2.RedirectPrinters = lastSettingRdp.RedirectionPrintf.Value ? true : false; //打印机 MsRdpClient9.AdvancedSettings6.RedirectClipboard = lastSettingRdp.RedirectionClipboard.Value ? true : false; //剪贴板重定向 MsRdpClient9.AdvancedSettings3.RedirectSmartCards = lastSettingRdp.RedirectionsMartcard.Value ? true : false; //智能卡重定向 MsRdpClient9.AdvancedSettings3.RedirectPorts = lastSettingRdp.RedirectionsPort.Value ? true : false; //端口重定向 MsRdpClient9.AdvancedSettings3.RedirectDrives = lastSettingRdp.RedirectionsDriver.Value ? true : false; //驱动器重定向 MsRdpClient9.AdvancedSettings4.ConnectionBarShowMinimizeButton = false; //显示全部工具栏上的最小化按钮 MsRdpClient9.Connect(); User32.EnumChildWindows(MsRdpClient9.Handle, EnumWindowsProc, IntPtr.Zero); } }