一种根据资源状态动态调整程序模块功能的方法

文档序号:6598487阅读:363来源:国知局
专利名称:一种根据资源状态动态调整程序模块功能的方法
技术领域
本发明涉及计算机软件中的智能判断方法,特别是涉及一种可以使Windows CE系统中的应用程序在执行时根据资源状态自动调整程序模块功能的方法。
背景技术
现在的应用程序都致力于解决易用性问题,在程序安装过程中,都尽量采取向导的方式,以方便用户的使用。但当安装程序将主程序和相应资源安装到指定位置后,一旦用户的机器中的文件结构发生了不可预知的变化,应用程序往往无法显示通知用户,也无法对用户的操作给出相应的指引,给用户的操作带来了很大的不便。
现有的部分程序也有判断资源状态的能力,但是其仅仅针对程序整体,并不能针对程序元素进行相应的调整,更重要的是,它们并没有将因为资源而引起的程序元素变化以用户敏感的方式表现出来,之后也没有把如何补充这些资源的方法明确显示给用户。
还有,在台式机上人们通常使用二态图标方法来表示程序元素的状态,(二态图标指在程序制作前期用图像软件来生成同一图标资源在不同状态时的版本)但对于Windows CE这样对储存空间要求极为苛刻的平台,如果能够在程序运行时实时生成不同状态的图标或资源,就可以节省出将近一半的资源空间,从而带来机器整体性能的提高。
因此,要克服上述现有技术的缺点,最重要的是应用程序在执行时自动监测相关资源的状态,并根据反馈的信息调整一些执行模块的显示状态和功能。

发明内容
本发明要解决的技术问题是提出一种根据资源状态动态调整程序模块的方法,使得应用程序在执行时自动监测相关资源的状态,并根据反馈的信息调整一些执行模块的显示状态和功能。
本发明所述一种根据资源状态动态调整程序模块功能的方法,包括如下步骤步骤一、设定应用程序在执行过程中所要检测的具体资源,生成配置文件,读入配置文件;步骤二、扫描指定资源是否存在,如果指定资源存在,则读入位图资源,按照预先设定功能执行程序元素或模块,转入步骤五;如果指定资源不存在,转入步骤三;步骤三、读入位图资源并对其进行图像转换;步骤四、显示转换后的图像,改变并执行相应程序元素或模块的功能;步骤五、结束。
在扫描指定资源之前,还包括如下确定程序路径的步骤通过执行当前程序获得当前程序的字符串,对此字符串进行相应处理后,即可获得当前程序执行的位置,根据配置文件中给定的资源字符串通过嵌套算法计算出相关的资源路径。
所述扫描的指定资源如果存在,还包括如下的步骤监测系统文件结构是否产生变化,一旦有变化则根据配置文件进行扫描;判断指定的资源是否发生了改变,如果没有改变,则继续监视,如果发生了改变,则转入步骤三。
所述的步骤三中,对位图资源进行图像转换包括如下步骤
根据源位图的大小,开辟相同大小的位图缓冲区DIBSection;生成与源位图的设备上下文DC(Device Context)兼容的DC,然后把DIBSection选择进去,把源位图的内容拷贝进去;从DIBSection的第一个像素开始一直到最后一个像素做下面的循环1)把一个像素的R,G,B三个值通过位移获得;2)根据灰度公式Grayscale=0.3R+0.6G+0.1B得到这个像素的灰度值;3)把灰度数值赋给位图;把合成后的灰度位图拷贝到源位图中,转换结束。
本发明所述方法可以在很大程度上实现程序的自动调节,为了得到最大的灵活性,在程序外部制定所需的资源,这样可以在不对程序进行任何改动的情况下,方便地更改程序需要判断的程序元素,甚至当机器插入一些外部储存设备时,比如CF、SD卡或USB硬盘等,应用程序也可以根据其中是否含有所需的资源(在外部制定时确认)来改变程序元素或模块的功能。


