应用程序紧急暂停系统及方法技术方案

技术编号:2916067 阅读:171 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供一种应用程序紧急暂停方法,包括步骤:运行应用程序,载入消息队列,定义暂停时的目标事件及该目标事件对应的执行动作,同时设定触发搜索消息队列的事件的计时间隔;开始计时;操作系统截获用户操作所产生的指令信息,并将截获的指令信息按先后顺序和优先级在消息队列中排队;操作系统依照消息队列中的顺序,依次将该消息队列中的事件发送给该运行中的应用程序执行;当达到计时间隔时,搜索消息队列,查找当前消息队列中是否存在目标事件;当消息队列中存在目标事件时,触发并执行该目标事件所对应的执行动作。本发明专利技术还提供一种应用程序紧急暂停系统。本发明专利技术能够在操作系统无法向应用程序发送消息的时候,仍然能够快速响应用户的操作。

【技术实现步骤摘要】

本专利技术涉及一种应用程序的紧急暂停系统及方法。
技术介绍
计算机的操作系统是依靠本身的消息系统来处理用户触发的事件的。当用户按键或移动鼠标导致系统事件发生时,操作系统将这些事件存储在相应的应用程序消息队列中,事件会一直以消息的形式存储在消息队列中直到应用程序完成消息并将控制返回到操作系统,这时操作系统将把消息队列中的下一条消息发送到应用程序。当我们的程序非常繁忙时,操作系统始终在等待消息处理的结束,处理完成之前无法进行下一条消息的处理。这个时候,操作系统没有控制权,无法更新应用系统的界面,无论我们怎样操作鼠标及键盘,操作系统都无法响应我们的这些操作(即发送的信息),计算机就出现堵塞甚至于系统死机的的情况,甚至有时连任务管理器都无法调出来,只能通过漫长的等待,或者直接按下系统复位键重启计算机系统来解决。因此有必要提供一种能够解决上述问题的系统及方法。
技术实现思路
鉴于以上内容,本专利技术提供一种应用程序紧急暂停方法,用于应用程序运行繁忙时暂停应用程序的运行。该应用程序紧急暂停方法包括步骤:运行应用程序,同时进行该应用程序界面的定时重绘以响应用户操作;载入消息队列,定义暂停时的目标事件及该目标事件对应的执行动作,同时设定触发搜索消息队列事件的计时间隔;开始计时;操作系统截获用户操作所产生的指令信息;操作系统将截获的指令信息按先后顺序和优先级在消息队列中排队;在该应用程序运行过程中,操作系统依照消息队列中的顺序,依次将该消息队列中的事件发送给该应用程序执行;当没有到达计时间隔时,返回操作系统截获用户操作所产生的指令信息的步骤;当达到计时间隔时,触发搜索消息队列的事件;响应该触发事件,搜索消息队列,查找当前消息队列中是否存在目标事件;当消息队列中不存在目标事件时,返回操作系统截获用户操作所产生的指令信息的步骤;当消息队列中存在目标事件时,触发并执行该目标事件所对应的执行动作。鉴于以上内容,本专利技术提供一种应用程序紧急暂停系统,用于应用程序运行繁忙时暂停-->应用程序的运行。该应用程序紧急暂停系统包括:系统初始化模块,用于运行应用程序时载入消息队列,定义触发搜索消息队列的事件的计时间隔、定义该应用程序紧急暂停时的目标事件及该目标事件所对应的执行动作;计时器,用于计时及每到一个计时间隔就触发搜索消息队列的事件;搜索模块,用于当计时器触发了搜索消息队列的事件时,搜索当前消息队列,查找当前消息队列是否存在目标事件;执行模块,用于当消息队列中存在目标事件时,执行该目标事件对应的执行动作。利用本专利技术所提供的应用程序紧急暂停系统及方法将传统的“操作系统发送消息→应用程序执行消息”的模式改变为“应用程序寻找消息→应用程序执行消息”,从而能够在操作系统无法向应用程序发送消息的时候,仍然能够快速响应用户的操作,避免操作系统的堵塞、死机或崩溃,减少了不必要的损失。附图说明图1为本专利技术应用程序紧急暂停系统较佳实施例的功能模块图。图2为本专利技术应用程序紧急暂停方法的较佳实施例的流程图。具体实施方式参阅图1所示,是本专利技术应用程序紧急暂停系统较佳实施例的功能模块图。该应用程序紧急暂停系统1可运行在任一台计算机中监控应用程序的运行。该应用程序紧急暂停系统1包括系统初始化模块10,计时器11,搜索模块12,及执行模块13。该系统初始化模块11用于在计算机中任一应用程序运行时,载入消息队列,设定触发搜索消息队列的事件的计时间隔,并同时开始进行该应用程序界面的定时重绘以响应用户操作,从而开始对应用程序的运行及用户的操作进行监视。所述用户的操作比如按键,鼠标动作等。所述计时间隔如每间隔2秒,或每间隔5秒等。该系统初始化模块10还用于定义目标事件,及该目标事件所对应的执行动作。通常该目标事件是一热键。亦即按下该热键时,操作系统就接收一个目标事件,将该目标事件在当前的消息队列中排队。该目标事件所对应的执行动作包括暂停该运行中的应用程序的执行或者执行其他指定的动作。例如,定义在程序繁忙时,按Esc键暂停该应用程序的处理动作或者执行其他指定的动作,该所定义的目标事件见下面的代码:msg.message==WM_KEYDOWN    按键事件msg.wParam==VK_ESCAPE        按键为Esc-->计时器11用于计时,当达到设定的计时间隔时,触发搜索当前消息队列的事件。例如,定义的计时间隔是每隔5秒触发一次搜索当前消息队列的事件,计时器从时间T开始计时,时间T的单位为秒,则每当计时到T+n*5秒时即触发一次该搜索当前消息队列的事件,其中n为自然数。搜索模块12用于当计时器11触发了搜索消息队列的事件时,搜索该消息队列,以判断是否存在所定义的目标事件。执行模块13用于当搜索模块12在消息队列中搜索到有目标事件时,就执行所定义的该目标事件对应的执行动作,包括使运行中的应用程序暂停处理或者是退出循环。参阅图2所示,是本专利技术应用程序紧急暂停方法的流程图。步骤S20,计算机中的应用程序开始运行,系统初始化模块10载入消息队列,设定触发搜索消息队列的事件的计时间隔,并定义目标事件及该目标事件对应的执行动作,并同时开始进行该应用程序界面的定时重绘以响应用户操作,从而对应用程序的运行及用户的操作进行监视。所述用户的操作比如按键,鼠标动作等。所述计时间隔如每间隔2秒,或每间隔5秒等。通常该目标事件是一热键,即,当程序繁忙时,按下该热键就执行该目标事件所对应的执行动作,包括暂停该应用程序的处理动作或者执行其他指定的动作。例如,定义在程序繁忙时,按Esc键暂停该应用程序的处理动作或者执行其他指定的动作,该所定义的目标事件见下面的代码:msg.message==WM_KEYDOWN    按键事件msg.wParam==VK_ESCAPE        按键为Esc步骤S21,同时,该系统初始化模块启动计时器11开始计时。例如,定义的计时间隔是每隔5秒触发一次搜索当前消息队列的事件,计时器从时间T开始计时,时间T的单位为秒,则每当计时到T+n*5秒时即触发一次该搜索当前消息队列的事件,其中n为自然数。步骤S22,当用户进行操作时,操作系统截获该用户操作所产生的指令信息。步骤S24,操作系统将截获的指令信息按先后顺序和优先级在消息队列中进行排队。步骤S26,在应用程序运行过程中,操作系统依照消息队列中的顺序,依次将消息队列中的事件发送给应用程序执行,在前一条未执行完成前,应用程序不会去执行后面的事件。步骤S28,判断是否达到所设定的搜索消息队列的事件的计时间隔。当没有到达计时间隔时,返回步骤S22,操作系统继续截获用户操作产生的指令信息。当到达计时间隔时,该计时器11触发搜索消息队列的事件。步骤S30,当到达计时间隔时,搜索模块12响应该触发的搜索消息队列的事件,对当前-->的消息队列进行搜索操作,判断是否存在目标事件,如在步骤S20中所定义的热键。在当前的消息队列中不存在目标事件时,返回步骤S22。步骤S32,在当前的消息队列中存在目标事件时,执行模块13就执行该目标事件所对应的动作,如使得运行中的应用程序退出循环或暂停处理等。-->本文档来自技高网...

