一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种稳定运行的Windows系统主题的更改方法及装置与流程

2022-04-09 06:51:47 来源:中国专利 TAG:

一种稳定运行的windows系统主题的更改方法及装置
技术领域
1.本发明涉及通信技术领域,尤其涉及一种稳定运行的windows系统主题的更改方法及装置。


背景技术:

2.目前,在用户自定义windows系统主题时,windows自带的主题系统需要从官网里下载官方的主题文件才能正常使用,这无疑给用户的使用带来了许多不便。
3.有鉴于此,市面上相关产品技术主要是通过破解的方式,将windows主题文件里的签名给破解之后再进行主题素材的更改。但这种更改方式存在极大的不稳定性,这种不稳定性包括:破坏系统的稳定性,容易导致用户的系统出现蓝屏等问题;功能覆盖不全面,不同版本的系统的校验签名模块的方法都不一样,需要针对多个系统版本做多个特殊处理的问题;功能的体验差,甚至需要多次重启计算机才能真正生效,或因覆盖不全面而导致修改的效果无法生效的问题。
4.因此,现在急需一种在不对windows系统进行破解、保证系统稳定运行的前提下,快速、高效自定义系统主题的方法。


技术实现要素:

5.有鉴于此,本发明实施例提供一种稳定运行的windows系统主题的更改方法及装置,以解决现有更改windows系统主题时,系统稳定性低、更改不能快速生效的问题。
6.第一方面,本发明实施例提供一种稳定运行的windows系统主题的更改方法,所述方法包括:
7.将预设的调用模块注入当前windows系统中;
8.根据所述预设的调用模块获取钩子程序;
9.解析当前windows系统主题文件,得到当前系统主题文件的关键码映射集合和变量集合;
10.根据所述关键码映射集合和变量集合,得到系统主题原始状态参数;
11.调用所述钩子程序,对所述系统主题原始状态参数进行修改。
12.可选的,所述将调用模块注入当前windows系统中具体为:
13.将所述预设的调用模块注入到windows系统中的桌面窗口管理器和文件资源管理器进程中。
14.可选的:
15.所述关键码映射集合包括当前windows系统中已有系统主题的系统功能组件;
16.所述变量集合包括当前windows系统中的系统功能组件信息、部件信息、状态信息和属性值。
17.可选的,所述调用钩子程序包括第一钩子程序、第二钩子程序和第三钩子程序,所述对系统主题原始状态参数进行修改具体为:
18.通过所述第一钩子程序,调用所述系统主题原始状态参数中的系统位图数据流,并通过所述第三钩子程序将用户自定义的位图与所述系统位图数据流进行合并;
19.通过所述第二钩子程序,调用所述系统主题原始状态参数中的系统位图资源参数,并通过所述第三钩子程序将所述系统位图资源参数替换为用户自定义参数。
20.第二方面,本发明实施例提供一种稳定运行的windows系统主题的更改装置,所述装置包括:
21.注入单元,将预设的调用模块注入当前windows系统中;
22.获取单元,根据所述预设的调用模块获取钩子程序;
23.第一解析单元,解析当前windows系统主题文件,得到当前系统主题文件的关键码映射集合和变量集合;
24.第二解析单元,根据所述关键码映射集合和变量集合,得到系统主题原始状态参数;
25.处理单元,调用所述钩子程序,对所述系统主题原始状态参数进行修改。
26.可选的,所述注入单元还用于:
27.将所述预设的调用模块注入到windows系统中的桌面窗口管理器和文件资源管理器进程中。
28.可选的:
29.所述关键码映射集合包括当前windows系统中已有系统主题的系统功能组件;
30.所述变量集合包括当前windows系统中的系统功能组件信息、部件信息、状态信息和属性值。
31.可选的,所述调用钩子程序包括第一钩子程序、第二钩子程序和第三钩子程序,所述处理单元还用于:
32.通过所述第一钩子程序,调用所述系统主题原始状态参数中的系统位图数据流,并通过所述第三钩子程序将用户自定义的位图与所述系统位图数据流进行合并;
33.通过所述第二钩子程序,调用所述系统主题原始状态参数中的系统位图资源参数,并通过所述第三钩子程序将所述系统位图资源参数替换为用户自定义参数。
34.第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述第一方面所述的稳定运行的windows系统主题的更改方法。
35.第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现前述第一方面所述的稳定运行的windows系统主题的更改方法。
36.本发明实施例提供的一种稳定运行的windows系统主题的更改方法及装置,通过调用钩子程序对当前系统主题原始状态参数进行修改,在保证系统的稳定性的前提下,快速、高效的实现了对包括“任务栏”、“资源管理器”、“开始按钮”等元素在内的系统主题样式自定义,从而实现了对windows系统中,各个主题元素相互之间的视觉统一化,增强了用户自定义主题元素之间的联动性,为创作者提供了更多的发挥空间,进而吸引到更多用户。
附图说明
37.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
38.图1为本发明实施例提供的一种稳定运行的windows系统主题的更改方法的方法流程图;
39.图2为本发明实施例提供的一种稳定运行的windows系统主题的更改装置的结构示意图;
40.图3为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
41.下面结合附图对本发明实施例进行详细描述。
42.应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
43.下面结合附图1,详细说明本发明实施例提供的方案进行说明,图1为本发明实施例提供的一种稳定运行的windows系统主题的更改方法流程图,在本发明实施例中实施主体为电子设备。该电子设备可为终端设备,例如,个人电脑、台式电脑等。该电子设备也可为服务器。如图1所示,本实施例的方法具体包括以下步骤:
44.步骤110、将预设的调用模块注入当前windows系统中。
45.预设的调用模块可以理解为:用户为调用所需钩子程序工作,针对系统应用程序接口(application programming interface,api)预先设置的工作模块。
46.在一个具体的例子中,在注入预设的调用模块时,将预设的调用模块注入到windows系统中的桌面窗口管理器(dwm.exe)和文件资源管理器(explorer.exe)进程中。预设的调用模块的具体实现形式可以是.dll的文件。
47.优选的,注入调用模块的方式可以采用远程注入的方式,使得注入过程更加便利。
48.步骤120、根据预设的调用模块获取钩子程序。
49.钩子(hook)是一种特殊的消息处理机制,它可以监视系统或者进程中的各种事件消息,截获发往目标窗口的消息并进行处理。用户可以在系统中自定义钩子,用来监视系统中特定事件的发生,完成特定功能。因为钩子会影响系统中所有的应用程序,所以钩子程序必须放在独立的动态链接库(dll)中。钩子的系统类型通常可以分为两种,第一种是修改目标函数,用cpu的jump指令覆盖目标函数起始的5个字节,称之为inline hook;第二种是修改目标函数所在模块的导入段的地址,称为iathook。本技术中,不对钩子的类型进行限定。
50.在将预设的调用模块注入当前windows系统中之后,再根据已注入调用模块获取钩子程序,用以实现对系统中窗口、任务栏等主题元素进行样式的自定义。
51.步骤130、解析当前windows系统主题文件,得到当前系统主题文件的关键码映射集合和变量集合。
52.在一个具体的例子中,读取并解析当前windows系统主题文件,例如“msstyles”格
式的文件。解析之后可以获得两个信息:关键码映射集合和变量集合。更进一步具体的,关键码映射集合可以是操作系统中“cmap”参数的集合;变量集合可以是操作系统中的“variant”参数的集合。
53.其中,关键码映射集合包括:当前windows系统中已有系统主题的系统功能组件(class);变量集合包括:系统功能组件信息(class id)、部件信息(part id)、状态信息(state id)和属性值(property)。更进一步具体的,class可以是开始菜单的列表页;part可以是为列表页里的各个item选项;state可以是为每个item选项的状态,包括普通态、选中态、点击态以及禁用态等;property可以是为每个状态的数据结构属性,包括枚举类型(enum)、整形(int)以及字符串类型等。
54.步骤140、根据关键码映射集合和变量集合,得到系统主题原始状态参数。
55.系统主题原始状态参数包括:当前系统位图数据流和当前系统位图资源参数。当前系统位图数据流可以理解为当前系统自身渲染的位图数据流;当前系统位图资源参数可以理解为当前位图资源在数据流的具体位置,以及图片宽高等信息参数。
56.也就是说,根据关键码映射集合和变量集合中的数据,可以区分当前渲染的位置的原始属性如何,以及确认需要修改的信息当前在哪一个位置。
57.步骤150、调用钩子程序,对系统主题原始状态参数进行修改。
58.在一个具体的例子中,因为要修改系统窗口的边框、任务栏或开始按钮等样式,因此需要多个钩子程序。
59.钩子程序包括:第一钩子程序、第二钩子程序和第三钩子程序。第一钩子程序可以理解为用于调用已在上述步骤得到的系统主题原始状态参数中的系统位图数据流的钩子程序,例如“getthemestream”函数;第二钩子程序可以理解为用于调用已在上述步骤得到的系统主题原始状态参数中系统位图资源参数的钩子程序,例如“getthemerect和getthememargins”函数;第三钩子程序可以理解为对已在上述步骤得到的系统主题原始状态参数进行修改的钩子程序,例如“createbitmap和createbitmapfromhbitmap”函数。
60.通过第一钩子程序,调用系统主题原始状态参中的系统位图数据流,并通过第三钩子程序,将自定义的位图与系统位图数据流进行合并。这一过程可以理解为:通过钩子调用系统主题原始状态参数中的系统自身渲染的位图数据流,再将自定义的位图通过动态拼接的方式与系统自身渲染的位图数据流合并,实现对系统任务栏或开始按钮等样式的自定义修改的过程。
61.然后,通过第二钩子程序,调用系统主题原始状态参数中系统位图资源参数,并通过第三钩子程序将当前系统位图资源参数替换为用户自定义参数。这一过程可以理解为:通过钩子调用系统主题原始状态参数中的当前位图资源在数据流的具体位置,以及图片宽高等信息,再将之替换成自定义的数据,实现对系统任务栏或开始按钮等样式的自定义修改的过程。
62.经过上述110-150步骤,用户可以对windows系统中的“任务栏”、“开始按钮”、“资源管理器”等主题元素进行局部素材替换。例如,将“资源管理器”的右上角3个按钮(最小化、最大化、关闭)的样式替换成用户自定义的图片样式。
63.本技术提供的一种稳定运行的windows系统主题的更改方法,通过调用钩子程序对当前系统主题原始状态参数进行修改,在保证系统的稳定性的前提下,快速、高效的实现
了对包括“任务栏”、“资源管理器”、“开始按钮”等元素在内的系统主题样式自定义,从而实现了对windows系统中各个主题元素相互之间的视觉统一化,增强了用户自定义主题元素之间的联动性,为创作者更多的发挥空间提供了,进而吸引到更多用户。
64.相应的,本技术实施例还提供了一种用于实现上述步骤110-150的稳定运行的windows系统主题的更改装置。图2为本技术实施例提供的一种稳定运行的windows系统主题的更改装置结构示意图,如图2所示,本实施例的稳定运行的windows系统主题的更改装置可以包括:注入单元210、获取单元220、第一解析单元230、第二解析单元240和处理单元250。
65.注入单元210,将预设的调用模块注入当前windows系统中;
66.获取单元220,根据所述预设的调用模块获取钩子程序;
67.第一解析单元230,解析当前windows系统主题文件,得到当前系统主题文件的关键码映射集合和变量集合;
68.第二解析单元240,根据所述关键码映射集合和变量集合,得到系统主题原始状态参数;
69.处理单元250,调用所述钩子程序,对所述系统主题原始状态参数进行修改。
70.可选的,所述注入单元210还用于:
71.将所述预设的调用模块注入到windows系统中的桌面窗口管理器和文件资源管理器进程中。
72.可选的:
73.所述关键码映射集合包括当前windows系统中已有系统主题的系统功能组件;
74.所述变量集合包括当前windows系统中的系统功能组件信息、部件信息、状态信息和属性值。
75.可选的,所述调用钩子程序包括第一钩子程序、第二钩子程序和第三钩子程序,所述处理单元250还用于:
76.通过所述第一钩子程序,调用所述系统主题原始状态参数中的系统位图数据流,并通过所述第三钩子程序将用户自定义的位图与所述系统位图数据流进行合并;
77.通过所述第二钩子程序,调用所述系统主题原始状态参数中的系统位图资源参数,并通过所述第三钩子程序将所述系统位图资源参数替换为用户自定义参数。
78.本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
79.相应地,本发明实施例提供的一种稳定运行的windows系统主题的更改装置还可用另一种结构实现。图3为本发明提供的一个电子设备实施例的结构示意图,可以实现本发明图1、所示实施例的流程,如图3所示,上述电子设备可以包括:壳体31、处理器32、存储器33、电路板34和电源电路35。其中,电路板34安置在壳体31围成的空间内部,处理器32和存储器33设置在电路板34上;电源电路35,用于为上述电子设备的各个电路或器件供电;存储器33用于存储可执行程序代码;处理器32通过读取存储器33中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述实施例所述的方法。
80.处理器32对上述步骤的具体执行过程以及处理器32通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1所示实施例的描述,在此不再赘述。
81.该电子设备:提供计算服务的设备,电子设备的构成包括处理器、硬盘、内存、系统总线等,电子设备和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
82.需要说明的是,在本文中,诸如术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
83.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
84.尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
85.在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读存储介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读存储介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
86.计算机可读存储介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读存储介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
87.应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。
88.在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
89.本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
90.为了描述的方便,描述以上装置是以功能分为各种单元/模块分别描述。当然,在实施本发明时可以把各单元/模块的功能在同一个或多个软件和/或硬件中实现。
91.通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质
上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献