图1为本发明所述方法的流程示意图;图2为本发明所述方法步骤三对位图资源进行图像转换的流程示意图;图3为本发明一实施例解决分批制作Rom安装包的流程示意图。
具体实施例方式
图1为本发明所述方法的流程示意图,如图1所示,本发明所述方法的流程包括步骤一、设定应用程序在执行过程中所要检测的具体资源,生成配置文件,读入配置文件;步骤二、扫描指定资源是否存在,如果指定资源存在,则读入位图资源,按照预先设定功能执行程序元素或模块,转入步骤五;如果指定资源不存在,转入步骤三;步骤三、读入位图资源并对其置入图像转换函数进行图像转换;步骤四、显示转换后的图像,改变并执行相应程序元素或模块的功能;步骤五、结束。
在实现图1的过程中,程序路径的位置非常重要,必须得到当前程序执行的位置,这样才能对步骤二所述的程序资源进行扫描,由于在Windows CE系统中没有相对路径的概念,需要探测应用程序的执行位置,并以此为基准来计算资源文件的路径位置,从而实现对资源文件的动态监测。
例如程序在<\\Legend>下执行,通过执行程序即可获得<\\Legend\\程序名.扩展名>的字符串,对此字符串进行相应处理后,即可获得当前程序执行的位置,这样就可以根据配置文件中给定的资源字符串通过递归算法计算出相关的资源路径了;同理还可以对外部设备的状态进行侦测,一旦检测到新设备插入,就可以对其新引入的资源进行功能判断。
在所述的根据资源状态动态调整程序模块功能方法的步骤三中,读入位图资源并将其置入图像转换函数也是很重要的一步。原因在于,如果不用技术处理,即图像转换的话,想用灰度图给用户提示,那需要用图像处理软件为源位图创建另外一张灰度位图资源,占用了资源空间;而将图标资源通过位图灰度置换技术转换成灰度图标,这样做既会给用户明显的提示,又可以为PocketPC这一类小储存容量设备节约宝贵的资源空间。
图2为本发明所述方法步骤三对位图资源进行图像转换的流程示意图;对位图资源进行图像转换的流程包括根据源位图的大小,开辟相同大小的位图缓冲区DIBSection;生成与源位图的DC(Device Context)兼容的DC,然后把DIBSection选择进去,把源位图的内容拷贝进去;从DIBSection的第一个像素开始一直到最后一个像素(这些可以从一个生成DIBSection的时候得到)做下面的循环1)判断是否到了位图的末尾,如果是,则转步骤6),如果不是,则执行步骤2);2)获取当前像素的R,G,B三个值,通过位移获得;3)根据灰度公式Grayscale=R*0.3+G*0.6+B*0.1得到这个像素的灰度值;4)把灰度数值赋给位图;5)把像素指示到下一个像素,转到步骤1);6)退出。
根据图1所述的根据资源状态动态调整程序模块功能的方法,在步骤二中,如果所扫描的指定资源存在,还包括如下的步骤监测系统文件结构是否产生变化,一旦有变化则根据配置文件进行扫描;判断指定的资源是否发生了改变,如果没有改变,则继续监视,如果发生了改变,则转入步骤三。
以下通过一个具体实施例图3,具体说明本发明所述方法。例如在研发工作中需要做一个Rom文件读取程序,并且要在用户界面中将不同的Rom用相应的图标表示出来,因为程序要分阶段为用户提供Rom,同时用户也可能要求将Rom改变,所以无法固化在最初设计的程序中。
根据前述的根据资源状态动态调整程序模块功能的方法,在不改动主程序的前提下,可以成功解决分批制作Rom安装包的工作。
如图3所示,解决分批制作Rom安装包的流程包括如下步骤针对Rom文件的特点编写了相应的资源和路径的配置文件,备份修复文件;然后在程序中编写了扫描指定资源,对指定资源进行扫描;监测系统文件是否出现变化;如果未发生变化,则正常处理此文件,如果发生变化,则进行位图灰度转换;最后根据Rom状态编写了相应的用户使用向导,当监测到Rom状态发生变化后,将弹出询问用户是否进行自动修复的对话框,如果用户选择自动修复,程序将根据已经备份的修复文件对程序进行修复。
本实施例采用本发明所述方法,就可以将一个阶段内用户所需要的不同的配置文件、图标文件、Rom文件一起打包提供给用户,使用户获得全新的使用模式,并且当资源发生改变时,能够及时侦测到并动态地改变模块功能和使用方式,不用对程序版本进行维护就能实现功能的更新。
特别是在图标资源众多的情况下,通过位图灰度置换技术,避免了传统的二态图标方法,节约了近一半的图标资源占用空间。
最后所应说明的是以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.根据资源状态动态调整程序模块功能的方法,其特征在于包括如下步骤步骤一、设定应用程序在执行过程中所要检测的具体资源,生成配置文件,读入配置文件;步骤二、扫描指定资源是否存在,如果指定资源存在,则读入位图资源,按照预先设定功能执行程序元素或模块,转入步骤五;如果指定资源不存在,转入步骤三;步骤三、读入位图资源并对其置入图像转换函数进行图像转换;步骤四、显示转换后的图像,改变并执行相应程序元素或模块的功能;步骤五、结束。
2.根据权利要求1所述的根据资源状态动态调整程序模块功能的方法,其特征在于在扫描指定资源之前,还包括如下确定程序路径的步骤通过执行当前程序获得当前程序的字符串,对此字符串进行相应处理后,即可获得当前程序执行的位置,根据配置文件中给定的资源字符串通过递归算法计算出相关的资源路径。
3.根据权利要求1或2所述的根据资源状态动态调整程序模块功能的方法,其特征在于在步骤二中,所述扫描的指定资源如果存在,还包括如下的步骤监测系统文件结构是否产生变化,一旦有变化则根据配置文件进行扫描;判断指定的资源是否发生了改变,如果没有改变,则继续监视,如果发生了改变,则转入步骤三。
4.根据权利要求1或2所述的根据资源状态动态调整程序模块功能的方法,其特征在于在步骤三中,对位图资源进行图像转换包括如下步骤根据源位图的大小,开辟相同大小的位图缓冲区DIBSection;生成与源位图的设备上下文DC(Device Context)兼容的DC,然后把DIBSection选择进去,把源位图的内容拷贝进去;从DIBSection的第一个像素开始一直到最后一个像素做下面的循环1)判断是否到了位图的末尾,如果是,则转步骤6)如果不是,则执行步骤2);2)获取当前像素的R,G,B三个值,通过位移获得;3)根据灰度公式Grayscale=R*0.3+G*0.6+B*0.1得到这个像素的灰度值;4)把灰度数值赋给位图;5)把像素指示到下一个像素,转到步骤1);6)退出。
全文摘要
本发明揭示了一种根据资源状态动态调整程序模块功能的方法,其实现包括如下步骤首先,设定应用程序在执行过程中所要检测的具体资源,生成并读入配置文件;接着,扫描指定资源是否存在,如果存在,则读入位图资源,按照预先设定功能执行程序元素或模块,执行后结束;如果不存在,则读入位图资源并对其进行图像转换;然后,显示转换后的图像,改变并执行相应程序元素或模块的功能,结束。利用本发明所述方法可以在很大程度上实现程序的自动调节,可以在不对程序进行任何改动的情况下,方便地更改程序需要判断的程序元素,甚至当机器插入一些外部储存设备时,应用程序也可以根据其中是否含有所需的资源来改变程序元素或模块的功能。
文档编号G06F11/36GK1504889SQ0214918
公开日2004年6月16日 申请日期2002年11月28日 优先权日2002年11月28日
发明者张乃雷, 何君舰 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1