信息显示方法及装置制造方法

文档序号:6546937阅读:111来源:国知局
信息显示方法及装置制造方法
【专利摘要】本发明公开了一种信息显示方法及装置,属于计算机【技术领域】。所述方法包括:截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息;在截获到的所述消息是用于触发刷新所述桌面壁纸窗口内的显示内容的绘制消息时,根据待显示的信息绘制显示内容;在所述桌面壁纸窗口显示所述显示内容。本发明解决了浮窗显示在最前一层会影响用户的正常操作的问题;达到了显示内容显示在位于图标层下方的桌面壁纸窗口所在的层,用户点击图标时,会直接激发图标所对应的功能,不会影响用户的正常操作的效果。
【专利说明】信息显示方法及装置
【技术领域】
[0001]本发明涉及计算机【技术领域】,特别涉及一种信息显示方法及装置。
【背景技术】
[0002]音乐播放程序在播放音乐时,通常会在电脑桌面上同步地播放与该音乐相关的信息,这些信息可以是歌词、播放进度以及歌手写真等信息。
[0003]在目前的信息显示方法中,音乐播放程序通常在电脑桌面上叠加显示一个独立于音乐播放程序界面的浮窗,根据与当前播放音乐有关的待显示的信息绘制显示内容,待显示的信息可以是歌词、然后播放进度以及歌手写真等;在该浮窗中显示该显示内容。比如在图1中,音乐播放程序10在电脑桌面12上显示一个独立的浮窗14,然后在浮窗14中以动画方式显示歌词。该浮窗14具有较高的显示优先级,可以总是在最前一层显示,且该浮窗14的背景区域被设置为透明色。
[0004]在实现本发明的过程中,发明人发现上述技术至少存在以下问题:由于在上述方法中,桌面壁纸所在的窗口显示在最底层,桌面图标显示在桌面壁纸窗口之上的中间一层,而浮窗总是在最前一层显示,所以如果用户需要点击该浮窗下方的图标,实际上点击的是该浮窗的透明的背景区域,被激发的功能是该浮窗所对应的功能,而不是用户希望激发的图标所对应的功能,影响了用户的正常操作。

【发明内容】

