在Windows平台任意状态下最前端显示的报警通知方法

文档序号:6369618阅读:464来源:国知局
专利名称:在Windows平台任意状态下最前端显示的报警通知方法
技术领域
本发明涉及Windows平台上的报警通知管理,具体涉及在Windows平台任意状态下最前端显示的报警通知方法。
背景技术
在Windows操作系统中的用户界面显示,由多个相互隔离区域一Session组成,每个Session对应一个独立的显示区域,Windows操作系统通过对不同Session的切换,完成登录、锁定、注销等操作状态下的用户界面显示。目前在现有技术中,由于仅处理了用户进程启动后登录操作状态下的最前端显示,而当发生锁定、注销等操作状态切换时,由于Session的切换,因此Session对应的显示区域发生切换,导致了特殊情况下报警通知无法显示的问题。综上所述,在现有技术中,最前端显示的报警通知方法存在可靠性差、通用性差的缺点。

发明内容
本发明是为解决上述现有技术中存在的不足之处,提供一种在Windows平台任意状态下最前端显示的报警通知方法,该最前端显示的报警通知方法具有通用性。为了实现上述目的,本发明采用的技术方案如下
本发明的在Windows平台任意状态下最前端显示的报警通知方法,包括以下步骤 步骤一、服务进程监视Session列表变更
Session 列表由若干个 Session 组成,即由 Session。, Sessionl…SessionN 组成; 所述Session包括Session状态和Session标识符;
所述Session状态包括激活、锁定、解锁、断开;
所述Session标识符为Session标识符0,Session标识符I…Session标识符N ;服务进程利用Windows操作系统提供的API接口监视Session列表变更如果收到Session列表变更通知,执行步骤二 ;如果未收到Session列表变更通知,执行步骤一;步骤二、服务进程分析Session列表变更通知
服务进程利用Windows操作系统提供的API接口获取Session列表;
服务进程检查Session列表中的每个Session,选取Session状态为激活的Session,并将Session状态为激活的Session的Session标识符保存在服务进程内存中;
步骤三、服务进程为每个Session状态为激活的Session分别启动新用户进程
服务进程使用保存在服务进程内存中的Session标识符作为参数,为该Session标识符对应的Session启动新用户进程;
服务进程删除保存在服务进程内存中的所有Session标识符;
步骤四、设定一个Session只对应一个用户进程
用户进程将其对应的Session的Session标识符保存在用户进程内存中,在用户进程内存中查找是否存在与该Session标识符相同的Session标识符,如果存在,用户进程将其存入用户进程内存中的其对应的Session的Session标识符从内存中删除,结束该用户进程,执行步骤一;如果不存在,执行步骤五;
步骤五、新建且其Session状态为激活的Session对应的用户进程在该Session最前端显示报警通知
新建且其Session状态为激活的Session对应的用户进程从服务进程读取报警通知; 该用户进程将报警通知所在窗口的层叠属性设置为最前端显示;
该用户进程通过改变报警通知所在窗口的属性使报警通知更明显;
所述窗口的属性为窗口的文字亮度、默认文字颜色及默认文字尺寸; 步骤六、当前Session状态为激活的Session对应的用户进程监视其对应的Session的Session状态变更
当前Session状态为激活的Session对应的用户进程利用Windows操作系统提供的API接口监视其对应的Session的Session状态变更如果收到Session状态变更通知,则将该变更后的Session状态保存在用户进程内存中,执行步骤七;如果未收到Session状态变更通知,执行步骤六;
步骤七、Session状态发生变更的Session对应的用户进程分析已收到的Session状态变更通知
Session状态发生变更的Session对应的用户进程判断保存在用户进程内存中的该变更后的Session状态是否为锁定如果为锁定,则使用Session标识符0为参数,通知服务进程,执行步骤六;
服务进程接收到该用户进程发送的Session标识符0后,服务进程将Session标识符0保存在服务进程内存中,执行步骤三;
如果Session状态发生变更的Session对应的用户进程判断保存在用户进程内存中的该变更后的Session状态不为锁定,则判断该变更后的Session状态是否为解锁,如果为解锁,判断SessionO的Session状态是否为激活,如果为激活,执行步骤六,如果不为激活,则使用Session标识符0作为参数,通知服务进程,执行步骤六;
服务进程接收到用户进程发送的Session标识符0后,服务进程结束Session标识符0对应的用户进程,执行步骤一;
如果该变更后的Session状态不为解锁,则判断该变更后的Session状态是否为断开,如果为断开,则结束当前用户进程,执行步骤一,如果不为断开,执行步骤六。本发明的有益效果是与现有技术相比,通过服务进程监视Session列表变更、用户进程监视其对应的Session的Session状态变更、用户进程在当前Session最前端显示报警通知的方式,解决了当操作状态变更时所导致的报警通知窗口无法显示的问题。本发明的报警通知方法,能够在登录、锁定、注销等操作状态下实现最前端显示报警通知,解决了传统报警通知方法存在的在特定状态下无法显示报警通知或报警通知窗口被其他窗体遮挡的问题,使用户能及时了解报警通知信息,防止重要信息丢失,从而避免了由于重要信息丢失所造成的重大损失。


