public bool Remove(TSControl control) { if (control == null) { return(false); } return(Controls.Remove(control)); }
/// <summary> /// 获取TS用户回话列表 /// </summary> /// <returns></returns> public static List <LogonUser> GetLogonUserList() { List <LogonUser> LogonUsers = null; #region 查询代码 WTS_SESSION_INFO[] pSessionInfo = TSControl.SessionEnumeration(); LogonUser cum = null; LogonUsers = new System.Collections.Generic.List <LogonUser>(); for (int i = 0; i < pSessionInfo.Length; i++) { if ("RDP-Tcp" != pSessionInfo[i].pWinStationName) { try { int count = 0; IntPtr buffer = IntPtr.Zero; StringBuilder userName = new StringBuilder(); StringBuilder clientUser = new StringBuilder(); StringBuilder stateType = new StringBuilder(); byte[] protocalType = new byte[2]; byte[] connState = new byte[1]; StringBuilder clientAddress = new StringBuilder(); bool userNameBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, pSessionInfo[i].SessionID, WTSInfoClass.WTSUserName, out userName, out count); bool clientUserBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, pSessionInfo[i].SessionID, WTSInfoClass.WTSClientName, out clientUser, out count); bool stateTypeBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, pSessionInfo[i].SessionID, WTSInfoClass.WTSWinStationName, out stateType, out count); bool protocalTypeBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, pSessionInfo[i].SessionID, WTSInfoClass.WTSClientProtocolType, out protocalType, out count); bool connStateBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, pSessionInfo[i].SessionID, WTSInfoClass.WTSConnectState, out connState, out count); bool clientAddressBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, pSessionInfo[i].SessionID, WTSInfoClass.WTSClientAddress, out clientAddress, out count); if (userNameBool && clientUserBool && stateTypeBool & connStateBool) { cum = new LogonUser(); cum.SessionId = pSessionInfo[i].SessionID; cum.UserName = userName.ToString(); cum.ClientUserName = clientUser.ToString(); cum.SessionType = stateType.ToString(); cum.ProtocalType = (Silmoon.Windows.Systems.LogonUser.ClientProtocalType)((int)protocalType[0]); cum.ConnectState = (WTS_CONNECTSTATE_CLASS)connState[0]; WTS_CLIENT_ADDRESS ad = new WTS_CLIENT_ADDRESS(); //var aa = clientAddress[1]; } LogonUsers.Add(cum); } catch { } } } #endregion return(LogonUsers); }
public void Add(TSControl control) { if (control != null) { Controls.Add(control); control.ParentControlManager = this; if (control is TSLayout) { ((TSLayout)control).ControlManager.Enabled = false; } } }
public ComputerLoginUserInfo() { #region 查询代码 TSControl.WTS_SESSION_INFO[] pSessionInfo = TSControl.SessionEnumeration(); ComputerLoginUserInfoModel cum = null; ComputerLoginUserInfoList = new System.Collections.Generic.List <ComputerLoginUserInfoModel>(); for (int i = 0; i < pSessionInfo.Length; i++) { if ("RDP-Tcp" != pSessionInfo[i].pWinStationName) { try { int count = 0; IntPtr buffer = IntPtr.Zero; StringBuilder userName = new StringBuilder(); // 用户名 StringBuilder clientUser = new StringBuilder(); // 客户端名 StringBuilder stateType = new StringBuilder(); // 会话类型 bool userNameBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, pSessionInfo[i].SessionID, TSControl.WTSInfoClass.WTSUserName, out userName, out count); bool clientUserBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, pSessionInfo[i].SessionID, TSControl.WTSInfoClass.WTSClientName, out clientUser, out count); bool stateTypeBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, pSessionInfo[i].SessionID, TSControl.WTSInfoClass.WTSWinStationName, out stateType, out count); if (userNameBool && clientUserBool && stateTypeBool) { cum = new ComputerLoginUserInfoModel(); cum.UserName = userName.ToString(); cum.ClientUserName = clientUser.ToString(); cum.SessionType = stateType.ToString(); } ComputerLoginUserInfoList.Add(cum); } catch (Exception ex) { } } } #endregion }
public LogonUser GetUserInfo(int sessionid) { try { int count = 0; IntPtr buffer = IntPtr.Zero; StringBuilder userName = new StringBuilder(); StringBuilder clientUser = new StringBuilder(); StringBuilder stateType = new StringBuilder(); byte[] protocalType = new byte[2]; byte[] connState = new byte[1]; StringBuilder clientAddress = new StringBuilder(); bool userNameBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, sessionid, WTSInfoClass.WTSUserName, out userName, out count); bool clientUserBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, sessionid, WTSInfoClass.WTSClientName, out clientUser, out count); bool stateTypeBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, sessionid, WTSInfoClass.WTSWinStationName, out stateType, out count); bool protocalTypeBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, sessionid, WTSInfoClass.WTSClientProtocolType, out protocalType, out count); bool connStateBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, sessionid, WTSInfoClass.WTSConnectState, out connState, out count); bool clientAddressBool = TSControl.WTSQuerySessionInformation(IntPtr.Zero, sessionid, WTSInfoClass.WTSClientAddress, out clientAddress, out count); if (userNameBool && clientUserBool && stateTypeBool & connStateBool) { LogonUser user = new LogonUser(); user.SessionId = sessionid; user.UserName = userName.ToString(); user.ClientUserName = clientUser.ToString(); user.SessionType = stateType.ToString(); user.ProtocalType = (Silmoon.Windows.Systems.LogonUser.ClientProtocalType)((int)protocalType[0]); user.ConnectState = (WTS_CONNECTSTATE_CLASS)connState[0]; return(user); } else { return(null); } } catch { return(null); } }
public void Add(TSControl control) { ControlManager.Add(control); }
public bool Logoff(int sessionid, bool wait = false) { return(TSControl.WTSLogoffSession(IntPtr.Zero, sessionid, wait)); }
public bool Disconnect(int sessionid, bool wait = false) { return(TSControl.WTSDisconnectSession(IntPtr.Zero, sessionid, wait)); }
public void Stop() { TSControl.WTSUnRegisterSessionNotification(this.Handle); }
public void Start() { TSControl.WTSRegisterSessionNotification(this.Handle, 1); }
protected void UpdateMouseEvent(GameTime gameTime) { TSControl mouseHoverControl = null; if (Enabled == false) { return; } mouseHoverControl = FindMouseHoverControl(); if (mouseHoverControl == null) { if (lastMouseHoverControl != null) { lastMouseHoverControl.OnMouseLeave(null); if (lastMouseHoverControl is TSLayout) { TSLayout mouseHoverLayout = ((TSLayout)lastMouseHoverControl); mouseHoverLayout.ControlManager.Enabled = true; mouseHoverLayout.ControlManager.Update(gameTime); mouseHoverLayout.ControlManager.Enabled = false; } lastMouseHoverControl = null; } } // truyền quyền Update cho layout con if ((mouseHoverControl != null) && (mouseHoverControl is TSLayout)) { TSLayout mouseHoverLayout = ((TSLayout)mouseHoverControl); mouseHoverLayout.ControlManager.Enabled = true; mouseHoverLayout.ControlManager.Update(gameTime); mouseHoverLayout.ControlManager.Enabled = false; lastMouseHoverControl = mouseHoverControl; } // Kiểm tra sự kiện di chuyển của chuột if ((mouseHoverControl != null) && (mouseHoverControl != lastMouseHoverControl)) { mouseHoverControl.OnMouseEnter(null); } if ((lastMouseHoverControl != null) && (mouseHoverControl != lastMouseHoverControl)) { lastMouseHoverControl.OnMouseLeave(null); } if ((mouseHoverControl != null) && (lastMouseHoverControl != null) && (lastMouseHoverControl == mouseHoverControl)) { mouseHoverControl.OnMouseMove(null); } lastMouseHoverControl = mouseHoverControl; // Kiểm tra sự kiện nhấn của chuột if (TSInputHandler.MouseState.LeftButton == ButtonState.Released) { if (lastMousePressControl != null) { lastMousePressControl.OnMouseUp(null); lastMousePressControl = null; return; } } if (mouseHoverControl == null) { return; } if (TSInputHandler.LastMouseState.LeftButton == ButtonState.Pressed) { if (mouseHoverControl == lastMousePressControl) { mouseHoverControl.OnMouseDown(null); } else { mouseHoverControl.OnMouseClick(null); lastMousePressControl = mouseHoverControl; if ((focusingControl != null) && (focusingControl == mouseHoverControl)) { return; } if (focusingControl != null) { focusingControl.OnFocusLeave(null); } focusingControl = mouseHoverControl; focusingControl.OnFocusEnter(null); } } }
public virtual void Add(TSControl control) { this.ControlManager.Add(control); }