[0005]为了解决浮窗显示在最前一层会影响用户的正常操作的问题,本发明实施例提供了一种信息显示方法及装置。所述技术方案如下:
[0006]第一方面,提供了一种信息显示方法,所述方法包括:
[0007]截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息;
[0008]在截获到的所述消息是用于触发刷新所述桌面壁纸窗口内的显示内容的绘制消息时,根据待显示的信息绘制显示内容;
[0009]在所述桌面壁纸窗口显示所述显示内容。
[0010]在可能的实施方式中,所述截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息,包括:
[0011]查询所述桌面壁纸窗口所对应的线程;
[0012]使用钩子Hook技术向所述桌面壁纸窗口所对应的线程注入自定义代码;
[0013]通过所述自定义代码将所述桌面壁纸窗口所对应的消息处理函数替换为自定义消息处理函数;
[0014]通过所述自定义消息处理函数截获操作系统向所述桌面壁纸窗口的消息处理函数所发送的消息。
[0015]在可能的实施方式中,所述查询所述桌面壁纸窗口所对应的线程,包括:
[0016]在资源管理器进程中根据所述桌面壁纸窗口所对应的类名查找所述桌面壁纸窗口的句柄;
[0017]根据所述桌面壁纸窗口的句柄查找所述桌面壁纸窗口所在的线程。
[0018]在可能的实施方式中,所述根据待显示的信息绘制显示内容,包括:
[0019]在内存中创建与所述桌面壁纸窗口的画布相一致的缓冲区;
[0020]在所述缓冲区中根据待显示的信息绘制所述显示内容;
[0021 ] 所述在所述桌面壁纸窗口显示所述显示内容,包括:
[0022]将所述缓冲区中的所述绘制内容拷贝到所述桌面壁纸窗口的画布上进行显示。
[0023]在可能的实施方式中,所述在所述缓冲区中根据待显示的信息绘制所述显示内容,包括:
[0024]若所述待显示的信息是包括连续的若干帧图像的动画,则检测当前时刻是否已经超过待绘制的当前帧图像的时间轴时刻;
[0025]若检测出当前时刻已经超过待绘制的当前帧图像的时间轴时刻,则跳过所述当前帧图像,绘制下一帧图像。
[0026]在可能的实施方式中,所述截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息之后,还包括:
[0027]在截获到的所述消息不是所述绘制消息时,将所述消息继续交由所述桌面壁纸窗口的消息处理函数进行处理。
[0028]第二方面,提供了一种信息显示装置,所述装置包括:
[0029]消息截获模块,用于截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息;
[0030]内容绘制模块,用于在截获到的所述消息是用于触发刷新所述桌面壁纸窗口内的显示内容的绘制消息时,根据待显示的信息绘制显示内容;
[0031]内容显示模块,用于在所述桌面壁纸窗口显示所述显示内容。
[0032]在可能的实施方式中,所述消息截获模块,包括:
[0033]线程查询单元,用于查询所述桌面壁纸窗口所对应的线程;
[0034]代码注入单元,用于使用钩子Hook技术向所述桌面壁纸窗口所对应的线程注入自定义代码;
[0035]函数替换单元,用于通过所述自定义代码将所述桌面壁纸窗口所对应的消息处理函数替换为自定义消息处理函数;
[0036]消息截获单元,用于通过所述自定义消息处理函数截获操作系统向所述桌面壁纸窗口的消息处理函数所发送的消息。
[0037]在可能的实施方式中,所述线程查询单元,包括:
[0038]句柄查找子单元,用于在资源管理器进程中根据所述桌面壁纸窗口所对应的类名查找所述桌面壁纸窗口的句柄;
[0039]线程查找子单元,用于根据所述桌面壁纸窗口的句柄查找所述桌面壁纸窗口所在的线程。
[0040]在可能的实施方式中,所述内容绘制模块,包括:
[0041]缓冲区创建单元,用于在内存中创建与所述桌面壁纸窗口的画布相一致的缓冲区;[0042]内容绘制单元,用于在所述缓冲区中根据待显示的信息绘制所述显示内容;
[0043]所述内容显示模块,用于将所述缓冲区中的所述绘制内容拷贝到所述桌面壁纸窗口的画布上进行显示。
[0044]在可能的实施方式中,所述内容绘制单元,包括:
[0045]时刻检测子单元和图像跳过子单元;
[0046]所述时刻检测子单元,用于若所述待显示的信息是包括连续的若干帧图像的动画,则检测当前时刻是否已经超过待绘制的当前帧图像的时间轴时刻;
[0047]所述图像跳过子单元,用于若检测出当前时刻已经超过待绘制的当前帧图像的时间轴时刻,则跳过所述当前帧图像,绘制下一帧图像。
[0048]在可能的实施方式中,所述装置,还包括:
[0049]消息交回模块,用于在截获到的所述消息不是所述绘制消息时,将所述消息继续交由所述桌面壁纸窗口的消息处理函数进行处理。
[0050]本发明实施例提供的技术方案带来的有益效果是:
[0051]通过在截获到用于触发刷新桌面壁纸窗口内的显示内容的绘制消息后,使用自定义的显示内容代替桌面壁纸窗口中的默认显示的壁纸内容,也即在位于图标一层下面的桌面壁纸窗口一层显示自定义的显示内容;解决了浮窗显示在最前一层会影响用户的正常操作的问题;达到了显示内容显示在位于图标层下方的桌面壁纸窗口所在的层,用户点击图标时,会直接激发图标所对应的功能,不会影响用户的正常操作的效果。
【专利附图】