图I是本发明的报警通知方法的流程图。
具体实施例方式下面结合附图和实施例,对本发明的在Windows平台任意状态下最前端显示的报警通知方法作进一步详细描述。在Windows操作系统中操作状态的切换,是通过由不同Session切换来完成的,当发生登录、锁定、注销等操作状态的变更时,相应的Session状态也随之变更。操作系统显示一个窗口前,需要先创建一个Session,以确定对应的显示区域;然后再创建该Session对应的用户进程。通常情况下一个Session对应多个用户进程,一个用户进程可以同时打开多个窗口。在Windows操作系统中,系统只显示Session 状态为激活的Session对应的用户进程的窗口。Session标识符通常由0,1,2等数字构成;
本发明的报警通知方法,设定一个Session只对应一个用户进程,一个用户进程只显示一个报警通知窗口,解决了最前端报警通知窗口的唯一性问题;并通过服务进程监视Session列表变更、用户进程监视其对应的Session的Session状态变更,用户进程将报警通知所在窗口的层叠属性设置为最前端显示的方式,实现了任意状态下最前端显示报警通知;
本发明的报警通知方法的有关概念说明如下
Session :系统中相互隔离的显示区域,一个Session只对应一个用户进程;
服务进程系统启动后就启动的一个后台监视的进程;
用户进程负责监视其对应的Session的Session状态变更,用户进程包含一个报警通知窗口。
实施例例如,本发明的报警通知方法应用环境为普通局域网,当网络中的终端计算机被病毒入侵时,本发明的最前端显示的报警通知方法会在服务器上把病毒入侵报警通知窗口显示在Windows操作系统的最前端。本发明的在Windows平台任意状态下最前端显示的报警通知方法,报警通知系统包括服务器、显示器、键盘、鼠标,操作系统为Windows操作系统。本实施例当前存在三个Session :SessionO、Sessionl、Session2,三个 Session 的状态和Session标识符如下
SessionO (激活,Session标识符0),对应用户进程0 ;
Sessionl (断开,Session标识符I), Session状态为断开,没有对应的用户进程;Session2 (断开,Session标识符2),Session状态为断开,没有对应的用户进程;如图I所示,本发明的在Windows平台任意状态下最前端显示的报警通知方法,具体工作步骤如下
步骤101服务进程监视Session列表变更
Session 列表由三个 Session 组成,即 Session。、Sessionl 和 Session2 ;
所述Session包括Session状态和Session标识符;所述Session状态包括激活、锁定、解锁、断开;
服务进程利用Windows操作系统提供的API接口监视Session列表变更,本实施例Session列表发生变更,即新建了一个Session3,服务进程会收到Session列表变更通知,执行步骤102 ;(如果未收到Session列表变更通知,执行步骤101,服务进程继续监视Session列表变更;)
步骤102服务进程分析Session列表变更通知
服务进程利用Windows操作系统提 供的API接口获取Session列表,此时,所述Session 列表由四个 Session 组成,即 Session。、SessionK Session2 和 Session3 ;
此时,四个Session的Session状态和Session标识符如下
SessionO (激活,Session标识符0),对应用户进程0 ;
Sessionl (断开,Session标识符I), Sessionl状态为断开,没有对应的用户进程; Session2 (断开,Session标识符2),Session2状态为断开,没有对应的用户进程; Session3 (激活,Session标识符3),对应用户进程3 ;
服务进程检查Session列表中的每个Session,选取Session状态为激活的SessionO和Session3,将SessionO对应的Session标识符0保存在服务进程内存中;将Session3对应的Session标识符3保存在服务进程内存中;
步骤103服务进程为每个Session状态为激活的Session分别启动新用户进程
此时Session3和SessionO的Session状态均为激活,因此服务进程启动新用户进程3和用户进程4;
服务进程使用保存在服务进程内存中的Session标识符3作为参数,启动新用户进程
3;
服务进程使用保存在服务进程内存中的Session标识符0作为参数,启动新用户进程
4;
服务进程删除保存在服务进程内存中的所有Session标识符,即删除服务进程内存中的Session标识符0、Session标识符3 (因Sessionl和Session2的Session状态均为断开,因此Session标识符I和Session标识符2之前没有被保存在服务进程内存中);
步骤104设定一个Session只对应一个用户进程
每个Session在创建时,其Session状态都是从激活状态开始的,因此每一个Session都会在其session状态第一次为激活时,经过步骤103由服务进程启动新用户进程,然后经过步骤104对该Session状态为激活的Session设定只对应一个用户进程,本实施例中,SessionO和Session3此时的Session状态均为激活,因此只对SessionO和Session3进行设定一个Session只对应一个用户进程的操作;
用户进程3和用户进程4分别进行如下操作
用户进程3操作如下
用户进程3将其对应的Session3的Session标识符3保存在用户进程内存中,在用户进程内存中查找是否存在与该Session标识符3相同的Session标识符,本实施例不存在,即服务进程之前未启动过该Session标识符3对应的用户进程,执行步骤105 ;
用户进程4操作如下
用户进程4将其对应的SessionO的Session标识符0保存在用户进程内存中,在用户进程内存中查找是否存在与该Session标识符0相同的Session标识符,本实施例存在,即服务进程之前已经启动过该Session标识符0对应的用户进程0,用户进程4将其存入用户进程内存中的Session标识符0从用户进程内存中删除,结束用户进程4,执行步骤101 ;步骤105新建且其Session状态为激活的Session对应的用户进程在该Session最前端显示病毒入侵报警通知
用户进程3从服务进程读取病毒入侵报警通知;
用户进程3将病毒入侵报警通知所在窗口的层叠属性设置为最前端显示;
用户进程3改变病毒入侵报警通知所在窗口的文字亮度、设置文字颜色为红色,增大默认文字尺寸为50mm*50mm,以使病毒入侵报警通知显示更明显;
步骤106当前Session状态为激活的Session对应的用户进程监视其对应的Session的Session状态变更
当前SessionO和Session3的Session状态均为激活;
用户进程0和用户进程3分别进行如下操作
用户进程0操作如下
用户进程0利用Windows操作系统提供的API接口监视其对应的SessionO的SessionO状态变更;如果收到SessionO状态变更通知,用户进程0则将变更后的SessionO状态保存在用户进程内存中,执行步骤107 ;如果未收到SessionO状态变更通知,执行步骤106 ;
用户进程3操作如下
用户进程3利用Windows操作系统提供的API接口监视其对应的Session3的Session3状态变更;如果收到SeSSion3状态变更通知,用户进程3则将变更后的SeSSion3状态保存在用户进程内存中,执行步骤107 ;如果未收到Session〗状态变更通知,执行步骤106,即当前Session状态为激活的Session对应的用户进程继续监视其对应的Session的Session状态变更;
本实施例发生SeSSion3状态从激活变更为锁定,此时,四个Session的Session状态和Session标识符如下
SessionO (激活,Session 标识符 0);
Sessionl (断开,Session 标识符 I);
Session2 (断开,Session 标识符 2);
Session3 (锁定,Session 标识符 3);
因此,用户进程3会收到SeSSion3状态变更通知,此时,用户进程3操作如下
用户进程3利用Windows操作系统提供的API接口监视其对应的Session3的Session3 状态变更;用户进程3收到SeSSion3状态变更通知,则将该变更后的SeSSion3状态保存在用户进程内存中,执行步骤107;
步骤107 Session状态发生变更的Session对应的用户进程分析已收到的Session状态变更通知
本实施例发生Session〗状态从激活变更为锁定;
因此SeSSion3对应的用户进程3判断保存在用户进程内存中的变更后的SeSSion3状态是否为锁定本实施例该变更后的Session3状态为锁定,则使用Session标识符0为参数,通知服务进程,执行步骤106 ;服务进程接收到用户进程3发送的Session标识符O后,服务进程将Session标识符O保存在服务进程内存中,执行步骤103,即为Session状态为激活的SessionO启动用户进程(如果某个Session的Session状态为锁定,SessionO的SessionO状态就必为激活);(如果用户进程3判断保存在用户进程内存中的该变更后的Session状态不为锁定,则判断该变更后的Session3状态是否为解锁,如果为解锁,判断SessionO的SessionO状态是否为激活,如果为激活,执行步骤106,如果不为激活,则使用Session标识符O作为參数,通知服务进程,执行步骤106 ;
服务进程接收到用户进程3发送的Session标识符O后,服务进程结束Session标识符O对应的用户进程0,执行步骤101 ;
如果变更后的Session3状态不为解锁,则判断该变更后的Session3状态是否为断开,如果为断开,则结束当前用户进程3,执行步骤101,如果不为断开,执行步骤106 ;) 上述报警通知方法;将计算机被病毒入侵的报警通知窗ロ显示在Windows操作系统的最前端,解决了传统报警通知方法存在的在特定状态下报警通知窗ロ被其他窗体遮挡的问题,使用户能及时了解报警通知信息,防止重要信息丢失,从而避免了由于重要信息丢失所造成的重大损失。
权利要求
1.ー种在Windows平台任意状态下最前端显示的报警通知方法,其特征是,包括以下步骤 步骤一、服务进程监视Session列表变更 Session 列表由若干个 Session 组成,即由 Session。, Sessionl…SessionN 组成; 所述Session包括Session状态和Session标识符; 所述Session状态包括激活、锁定、解锁、断开; 所述Session标识符为Session标识符O, Session标识符I··· Session标识符N ; 服务进程利用Windows操作系统提供的API接ロ监视Session列表变更如果收到Session列表变更通知,执行步骤ニ ;如果未收到Session列表变更通知,执行步骤ー;步骤ニ、服务进程分析Session列表变更通知 服务进程利用Windows操作系统提供的API接ロ获取Session列表; 服务进程检查Session列表中的姆个Session,选取Session状态为激活的Session,并将Session状态为激活的Session的Session标识符保存在服务进程内存中; 步骤三、服务进程为每个Session状态为激活的Session分别启动新用户进程 服务进程使用保存在服务进程内存中的Session标识符作为參数,为该Session标识符对应的Session启动新用户进程; 服务进程删除保存在服务进程内存中的所有Session标识符; 步骤四、设定ー个Session只对应ー个用户进程 用户进程将其对应的Session的Session标识符保存在用户进程内存中,在用户进程内存中查找是否存在与该Session标识符相同的Session标识符,如果存在,用户进程将其存入用户进程内存中的其对应的Session的Session标识符从内存中删除,结束该用户进程,执行步骤ー;如果不存在,执行步骤五; 步骤五、新建且其Session状态为激活的Session对应的用户进程在该Session最前端显示报警通知 新建且其Session状态为激活的Session对应的用户进程从服务进程读取报警通知; 该用户进程将报警通知所在窗ロ的层叠属性设置为最前端显示; 该用户进程通过改变报警通知所在窗ロ的属性使报警通知更明显; 步骤六、当前Session状态为激活的Session对应的用户进程监视其对应的Session的Session状态变更 当前Session状态为激活的Session对应的用户进程利用Windows操作系统提供的API接ロ监视其对应的Session的Session状态变更如果收到Session状态变更通知,则将该变更后的Session状态保存在用户进程内存中,执行步骤七;如果未收到Session状态变更通知,执行步骤六; 步骤七、Session状态发生变更的Session对应的用户进程分析已收到的Session状态变更通知 Session状态发生变更的Session对应的用户进程判断保存在用户进程内存中的该变更后的Session状态是否为锁定如果为锁定,则使用Session标识符O为參数,通知服务进程,执行步骤六; 服务进程接收到该用户进程发送的Session标识符O后,服务进程将Session标识符O保存在服务进程内存中,执行步骤三; 如果Session状态发生变更的Session对应的用户进程判断保存在用户进程内存中的该变更后的Session状态不为锁定,则判断该变更后的Session状态是否为解锁,如果为解锁,判断SessionO的Session状态是否为激活,如果为激活,执行步骤六,如果不为激活,则使用Session标识符0作为参数,通知服务进程,执行步骤六; 服务进程接收到用户进程发送的Session标识符0后,服务进程结束Session标识符0对应的用户进程,执行步骤一; 如果该变更后的Session状态不为解锁,则判断该变更后的Session状态是否为断开,如果为断开,则结束当前用户进程,执行步骤一,如果不为断开,执行步骤六。
2.如权利要求I所述的报警通知方法,其特征是,步骤五中所述窗口的属性为窗口的文字亮度、默认文字颜色及默认文字尺寸。
全文摘要
本发明公开了一种在Windows平台任意状态下最前端显示的报警通知方法,包括服务进程监视Session列表变更、服务进程分析Session列表变更通知、服务进程为每个Session状态为激活的Session启动新用户进程、设定一个Session只对应一个用户进程、用户进程在其对应的Session最前端显示报警通知、用户进程监视其对应的Session的Session状态变更、用户进程分析已收到的Session状态变更通知,本发明的报警通知方法能够在登录、锁定、注销等操作状态下实现最前端显示报警通知,使用户能及时了解报警通知消息,防止重要信息丢失。
文档编号G06F11/30GK102681908SQ20121014878
公开日2012年9月19日 申请日期2012年5月15日 优先权日2012年5月15日
发明者李凯, 潘琳琳, 金魁 申请人:沈阳通用软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1