更改 Windows 7 默认滚动条

更改 Windows 7 默认滚动条

无意冒犯,但 Windows 7 默认的滚动条不太好。我希望更改它们,最好不使用任何第三方应用程序,更不用说使用任何付费的第三方应用程序。

我听说 Stardock 的 Window Blinds 可以实现这个功能,当然,这是一款付费应用,但我不太确定。Window Blinds 可以只用于更改滚动条吗?

答案1

为了改变应用程序中显示的滚动条,您必须了解 GUI 是如何呈现的。

基本上,GUI(图形用户界面)可以通过以下两种方式之一呈现:

  • 本国的:应用程序要求操作系统呈现特定类型的小部件。Windows 操作系统中有内置小部件;这些小部件出现在内置的 Microsoft 应用程序中,以及使用相同工具包的许多第三方程序中。

  • 风俗:许多应用程序使用自定义小部件工具包或自定义小部件的样式,也称为“非原生”。实现方式是,应用程序请求一个通用的 2d 画布,它基本上是一个空的矩形,并手动将所需的像素“绘制”到该空间中。执行此操作的应用程序是不是调用 Windows 操作系统来请求其自己的本机小部件;相反,他们使用工具包或特定于应用程序的代码来“绘制”它们。

直接或间接使用原生小部件的工具包示例包括:

  • Java SWT
  • 大多数使用 Windows 窗体的 .NET 应用程序,尽管可以使用自定义窗体渲染器
  • 使用 ATL、MFC 或直接使用 Win32 API 的应用程序

自定义工具包的示例包括:

  • GTK+(某些引擎;存在绘制原生 Windows 小部件的“原生”引擎)
  • Java Swing(Java 仍然进行自己的绘制,但它使用来自本机窗口小部件外观的图形资源来仿真或者近似原生小部件的外观和感觉)
  • Qt(某些引擎;存在一个“本机”引擎,它近似于本机 Windows 小部件或在可能的情况下直接使用它们)
  • Juce(类似于 Java Swing)

现在,当您说“更改 Windows 7 默认滚动条”时,我认为您是在谈论如何更改本国的滚动条出现。因为很难或不可能力量每个使用滚动条的应用程序都以特定方式绘制它,因为应用程序可能具有手动绘制滚动条的自定义代码,然后您无法轻松拦截它使用的代码并进行更改。

特别是,如果你正在运行的应用程序使用众所周知的自定义工具包,比如 Java Swing,你可能能够强制定制特定工具包的 UI;但您必须基于“每个工具包”应用这些更改;并且如果应用程序在没有任何工具包的画布上使用硬编码绘图,您仍然会很不走运。

例如,WindowBlinds 使用 DLL“钩子”将其自己的代码注入系统上的图形应用程序。WindowBlinds 代码会拦截对 Windows API 的调用,这些调用会请求本国的小部件,并且它不绘制默认样式的小部件,而是根据 WindowBlinds 主题提供的主题数据绘制小部件。此 DLL 挂钩基本上是唯一的方法;没有通用的注册表修复或资源破解可以修改本机应用程序的图形元素。Windows 的内置主题/样式功能不是非常灵活,因此需要第三方应用程序(如 WindowBlinds),它将自定义代码注入您运行的每个应用程序,以执行从默认滚动条到自定义滚动条的转换。

聪明的应用程序(或具有某些安全权限的应用程序)可以阻止此 DLL 挂钩,因为它对应用程序中的信息完整性构成了潜在的安全风险:如果不受信任的程序可以成功挂钩程序中的 DLL,它就可以执行任何事物本质上,包括损害该应用程序的功能限制。因此,某些应用程序出于安全原因,禁止这种修改。

简短的回答是你应该只需使用 WindowBlinds(来吧,付钱!),但请注意,你永远无法实现 100% 的滚动条替换全部应用程序,因为存在多种不同的渲染方式。

相关内容