【技术保护点】
一种应用程序紧急暂停方法,用于应用程序运行繁忙时暂停该应用程序的运行,其特征在于,该方法包括步骤: 运行应用程序,同时进行该应用程序界面的定时重绘以响应用户操作; 载入消息队列,定义暂停时的目标事件及该目标事件对应的执行动作,同 时设定触发搜索消息队列事件的计时间隔; 开始计时; 操作系统截获用户操作所产生的指令信息; 将截获的指令信息按先后顺序和优先级在消息队列中排队; 在该应用程序运行过程中,操作系统依照消息队列中的顺序,依次将该消息队列 中的事件发送给该应用程序执行; 当没有到达计时间隔时,返回操作系统截获用户操作所产生的指令信息的步骤; 当达到计时间隔时,触发搜索消息队列的事件; 响应该触发事件,搜索消息队列,查找当前消息队列中是否存在目标事件;  当消息队列中不存在目标事件时,返回操作系统截获用户操作所产生的指令信息的步骤; 当消息队列中存在目标事件时,触发并执行该目标事件所对应的执行动作。

【技术特征摘要】
1.一种应用程序紧急暂停方法,用于应用程序运行繁忙时暂停该应用程序的运行,其特征在于,该方法包括步骤:运行应用程序,同时进行该应用程序界面的定时重绘以响应用户操作;载入消息队列,定义暂停时的目标事件及该目标事件对应的执行动作,同时设定触发搜索消息队列事件的计时间隔;开始计时;操作系统截获用户操作所产生的指令信息;将截获的指令信息按先后顺序和优先级在消息队列中排队;在该应用程序运行过程中,操作系统依照消息队列中的顺序,依次将该消息队列中的事件发送给该应用程序执行;当没有到达计时间隔时,返回操作系统截获用户操作所产生的指令信息的步骤;当达到计时间隔时,触发搜索消息队列的事件;响应该触发事件,搜索消息队列,查找当前消息队列中是否存在目标事件;当消息队列中不存在目标事件时,返回操作系统截获用户操作所产生的指令信息的步骤;当消息队列中存在目标事件时,触发并执行该目标事件所对应的执行动作。2.如权利要求1所述的应用程序紧急暂停方法,其特...

【专利技术属性】
技术研发人员:常小军
申请(专利权)人:鸿富锦精密工业深圳有限公司鸿海精密工业股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1