【附图说明】
[0052]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0053]图1是相关技术中提供的信息显示方法在具体实施时的界面示意图;
[0054]图2是本发明一个实施例提供的信息显示方法的方法流程图;
[0055]图3A是本发明另一个实施例提供的信息显示方法的方法流程图;
[0056]图3B至图3E是图3A实施例提供的信息显示方法在具体实施时的实施示意图;
[0057]图4是本发明一个实施例提供的信息显示装置的结构示意图;
[0058]图5是本发明一个实施例提供的信息显示装置的结构示意图;
[0059]图6是本发明一个实施例提供的终端的结构示意图。
【具体实施方式】
[0060]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
[0061]在实现本发明实施例的过程中,发明人发现:如果能够将诸如歌词、歌手写真之类的相关信息显示在桌面壁纸所在的窗口,则不会影响用户对图标的操作,因为图标所在的显示层高于桌面壁纸窗口所在的显示层。
[0062]为了便于理解本发明,首先对桌面壁纸的显示机制进行简单的介绍。在Windows操作系统中,桌面壁纸是在Explorer, exe (资源管理器)进程中的一个窗口中进行显示的,也称桌面壁纸窗口。桌面壁纸窗口对应有一个消息处理函数,如果要显示一张壁纸,需要该消息处理函数在桌面壁纸窗口中绘制该张壁纸并显示。一旦桌面壁纸窗口上的显示内容有变化,比如鼠标光标发生移动、位于它上层的其它窗口发生移动、位于它上层的其它窗口发生拉伸等,操作系统都会向该消息处理函数发送WM_PAINT (绘制)消息,WM_PAINT消息用于触发刷新桌面壁纸窗口内的显示内容。该消息处理函数在接收到绘制消息后,根据该绘制消息重新绘制全部或者部分显示内容,以刷新桌面壁纸窗口中的显示内容。
[0063]请参考图2,其示出了本发明一个实施例提供的信息显示方法的方法流程图。本实施例以该信息显示方法应用于客户端中来举例说明。该信息显示方法,包括:
[0064]步骤202,截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息;
[0065]步骤204,在截获到的消息是用于触发刷新桌面壁纸窗口内的显示内容的绘制消息时,根据待显示的信息绘制显示内容;
[0066]步骤206,在桌面壁纸窗口显示该显示内容。
[0067]综上所述,本实施例提供的信息显示方法,通过在截获到用于触发刷新桌面壁纸窗口内的显示内容的绘制消息后,使用自定义的显示内容代替桌面壁纸窗口中的默认显示的壁纸内容,也即在位于图标一层下面的桌面壁纸窗口一层显示自定义的显示内容;解决了浮窗显示在最前一层会影响用户的正常操作的问题;达到了显示内容显示在位于图标层下方的桌面壁纸窗口所在的层,用户点击图标时,会直接激发图标所对应的功能,不会影响用户的正常操作的效果。
[0068]请参考图3A,其示出了本发明另一实施例提供的信息显示方法的方法流程图。本实施例以该信息显示方法应用于客户端中来举例说明,该客户端可以是音乐播放程序。该信息显示方法,包括:
[0069]步骤301,查询桌面壁纸窗口所对应的线程;
[0070]首先,客户端查询桌面壁纸窗口所对应的线程。本步骤包括如下子步骤:
[0071]1、在资源管理器进程中根据桌面壁纸窗口所对应的类名查找桌面壁纸窗口的句柄;
[0072]客户端在资源管理器Explorer.exe进程中根据桌面壁纸窗口的类名查找桌面壁纸窗口的句柄,句柄可以认为是桌面壁纸窗口在操作系统中的标识。
[0073]由于桌面壁纸窗口实际上是个ListView控件,所以本子步骤可以使用微软WindowsAPI中的FindWindowEx函数来实现查找过程。
[0074]2、根据桌面壁纸窗口的句柄查找桌面壁纸窗口所在的线程。
[0075]在找到了桌面壁纸窗口的句柄后,客户端根据桌面壁纸窗口的句柄查找桌面壁纸窗口所在的线程ID。
[0076]客户端可以使用GetWindowThreadProcessIdO函数读取桌面壁纸窗口所在的进程ID与线程ID。
[0077]步骤302,使用钩子Hook技术向桌面壁纸窗口所对应的线程注入自定义代码;
[0078]客户端使用SetWindowsHookEX函数向桌面壁纸窗口所对应的线程注入自定义代码,该自定义代码可以是研发人员预先提供的DLL (Dynamic Link Library,动态链接库)。由于注入后的自定义代码与资源管理器Explorer, exe处于同一个进程,所以注入后的自定义代码可以操作Explorer, exe进程中的所有资源。
[0079]步骤303,通过自定义代码将桌面壁纸窗口所对应的消息处理函数替换为自定义消息处理函数;
[0080]注入后的自定义代码再次查找到桌面壁纸窗口的句柄,然后通过该句柄将桌面壁纸窗口所对应的消息处理函数替换为自定义消息处理函数。该替换过程可以通过SubClass (子类化)技术实现,SubClass是一种替换Window窗口消息处理函数的技术。
[0081]如图3B所示,由于原始的消息处理函数被替换为了自定义消息处理函数,所以自定义消息处理函数可以截获到操作系统向原始的消息处理函数发送的所有消息。
[0082]需要说明的是,虽然原始的消息处理函数被替换,但是原始的消息处理函数仍然存在。
[0083]步骤304,通过自定义消息处理函数截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息。
[0084]客户端通过自定义消息处理函数截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息。在截获的消息中:
[0085]如果截获的消息是WM_PAINT (绘制)消息,则自定义消息处理函数自身来处理这条消息,并不再把这条消息发送给桌面壁纸窗口的原始的消息处理函数。简单来讲,就是使用自定义消息处理函数来代替原始的消息处理函数完成有关显示内容的绘制、显示和更新过程,显示出我们提供的客户端所希望显示的内容,而不是操作系统默认的壁纸内容。
[0086]如果截获的消息是除WM_PAINT (绘制)消息之外的其它消息,则自定义消息处理函数将该消息继续交由桌面壁纸窗口的原始的消息处理函数进行处理。
[0087]步骤305,在截获到的消息是绘制消息时,根据待显示的信息绘制显示内容;
[0088]在截获到的消息是WM_PAINT (绘制)消息时,客户端根据待显示的信息绘制显示内容。待显示的信息可以是歌词、动画、歌手写真之类的信息。
[0089]在一种可能的实施方式下,在截获到WM_PAINT消息时,客户端可以直接根据待显示的信息在桌面壁纸窗口中绘制显示内容。如图3C所示,若桌面壁纸窗口的原始显示内容为32,则客户端首先用默认背景色34对桌面壁纸窗口的画布进行擦除,然后根据待显示的信息将新的显示内容36绘制在桌面壁纸窗口的画布中。其中,用默认背景色进行擦除主要是为了防止原始显示内容32与新的显示内容36混合在一起导致花屏。
[0090]但是在待显示的信息是动画时,如果按照上述过程进行绘制,那么桌面壁纸窗口中的显示内容的变化过程为:“显示内容1、背景色、显示内容2、背景色、显示内容3、背景
色、显示内容4、背景色.....”。由于动画文件的帧速较快,显示内容与背景色之间的差异又
较大,此时很容易导致发生闪烁现象。
[0091]所以为了消除闪烁现象,本步骤可以采用双缓冲技术来绘制显示内容,也即本步骤采用如下子步骤实现:
[0092]1、在内存中创建与桌面壁纸窗口的画布相一致的缓冲区;
[0093]客户端不直接在桌面壁纸窗口的画布上进行绘制,而是先在内存中创建与桌面壁纸窗口的画布相一致的缓冲区。
[0094]2、在缓冲区中根据待显示的信息绘制显示内容;
[0095]客户端在缓冲区中根据待显示的信息绘制显示内容,该显示内容在绘制后才会被拷贝到桌面壁纸窗口显示,整个过程如图3D所示。显然,原始的显示内容32切换至新的显示内容36的过程中将不会显示背景色,所以不会产生闪烁现象。
[0096]需要说明的是,桌面壁纸窗口中的显示内容通常是基于WM_PAINT消息来触发刷新的,也即收到一次WM_PAINT消息,更新一次显示内容。但是如果待显示的信息是动画,比如动态歌词,则客户端可以自定义一个定时器,由该定时器来触发动画中每帧图像的显示内容的绘制过程。
[0097]在根据动画来绘制显示内容时,为了保证动画的流畅性,可以适当的做丢帧处理。也即,本子步骤2,可以包括如下子步骤:
[0098]若待显示的信息是包括连续的若干帧图像的动画,则客户端检测当前时刻是否已经超过待绘制的当前帧图像的时间轴时刻;若检测出当前时刻已经超过待绘制的当前帧图像的时间轴时刻,则跳过当前帧图像,绘制下一帧图像。
[0099]如图3E所示,动画中每帧图像都在动画时间轴上有对应的时间轴时刻,如果已经绘制了第η-1帧图像,但是由于第η-1帧图像花费了太多的绘制时间,导致应该绘制第η帧图像时的时刻tl已经超过了第η帧图像在动画时间轴上的时间轴时刻t2,则此时可以丢弃该第η帧图像不再绘制,直接绘制第η+1帧图像,N ^ 2ο
[0100]当然,如果当前时刻tl也超过了第η+1帧图像在动画时间轴上的时间轴时刻t3,则此时可以丢弃该第η+1帧图像不再绘制,直接绘制第η+2帧图像,以此类推,不再赘述。 [0101]步骤306,在桌面壁纸窗口显示显示内容。
[0102]在显示内容被绘制后,在桌面壁纸窗口中会显示该显示内容。如果显示内容是在缓冲区中绘制的,则将缓冲区中的绘制内容拷贝到桌面壁纸窗口的画布上进行显示。拷贝过程可以使用BitBit函数基于图形块的复制来实现。之后,客户端可以释放掉内存中的该缓冲区。
[0103]至此,可以实现在桌面壁纸上显示客户端自定义的显示内容。
[0104]综上所述,本实施例提供的信息显示方法,通过在截获到用于触发刷新桌面壁纸窗口内的显示内容的绘制消息后,使用自定义的显示内容代替桌面壁纸窗口中的默认显示的壁纸内容,也即在位于图标一层下面的桌面壁纸窗口一层显示自定义的显示内容;解决了浮窗显示在最前一层会影响用户的正常操作的问题;达到了显示内容显示在位于图标层下方的桌面壁纸窗口所在的层,用户点击图标时,会直接激发图标所对应的功能,不会影响用户的正常操作的效果。
[0105]本实施例提供的信息显示方法,还通过自定义消息处理函数来截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息,实现了绘制消息的拦截,使得客户端能够在桌面壁纸窗口中显示自定义的显示内容。
[0106]本实施例提供的信息显示方法,还通过采用双缓冲技术来实现显示内容的绘制,可以在帧速较高的场景下避免闪烁现象的发生。
[0107]本实施例提供的信息显示方法,还通过在待显示的信息是动画时,适当地进行丢帧处理,可以在绘制显示内容的计算量较大时,保证显示内容的流畅性。
[0108]请参考图4,其示出了本发明一个实施例提供的信息显示装置的结构示意图。该信息显示装置可以通过软件、硬件或者两者的结合实现成为客户端的全部或者一部分。该信息显示装置,包括:[0109]消息截获模块420,用于截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息;
[0110]内容绘制模块440,用于在截获到的所述消息是用于触发刷新桌面壁纸窗口内的显示内容的绘制消息时,根据待显示的信息绘制显示内容;
[0111]内容显示模块460,用于在所述桌面壁纸窗口显示所述显示内容。
[0112]综上所述,本实施例提供的信息显示装置,通过截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息;在截获到的消息是绘制消息时,根据待显示的信息绘制显示内容;在桌面壁纸窗口显示该显示内容;解决了浮窗显示在最前一层会影响用户的正常操作的问题;达到了显示内容显示在位于图标层下方的桌面壁纸窗口所在的层,用户点击图标时,会直接激发图标所对应的功能,不会影响用户的正常操作的效果。
[0113]请参考图5,其示出了本发明一个实施例提供的信息显示装置的结构示意图。该信息显示装置可以通过软件、硬件或者两者的结合实现成为客户端的全部或者一部分。该信息显示装置,包括:
[0114]消息截获模块420,用于截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息;
[0115]内容绘制模块440,用于在截获到的所述消息是用于触发刷新桌面壁纸窗口内的显示内容的绘制消息时,根据待显示的信息绘制显示内容;
[0116]内容显示模块460,用于在所述桌面壁纸窗口显示所述显示内容。
[0117]在可能的实施方式中,所述消息截获模块420,包括:
[0118]线程查询单元422,用于查询所述桌面壁纸窗口所对应的线程;
[0119]代码注入单元424,用于使用钩子Hook技术向所述桌面壁纸窗口所对应的线程注入自定义代码;
[0120]函数替换单元426,用于通过所述自定义代码将所述桌面壁纸窗口所对应的消息处理函数替换为自定义消息处理函数;
[0121]消息截获单元428,用于通过所述自定义消息处理函数截获操作系统向所述桌面壁纸窗口的消息处理函数所发送的消息。
[0122]在可能的实施方式中,所述线程查询单元422,包括:
[0123]句柄查找子单元,用于在资源管理器进程中根据所述桌面壁纸窗口所对应的类名查找所述桌面壁纸窗口的句柄;
[0124]线程查找子单元,用于根据所述桌面壁纸窗口的句柄查找所述桌面壁纸窗口所在的线程。
[0125]在可能的实施方式中,所述内容绘制模块440,包括:
[0126]缓冲区创建单元442,用于在内存中创建与所述桌面壁纸窗口的画布相一致的缓冲区;
[0127]内容绘制单元444,用于在所述缓冲区中根据待显示的信息绘制所述显示内容;
[0128]所述内容显示模块460,用于将所述缓冲区中的所述绘制内容拷贝到所述桌面壁纸窗口的画布上进行显示。
[0129]在可能的实施方式中,所述内容绘制单元444,包括:
[0130]时刻检测子单元和图像跳过子单元;[0131]所述时刻检测子单元,用于若所述待显示的信息是包括连续的若干帧图像的动画,则检测当前时刻是否已经超过待绘制的当前帧图像的时间轴时刻;
[0132]所述图像跳过子单元,用于若检测出当前时刻已经超过待绘制的当前帧图像的时间轴时刻,则跳过所述当前帧图像,绘制下一帧图像。
[0133]在可能的实施方式中,所述装置,还包括:
[0134]消息交回模块480,用于在截获到的所述消息不是所述绘制消息时,将所述消息继续交由所述桌面壁纸窗口的消息处理函数进行处理。
[0135]综上所述,本实施例提供的信息显示装置,通过在截获到用于触发刷新桌面壁纸窗口内的显示内容的绘制消息后,使用自定义的显示内容代替桌面壁纸窗口中的默认显示的壁纸内容,也即在位于图标一层下面的桌面壁纸窗口一层显示自定义的显示内容;解决了浮窗显示在最前一层会影响用户的正常操作的问题;达到了显示内容显示在位于图标层下方的桌面壁纸窗口所在的层,用户点击图标时,会直接激发图标所对应的功能,不会影响用户的正常操作的效果。
[0136]本实施例提供的信息显示装置,还通过自定义消息处理函数来截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息,实现了绘制消息的拦截,使得客户端能够在桌面壁纸窗口中显示自定义的显示内容。
[0137]本实施例提供的信息显示装置,还通过采用双缓冲技术来实现显示内容的绘制,可以在帧速较高的场景下避免闪烁现象的发生。
[0138]本实施例提供的信息显示装置,还通过在待显示的信息是动画时,适当地进行丢帧处理,可以在绘制显示内容的计算量较大时,保证显示内容的流畅性。
[0139]需要说明的是:上述实施例提供的信息显示装置在显示信息时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的信息显示装置与信息显示方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0140]请参考图6,其示出了本发明一个实施例提供的终端的结构示意图。所述终端600包括中央处理单元(CPU) 601、包括随机存取存储器(RAM) 602和只读存储器(ROM) 603的系统存储器604,以及连接系统存储器604和中央处理单元601的系统总线605。所述终端600还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)606,和用于存储操作系统613、应用程序614和其他程序模块615的大容量存储设备607。
[0141]所述基本输入/输出系统606包括有用于显不信息的显不器608和用于用户输入信息的诸如鼠标、键盘之类的输入设备609。其中所述显示器608和输入设备609都通过连接到系统总线605的输入输出控制器610连接到中央处理单元601。所述基本输入/输出系统606还可以包括输入输出控制器610以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器610还提供输出到显示屏、打印机或其他类型的输出设备。
[0142]所述大容量存储设备607通过连接到系统总线605的大容量存储控制器(未示出)连接到中央处理单元601。所述大容量存储设备607及其相关联的计算机可读介质为终端600提供非易失性存储。也就是说,所述大容量存储设备607可以包括诸如硬盘或者CD-ROM驱动器之类的计算机可读介质(未示出)。
[0143]不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM、EEPR0M、闪存或其他固态存储其技术,CD-ROM、DVD或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器604和大容量存储设备607可以统称为存储器。
[0144]根据本发明的各种实施例,所述终端600还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即终端600可以通过连接在所述系统总线605上的网络接口单元611连接到网络612,或者说,也可以使用网络接口单元611来连接到其他类型的网络或远程计算机系统(未示出)。
[0145]所述存储器还包括一个或者一个以上的程序,所述一个或者一个以上程序存储于存储器中,所述一个或者一个以上程序包含用于进行本发明实施例提供的信息显示方法的指令。
[0146]上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0147]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0148]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种信息显示方法,其特征在于,所述方法包括: 截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息; 在截获到的所述消息是用于触发刷新所述桌面壁纸窗口内的显示内容的绘制消息时,根据待显示的信息绘制显示内容; 在所述桌面壁纸窗口显示所述显示内容。
2.根据权利要求1所述的方法,其特征在于,所述截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息,包括: 查询所述桌面壁纸窗口所对应的线程; 使用钩子Hook技术向所述桌面壁纸窗口所对应的线程注入自定义代码; 通过所述自定义代码将所述桌面壁纸窗口所对应的消息处理函数替换为自定义消息处理函数; 通过所述自定 义消息处理函数截获操作系统向所述桌面壁纸窗口的消息处理函数所发送的消息。
3.根据权利要求2所述的方法,其特征在于,所述查询所述桌面壁纸窗口所对应的线程,包括: 在资源管理器进程中根据所述桌面壁纸窗口所对应的类名查找所述桌面壁纸窗口的句柄; 根据所述桌面壁纸窗口的句柄查找所述桌面壁纸窗口所在的线程。
4.根据权利要求1所述的方法,其特征在于,所述根据待显示的信息绘制显示内容,包括: 在内存中创建与所述桌面壁纸窗口的画布相一致的缓冲区; 在所述缓冲区中根据待显示的信息绘制所述显示内容; 所述在所述桌面壁纸窗口显示所述显示内容,包括: 将所述缓冲区中的所述绘制内容拷贝到所述桌面壁纸窗口的画布上进行显示。
5.根据权利要求4所述的方法,其特征在于,所述在所述缓冲区中根据待显示的信息绘制所述显示内容,包括: 若所述待显示的信息是包括连续的若干帧图像的动画,则检测当前时刻是否已经超过待绘制的当前帧图像的时间轴时刻; 若检测出当前时刻已经超过待绘制的当前帧图像的时间轴时刻,则跳过所述当前帧图像,绘制下一帧图像。
6.根据权利要求1所述的方法,其特征在于,所述截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息之后,还包括: 在截获到的所述消息不是所述绘制消息时,将所述消息继续交由所述桌面壁纸窗口的消息处理函数进行处理。
7.一种信息显示装置,其特征在于,所述装置包括: 消息截获模块,用于截获操作系统向桌面壁纸窗口的消息处理函数所发送的消息;内容绘制模块,用于在截获到的所述消息是用于触发刷新所述桌面壁纸窗口内的显示内容的绘制消息时,根据待显示的信息绘制显示内容; 内容显示模块,用于在所述桌面壁纸窗口显示所述显示内容。
8.根据权利要求7所述的装置,其特征在于,所述消息截获模块,包括: 线程查询单元,用于查询所述桌面壁纸窗口所对应的线程; 代码注入单元,用于使用钩子Hook技术向所述桌面壁纸窗口所对应的线程注入自定义代码; 函数替换单元,用于通过所述自定义代码将所述桌面壁纸窗口所对应的消息处理函数替换为自定义消息处理函数; 消息截获单元,用于通过所述自定义消息处理函数截获操作系统向所述桌面壁纸窗口的消息处理函数所发送的消息。
9.根据权利要求8所述的装置,其特征在于,所述线程查询单元,包括: 句柄查找子单元,用于在资源管理器进程中根据所述桌面壁纸窗口所对应的类名查找所述桌面壁纸窗口的句柄; 线程查找子单元,用于根据所述桌面壁纸窗口的句柄查找所述桌面壁纸窗口所在的线程。
10.根据权利要求7所述的装置,其特征在于,所述内容绘制模块,包括: 缓冲区创建单元,用于在内存中创建与所述桌面壁纸窗口的画布相一致的缓冲区; 内容绘制单元,用于在所述缓冲区中根据待显示的信息绘制所述显示内容; 所述内容显示模块,用于将所述缓冲区中的所述绘制内容拷贝到所述桌面壁纸窗口的画布上进行显示。
11.根据权利要求10所述的装置,其特征在于,所述内容绘制单元,包括: 时刻检测子单元和图像跳过子单元; 所述时刻检测子单元,用于若所述待显示的信息是包括连续的若干帧图像的动画,则检测当前时刻是否已经超过待绘制的当前帧图像的时间轴时刻; 所述图像跳过子单元,用于若检测出当前时刻已经超过待绘制的当前帧图像的时间轴时刻,则跳过所述当前帧图像,绘制下一帧图像。
12.根据权利要求7所述的装置,其特征在于,所述装置,还包括: 消息交回模块,用于在截获到的所述消息不是所述绘制消息时,将所述消息继续交由所述桌面壁纸窗口的消息处理函数进行处理。
【文档编号】G06F3/0481GK104020973SQ201410212110
【公开日】2014年9月3日 申请日期:2014年5月19日 优先权日:2014年5月19日
【发明者】林康明, 赵松, 李华东 申请人:广州酷狗计算机科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1