public unsafe static void Send(Keys[] keyCodes, ServerBase serverBase) { Server serverNode = serverBase.ServerNode; RdpClient client = serverNode.Client; IMsRdpClientNonScriptable msRdpClientNonScriptable = (IMsRdpClientNonScriptable)client.GetOcx(); int num = keyCodes.Length; try { SendKeysData sendKeysData = default(SendKeysData); bool * ptr = (bool *)sendKeysData.keyUp; int * ptr2 = sendKeysData.keyData; int num2 = 0; for (int i = 0; i < num && i < 10; i++) { int num3 = (int)Util.MapVirtualKey((uint)keyCodes[i], 0u); sendKeysData.keyData[num2] = num3; sendKeysData.keyUp[num2++] = 0; if (!IsModifier(keyCodes[i])) { for (int num4 = num2 - 1; num4 >= 0; num4--) { sendKeysData.keyData[num2] = sendKeysData.keyData[num4]; sendKeysData.keyUp[num2++] = 1; } msRdpClientNonScriptable.SendKeys(num2, ref *ptr, ref *ptr2); num2 = 0; } } } catch { } }
internal static void ReleaseClient(RdpClient client) { try { client._server = null; Program.TheForm.RemoveFromClientPanel(client.Control); } finally { AxHost rdpClient = client._rdpClient5; if (rdpClient != null) { client._rdpClient5 = null; rdpClient.Dispose(); } rdpClient = client._rdpClient6; if (rdpClient != null) { client._rdpClient6 = null; rdpClient.Dispose(); } rdpClient = client._rdpClient7; if (rdpClient != null) { client._rdpClient7 = null; rdpClient.Dispose(); } rdpClient = client._rdpClient8; if (rdpClient != null) { client._rdpClient8 = null; rdpClient.Dispose(); } } }
internal static RdpClient AllocClient(Server server, MainForm form) { RdpClient rdpClient = new RdpClient(form); rdpClient._server = server; return(rdpClient); }
public virtual void GoFullScreenClient(Server server, bool isTopMostWindow) { RdpClient client = server.Client; Rectangle rectangle = Screen.GetBounds(client.Control); if (Program.Preferences.UseMultipleMonitors && (rectangle.Height < client.MsRdpClient.DesktopHeight || rectangle.Width < client.MsRdpClient.DesktopWidth)) { int num = 0; int num2 = 65535; Screen[] allScreens = Screen.AllScreens; foreach (Screen screen in allScreens) { num += screen.Bounds.Width; num2 = Math.Min(screen.Bounds.Height, num2); } num = Math.Min(num, RdpClient.MaxDesktopWidth); num2 = Math.Min(num2, RdpClient.MaxDesktopHeight); rectangle = new Rectangle(0, 0, num, num2); } _savedBounds = base.Bounds; _savedBorderStyle = base.FormBorderStyle; DrawingControl.SuspendDrawing(this); SuspendLayout(); base.FormBorderStyle = FormBorderStyle.None; SetMainMenuVisibility(show: false); SetBounds(rectangle.Left, rectangle.Top, rectangle.Width, rectangle.Height); server.SetClientSizeProperties(); client.Control.Bounds = new Rectangle(0, 0, base.Width, base.Height); ResumeLayout(); base.TopMost = isTopMostWindow; client.Control.Show(); DrawingControl.ResumeDrawing(this); BringToFront(); Activate(); }
internal static void Initialize(MainForm form) { using (RdpClient5 rdpClient = new RdpClient5(form)) { RdpControlVersion = rdpClient.Version; string[] array = rdpClient.Version.Split('.'); RdpClientVersion = 5; if (int.Parse(array[2]) >= 6001) { RdpClientVersion = 6; SupportsMonitorSpanning = true; if (int.Parse(array[2]) >= 7600) { RdpClientVersion = 7; if (int.Parse(array[2]) >= 9200) { RdpClientVersion = 8; } } } form.RemoveFromClientPanel(rdpClient); } StaticClient = new RdpClient(form); RdpClient staticClient = StaticClient; staticClient.Control.Enabled = false; MaxDesktopWidth = 4096; MaxDesktopHeight = 2048; if (staticClient.AdvancedSettings7 != null) { SupportsGatewayCredentials = true; } if (staticClient.AdvancedSettings8 != null) { SupportsAdvancedAudioVideoRedirection = true; } if (staticClient.ClientNonScriptable3 != null) { SupportsFineGrainedRedirection = true; } if (staticClient.MsRdpClient8 != null) { SupportsRemoteSessionActions = true; } }