动态菜单和工具栏的监视与扩充方法

文档序号:6605193阅读:229来源:国知局
专利名称:动态菜单和工具栏的监视与扩充方法
技术领域
本发明是有关于一种动态菜单和工具栏的监视与扩充方法,本发明提供一种动态菜单和工具栏的监视与扩充方法,可即时监视了解使用者对新型动态菜单和工具栏所进行的操作,并且能使外挂应用程序对新型动态菜单和工具栏即时进行功能扩充、增加附属功能。
在一般常用的应用程序中,都具有菜单(menu)和工具栏(tool bar)供使用者选取,以方便使用者操作,提高操作效率。常用的应用程序,如Office95系列文书应用程序(word 95,exel 95,powerpoint 95……),其菜单和工具栏的内容是固定不变,菜单和工具栏的置放位置亦是不可更改,缺乏因应使用者个人需求而动态变更的设计。
为了使菜单和工具栏更能符合使用者的需求,发挥协助使用者提高操作效率的目的,目前新一代的应用程序,如Office 2000系列文书应用程序、VC++v5.0、VC+v6.0……等,其菜单和工具栏即具有可动态变更的设计。此类的新型菜单和工具栏,可由使用者自行定义菜单和工具栏的内容,并可将新增的菜单内容或工具栏内容拖拉出来置放,成为另一独立的新窗口。
此类新型菜单和工具栏的内容和置放位置因为具有可动态变更的设计,使得菜单和工具栏可以更符合使用者的操作需求。但是,这类可动态变更的新型菜单和工具栏,并无法利用传统固定菜单和工具栏中所使用的方法及技术来获得使用者的操作资料,而目前尚未有任何技术可以实现对此类可动态变更的菜单和工具栏的监视与控制。由于无法监视与控制此种新型菜单和工具栏,一些需要使用者操作资料的外挂辅助应用程序,便无法在具有此类新型菜单和工具栏的应用程序执行。
本发明的主要目的,是提供一种动态菜单和工具栏的监视与扩充方法,在视窗环境下对具有动态菜单和工具栏的应用程序,如Office 2000系列文书应用程序,监视与即时了解使用者对菜单和工具栏所进行的操作,如菜单项和工具栏项的增减、菜单项和工具栏项的修改、菜单项和工具栏项所置放的位置变动……等。
本发明的另一目的,是提供一种动态菜单和工具栏的监视与扩充方法,使外挂应用程序能即时监控菜单和工具栏的变更,并且对新型动态菜单和工具栏即时进行功能扩充、增加附属功能,如语音读出滑鼠游标所在的菜单或工具栏名称、菜单或工具栏内容的汉化、显示标志……等。
本发明提供的一种动态菜单和工具栏的监视与扩充方法,用以扩充菜单和工具栏的内容与功能,该方法包括有产生一当前目标链接与嵌入伺服端的分发,该分发是以目标链接与嵌入自动化方式由该当前目标链接与嵌入伺服端所生成;取得扩充前的菜单和工具栏资料;置放该菜单和工具栏资料于一原有菜单和工具栏资料结构表内;启动拦截程序,以从作业系统的讯息队列拦截使用者动作资料;取得使用者动作资料;搜寻该原有菜单和工具栏资料结构表,并对使用者动作资料进行比较,以获得当前滑鼠游标所在的菜单或工具栏资料;判断当前滑鼠游标所在的菜单或工具栏是否为需要功能扩充的菜单或工具栏,当菜单和工具栏不需功能扩充,呼叫原有功能;当菜单和工具栏需要功能扩充,则进行下一步骤;以及进行功能的扩充。
有关本发明的详细技术内容,将结合实施例参考


