Esempio n. 1
0
        public bool Remove(TSControl control)
        {
            if (control == null)
            {
                return(false);
            }

            return(Controls.Remove(control));
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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
    }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
 public void Add(TSControl control)
 {
     ControlManager.Add(control);
 }
Esempio n. 7
0
 public bool Logoff(int sessionid, bool wait = false)
 {
     return(TSControl.WTSLogoffSession(IntPtr.Zero, sessionid, wait));
 }
Esempio n. 8
0
 public bool Disconnect(int sessionid, bool wait = false)
 {
     return(TSControl.WTSDisconnectSession(IntPtr.Zero, sessionid, wait));
 }
Esempio n. 9
0
 public void Stop()
 {
     TSControl.WTSUnRegisterSessionNotification(this.Handle);
 }
Esempio n. 10
0
 public void Start()
 {
     TSControl.WTSRegisterSessionNotification(this.Handle, 1);
 }
Esempio n. 11
0
        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);
                }
            }
        }
Esempio n. 12
0
 public virtual void Add(TSControl control)
 {
     this.ControlManager.Add(control);
 }
Esempio n. 13
0
 public virtual void Add(TSControl control)
 {
     this.ControlManager.Add(control);
 }