private void OnLoginHandlerEvent(SessionSyncContext syncContext)
        {
            var listItem = new USessionListItem(syncContext);

            syncContext.KeyDictions.Add(SysConstantsExtend.SessionListItem, listItem);

            //是否开启桌面视图
            if (!syncContext.KeyDictions[SysConstants.OpenScreenWall].ConvertTo <bool>())
            {
                listItem.BackColor = _closeScreenColor;
            }

            var groupName = syncContext.KeyDictions[SysConstants.GroupName].ConvertTo <string>();

            if (!groupBox.Items.Contains(groupName))
            {
                this.groupBox.Items.Add(groupName);
            }

            //分组
            if (groupBox.Text == groupName || groupBox.Text == GROUP_ALL)
            {
                this.servicesOnlineList.Items.Add(listItem);
            }

            this._connect_count++;
            this.stripConnectedNum.Text = _connect_count.ToString();

            Win32Api.FlashWindow(this.Handle, true); //上线任务栏图标闪烁
        }
Beispiel #2
0
        public void LoginHandler(SessionHandler session)
        {
            try
            {
                var login       = session.CompletedBuffer.GetMessageEntity <LoginPack>();
                var syncContext = new SessionSyncContext()
                {
                    IPv4                 = login.IPV4,
                    MachineName          = login.MachineName,
                    Remark               = login.Remark,
                    CpuInfo              = login.ProcessorInfo,
                    CoreCount            = login.ProcessorCount,
                    MemroySize           = login.MemorySize,
                    StarupDateTime       = login.StartRunTime,
                    Version              = login.ServiceVison,
                    AdminName            = login.UserName,
                    OSVersion            = login.OSVersion,
                    IsCameraExist        = login.ExistCameraDevice,
                    IsRecordExist        = login.ExitsRecordDevice,
                    IsPlayerExist        = login.ExitsPlayerDevice,
                    IsOpenScreenRecord   = login.OpenScreenRecord,
                    IsOpenScreenView     = login.OpenScreenWall,
                    IdentifyId           = login.IdentifyId,
                    RecordScreenIsAction = false,              //桌面记录状态
                    RecordScreenHeight   = login.RecordHeight, //用于桌面记录的高
                    RecordScreenWidth    = login.RecordWidth,  //用于桌面记录宽
                    RecordScreenSpanTime = login.RecordSpanTime,
                    Session              = session
                };

                _syncContexts.Add(syncContext);
                var listItem = new USessionListItem(syncContext);
                syncContext.OnSessionListItem = listItem;
                session.AppTokens[SysConstants.INDEX_WORKER] = syncContext;
                onlineList.Items.Add(listItem);

                //是否开启桌面视图
                if (syncContext.IsOpenScreenView != true)
                {
                    listItem.BackColor = _closeScreenColor;
                }
                else
                {
                    byte[] data = MessageHelper.CopyMessageHeadTo(MessageHead.S_MAIN_DESKTOPVIEW, new byte[] { 0 });//强制创建视图
                    session.SendAsync(data);
                }

                //是否桌面记录
                if (syncContext.IsOpenScreenRecord)
                {
                    byte[] data = MessageHelper.CopyMessageHeadTo(MessageHead.S_MAIN_SCREEN_RECORD_OPEN,
                                                                  new DesktopRecordGetFramePack()
                    {
                        Height   = syncContext.RecordScreenHeight,
                        Width    = syncContext.RecordScreenWidth,
                        TimeSpan = syncContext.RecordScreenSpanTime
                    });
                    session.SendAsync(data);
                }

                _connect_count++;
                stripConnectedNum.Text = _connect_count.ToString();

                Win32Api.FlashWindow(this.Handle, true); //上线任务栏图标闪烁

                this.WriteRuninglog("计算机:" + syncContext.MachineName + "(" + syncContext.Remark + ") -->已连接控制端!", "ok");
            }
            catch (Exception ex)
            {
                LogHelper.WriteErrorByCurrentMethod(ex);
                //可能是旧版本上线包
            }
        }