如后。
附图简要说明图1是为本发明的步骤流程图;图2是为本发明产生分发并取得菜单和工具栏资料的详细步骤流程图;图3是为本发明启动拦截程序以拦截并取得使用者动作资料的详细步骤流程图;图4是为本发明进行搜寻并比较以获得当前滑鼠游标所在的菜单或工具栏资料的详细步骤流程图。
本发明提供一种动态菜单和工具栏的监视与扩充方法,其功能模块请参阅图1所示。本发明的详细步骤包括有首先借由目标链接与嵌入(Object linking & embedding,简称OLE)伺服端的初始化来取得扩充前的菜单和工具栏的内容和位置,其步骤为1.产生一当前目标链接与嵌入伺服端的分发,其是以目标链接与嵌入自动化(OLE Automation)方式生成当前目标链接与嵌入伺服端的一客户端(Client)为分发(Dispatch);
2.取得扩充前的菜单和工具栏资料,借由对经由上一步骤所得的分发,按照命令栏群(Command Bars)、命令栏(Command Bar)、命令栏控制项群(Command Bar Controls)以及命令栏控制项(Command Bar Control)(该命令栏控制项又分为命令栏按钮(Command Bar Button)与命令栏弹出视窗(Command Bar Popup))逐层逐一处理,意即,先取得菜单的命令栏群和工具栏的命令栏控制项群,再逐一取得命令栏群的各命令栏与命令栏控制项群的各命令栏控制项,而可得到当前应用程序在扩充前的菜单和工具栏资料;3.把所取得的扩充前的菜单和工具栏资料,置入一原有菜单和工具栏资料结构表内,以供进一步处理程序的索引;4.接着启动拦截(Hook)程序,以从作业系统中的讯息队列(Messagequeue)拦截使用者动作资料,该讯息排队是一个系统循环,在作业系统(视窗作业系统)中所有的事件处理都是通过讯息来驱动的,所有的讯息都需进入讯息循环后,再分发给后续的程序,当滑鼠游标位于菜单或工具栏上时,拦截程序会从消息队列截获到相应的使用者动作资料;5.取得使用者动作资料,这些使用者动作资料包括有当前弹出菜单的句柄(Handle)、当前弹出菜单的名称、当前工具栏的句柄、当前工具栏的名称以及滑鼠游标的位置……等等,以得知当前滑鼠游标所在的位置是为菜单的那一命令栏或工具栏的那一命令栏控制项;6.搜寻该原有菜单和工具栏资料结构表,并对使用者动作资料进行比较,以得知当前被弹开的菜单或当前工具栏是那一个菜单的那一项或那一工具栏的那一项;7.判断当前滑鼠游标所在的菜单或工具栏是否为需要功能扩充的菜单或工具栏,当菜单和工具栏不需功能扩充,呼叫原有功能;当菜单和工具栏需要功能扩充,则进行下一步骤;以及8.扩充菜单和工具栏的功能,由处理程序执行相对的功能扩充处理,亦可辅以在显示器画面上显示一进行功能扩充的标志提醒使用者,完成菜单和工具栏功能的扩充。
再请参阅图2所示,其是本发明产生分发并取得菜单和工具栏资料的详细步骤流程图。本发明借由目标链接与嵌入伺服端的初始化来取得扩充前的菜单和工具栏的内容和位置的详细步骤,包括有
1.判断当前目标链接与嵌入伺服端是否支援分发,也就是说,判断该当前目标链接与嵌入伺服端是否可执行目标链接与嵌入伺服端自动化、是否能产生一客户端,当该目标链接与嵌入伺服端支援分发,进行下一步骤;当该目标链接与嵌入伺服端不支援分发,则结束分发;2.产生一分发,当该目标链接与嵌入伺服端支援分发时,则实例化一个相应的应用程序对象(Application),而生成一个可询访该目标链接与嵌入伺服端的客户端,该客户端即为该目标链接与嵌入伺服端的分发;3.连接该分发至该目标链接与嵌入伺服端,借由生成一询访接口,将该分发连接至该目标链接与嵌入伺服端;4.取得菜单的命令栏群与工具栏的命令栏控制项群,以得到当前欲监控的分发的命令栏群与命令栏控制项群;5.逐一取得该命令栏群中的各命令栏与该命令栏控制项群的各命令栏控制项,在取得菜单的命令栏群与工具栏的命令栏控制项群后,对命令栏群中的各命令栏与命令栏控制项群的各命令栏控制项逐层依照排列顺序取出;以及6.逐一取出该命令栏与该命令栏控制项的资料,取得命令栏与命令栏控制项后,通过目标链接与嵌入伺服端的询访接口询访该目标链接与嵌入伺服端,读取各命令栏与命令栏控制项的名称与标示(ID)等资料,得到命令栏与命令栏控制项的资料,例如当前应用程序包括有多少个菜单、多少个工具栏、每个菜单有多少个子项、每个工具栏有多少个子项、每个菜单项的名称与标示(ID)以及每个工具栏项的名称与标示……等等,以存放于原有菜单和工具栏资料结构表内。
请参阅图3所示,其是为本发明启动拦截程序以拦截并取得使用者动作资料的详细步骤流程图。本发明启动拦截程序以从讯息队列拦截并取得使用者动作资料的详细步骤,包括有1.启动拦截程序;2.拦截作业系统的讯息队列中的使用者动作资料;3.判断目标链接与嵌入伺服端是否启动,当该目标链接与嵌入伺服端未启动,启动该目标链接与嵌入伺服端(步骤4)并进行步骤5;当该目标链接与嵌入伺服端已启动,则进行步骤5;5.判断目标链接与嵌入伺服端是否结束,当该目标链接与嵌入伺服端已结束,重回拦截使用者动作资料的步骤2;当该目标链接与嵌入伺服端未结束,则进行步骤6;6.接着判断滑鼠游标是否位于菜单或工具栏上,当该滑鼠游标不位于菜单或工具栏上,重回拦截使用者动作资料的步骤2;当该滑鼠游标位于菜单或工具栏上,则从讯息队列取得使用者动作资料;以及7.取得滑鼠游标所在的弹出菜单或工具栏的名称,与取得滑鼠游标所在的位置(步骤8)。
再请参阅图4所示,其是为本发明进行搜寻并比较以获得当前滑鼠游标所在的菜单或工具栏资料的详细步骤流程图。本发明搜寻该原有菜单和工具栏资料结构表,并对使用者动作资料进行比较,以获得当前滑鼠游标所在的菜单或工具栏资料的详细步骤,包括有1.逐一取得该原有菜单和工具栏资料结构表中菜单的命令栏与工具栏的命令栏控制项的名称与索引项;2.判断所取得的命令栏名称或命令栏控制项名称是否与拦截程序所得的菜单或工具栏的名称相同(步骤2),当拦截程序所得的菜单或工具栏的名称与所取得的命令栏名称或命令栏控制项名称不同,取下一命令栏名或命令栏控制项;当拦截程序所得的菜单或工具栏的名称与所取得的命令栏名称或命令栏控制项名称相同,则进行步骤3;3.判断滑鼠游标是否位于所取得的命令栏或命令栏控制项,当滑鼠游标不位于所取得的命令栏或命令栏控制项,重回上一步骤;当滑鼠游标是位于所取得的命令栏或命令栏控制项,则进行步骤4;4.判断滑鼠游标所在的弹出菜单或工具栏的索引项与所取得的命令栏或命令栏控制项的索引项是否相同,当滑鼠游标所在的弹出菜单或工具栏的索引项与所取得的命令栏或命令栏控制项的索引项不同,重回取命令栏与命令栏控制项的名称与索引项的步骤1;当滑鼠游标所在的弹出菜单或工具栏的索引项与所取得的命令栏或命令栏控制项的索引项相同,则进行步骤5;以及5.取得当前滑鼠游标所在的菜单或工具栏的名称与索引项。
本发明提供一种动态菜单和工具栏的监视与扩充方法,可即时监视了解使用者对新型动态菜单和工具栏所进行的操作,如使用者滑鼠当前在位于那一个菜单的那一项或那一个工具栏的那一项、使用者对菜单或工具栏的增减、使用者自行定义的菜单或工具栏、菜单或工具栏位置的变更……等,并且能使外挂应用程序对新型动态菜单和工具栏即时进行功能扩充、增加附属功能,如语音读出滑鼠游标所在的菜单或工具栏名称、菜单或工具栏内容的汉化、显示标志……等。
权利要求
1.一种动态菜单和工具栏的监视与扩充方法,用以扩充菜单和工具栏的内容与功能,其特征是该方法包括有产生一当前目标链接与嵌入伺服端的分发,该分发是以目标链接与嵌入自动化方式由该当前目标链接与嵌入伺服端所生成;取得扩充前的菜单和工具栏资料;置放该菜单和工具栏资料于一原有菜单和工具栏资料结构表内;启动拦截程序,以从作业系统的讯息队列拦截使用者动作资料;取得使用者动作资料;搜寻该原有菜单和工具栏资料结构表,并对使用者动作资料进行比较,以获得当前滑鼠游标所在的菜单或工具栏资料;判断当前滑鼠游标所在的菜单或工具栏是否为需要功能扩充的菜单或工具栏,当菜单和工具栏不需功能扩充,呼叫原有功能;当菜单和工具栏需要功能扩充,则进行下一步骤;以及进行功能的扩充。
2.如权利要求1所述的动态菜单和工具栏的监视与扩充方法,其特征是该菜单和工具栏资料包括有当前应用程序有多少个菜单、当前应用程序有多少个工具栏、每个菜单有多少个子项、每个工具栏有多少个子项、每个菜单项的名称与标示以及每个工具栏项的名称与标示。
3.如权利要求1所述的动态菜单和工具栏的监视与扩充方法,其特征是该使用者动作资料包括有当前弹出菜单的句柄、当前弹出菜单的名称、当前工具栏的句柄、当前工具栏的名称以及滑鼠游标的位置。
4.如权利要求1所述的动态菜单和工具栏的监视与扩充方法,其特征是产生该分发的步骤更进一步包括下列步骤判断当前目标链接与嵌入伺服端是否支援分发,当该目标链接与嵌入伺服端支援分发,进行下一步骤;当该目标链接与嵌入伺服端不支援分发,则结束分发;产生一分发,其是为该目标链接与嵌入伺服端的客户端;以及连接该分发至该目标链接与嵌入伺服端。
5.如权利要求1所述的动态菜单和工具栏的监视与扩充方法,其特征是取得扩充前的菜单和工具栏资料的步骤,更进一步包括下列步骤取得菜单的命令栏群与工具栏的命令栏控制项群;逐一取得该命令栏群中的各命令栏与该命令栏控制项群的各命令栏控制项;以及逐一取出该命令栏与该命令栏控制项的资料。
6.如权利要求1所述的动态菜单和工具栏的监视与扩充方法,其特征是启动拦截程序以从讯息队列拦截使用者动作资料的步骤,更进一步包括下列步骤启动拦截程序;拦截作业系统的讯息队列中的使用者动作资料;判断目标链接与嵌入伺服端是否启动,当该目标链接与嵌入伺服端未启动,启动该目标链接与嵌入伺服端并进行下一步骤;当该目标链接与嵌入伺服端已启动,则进行下一步骤;判断目标链接与嵌入伺服端是否结束,当该目标链接与嵌入伺服端已结束,重回拦截使用者动作资料的步骤;当该目标链接与嵌入伺服端未结束,则进行下一步骤;以及判断滑鼠游标是否位于菜单或工具栏上,当该滑鼠游标不位于菜单或工具栏上,重回拦截使用者动作资料的步骤;当该滑鼠游标位于菜单或工具栏上,则进行取得使用者动作资料的步骤。
7.如权利要求1所述的动态菜单和工具栏的监视与扩充方法,其特征是取得使用者动作资料的步骤,更进一步包括下列步骤取得滑鼠游标所在的弹出菜单或工具栏的名称;以及取得滑鼠游标所在的位置。
8.如权利要求1所述的动态菜单和工具栏的监视与扩充方法,其特征是搜寻该原有菜单和工具栏资料结构表,并对使用者动作资料进行比较,以获得当前滑鼠游标所在的菜单或工具栏资料的步骤,更进一步包括下列步骤逐一取得该原有菜单和工具栏资料结构表中菜单的命令栏与工具栏的命令栏控制项的名称与索引项,并判断所取得的命令栏名称或命令栏控制项名称是否与拦截程序所得的菜单或工具栏的名称相同,当栏截程序所得的菜单或工具栏的名称与所取得的命令栏名称或命令栏控制项名称不同,取下一命令栏名称或命令栏控制项;当拦截程序所得的菜单或工具栏的名称与所取得的命令栏名称或命令栏控制项名称相同,则进行下一步骤;判断滑鼠游标是否位于所取得的命令栏或命令栏控制项,当滑鼠游标不位于所取得的命令栏或命令栏控制项,重回上一步骤;当滑鼠游标是位于所取得的命令栏或命令栏控制项,则进行下一步骤;判断滑鼠游标所在的弹出菜单或工具栏的索引项与所取得的命令栏或命令栏控制项的索引项是否相同,当滑鼠游标所在的弹出菜单或工具栏的索引项与所取得的命令栏或命令栏控制项的索引项不同,重回取命令栏与命令栏控制项的名称与索引项的步骤;当滑鼠游标所在的弹出菜单或工具栏的索引项与所取得的命令栏或命令栏控制项的索引项相同,则进行下一步骤;以及取得当前滑鼠游标所在的菜单或工具栏的名称与索引项。
全文摘要
本发明是有关于一种动态菜单和工具栏的监视与扩充方法,透过建立原有菜单和工具栏资料,并利用拦截程序从作业系统的讯息队列拦截使用者动作资料,以进行比较判断,可即时监视了解使用者对新型动态菜单和工具栏所进行的操作,并且根据使用者对菜单和工具栏的即时操作,进行外挂应用程序的功能扩充、增加附属功能。
文档编号G06F9/318GK1310383SQ00102290
公开日2001年8月29日 申请日期2000年2月22日 优先权日2000年2月22日
发明者林光信, 宋建福, 魏永杰 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1