标题：gdi++
使用技巧
GDI++的精髓在于它的配置文件的编写，不同的系统环境、显示器类型及使用者的视觉习惯都需要不同的配置文件来实现最后实际输出效果的最优化。
使用GDI++的前提是你使用的是支持灰阶渲染的字体，除了系统自带的几个中文字体不支持灰阶之外，现在较为流行的方正、华文、华康和汉仪等等中文字体都支持灰阶渲染。不要用着宋体却问我为什么效果没变！下文如无特别说明所指均为老版（Freetype版）的GDI++，并非新的“氦”版。
GDI++的安装这里就不多讲了，下载文末附件里的自动安装版双击就自动安装好并设为开机自动加载了。GDI++的安装唯一要注意的一点是要尽量安装在靠 近系统核心的地方，即靠近system32文件夹的地方（附件中的自动安装版安装在windows\system32\GDI++目录下，以下内容也以此 文件夹为例。），虽然官方的文档并没有特别说明这一点，但根据网友使用的反馈来看安装在靠近核心的地方会相对较为稳定，不知道是什么原因。
加载方式共有三种
第一种是手动将要渲染的程序拖到GDI++安装文件夹中的gdi++.exe上，这样这个程序的字体就被GDI++所渲染 了。第二种方法是先创建一个gditray.exe的快捷方式，然后把快捷方式中的目标部分改为C:\WINDOWS\system32\gdi++\gditray.exe "-on"，即在原来目标的后面加个空格，然后是"-on"就可以了，把这个快捷方式放到开始菜单的启动文件夹里，这样开机的时候GDI++就会自动开始 渲染了。最后一种方法是注册表加载法，也是我最推崇的方法，将以下内容写入记事本：
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
"AppInit_DLLs"="C:\\WINDOWS\\system32\\GDI++\\gdi++.dll"
并保存为GDI++.reg，双击导入即可。第一种是为临时想用用试试的人准备的，无法渲染系统字体。第二种是全局加载，即整个系统都会被 渲染，而且系统托盘中有图标，可以轻易地停用或者启用GDI++，随意地切换多个配置文件或者重新渲染。但由于启动文件夹的优先级较低，所以往往要到进入 桌面后才启动，桌面字体会经历一次由难看到清晰的转变，当然，在这之前弹出的所有对话框也不会被渲染。那为什么要推崇用注册表加载呢？注册表法也是属于全 局加载，但他的优先级极高，WindowsXP的“欢迎使用”界面还没出现它就已经加载了，而且稳定性相当好，当你配置文件已定，要准备进入长期使用的时 候这种方法是首选。不过缺点是这个键值也较为容易被病毒木马所利用，所以大部分杀毒软件都会对这个键值有监控，甚至没有任何提示直接阻止，像瑞星2008 那个LJ。而且更换配置文件或者修改配置后像查看效果较为不便，想查看效果需要重启的软件。
接下来讲GDI++配置文件的编写，这是我当前所用的Freetype版的配置文件：
[General]
;配置文件名
Name=fonlan
; 自动挂钩子进程
; [0:Disable] 1:Enable
HookChildProcesses=1
; 字体微调
情况一
当FontLoader=0（在下面）时：
;0：使用字体内部的微调，字体内部没有微调的话就和选1时的效果一样；
;1：不使用微调；
;2：用freetype对字体进行微调。
;（注：1.下面的选了4或5的时候，就算是某个没有内部微调的字体，在此项设定为0时也还是会被应用微调；2.有内部微调的英文字体在下面的AntiAliasMode选择4或5时，推荐将此项设为0。）
;
情况二
当FontLoader=1（在下面）时：0和2完全一样，其他同情况一。
HintingMode=2
; 抗锯齿方式，将此值设的过大的时候可能反而会变得五彩、看起来更费劲，GammaCorrection=1时无效。
; -1:Disable [0:Normal] 1:Light 2:LCD(RGB) 3:LCD(GBR) 4:Light-LCD(RGB) 5:Light-LCD(GBR)
AntiAliasMode=4
; 交付 gdi++ 处理的最大尺寸（单位为像素）
; 可调范围0～2147483647,0表示全尺寸
MaxHeight=300
;只有在FontLoader=0（在下面）时此项设置才有效。建议选0。
UseMapping=0
;字体链接
; 0:Disable 1:Enable
;当FontLoader=0（在下面）时：
;0：什么都不做；
;1：使用注册表里的字体链接设置；
;当FontLoader=1（在下面）时：
;会保持启用的状态，但是所有字体链接的处理会交由WIN32API完成。
FontLink=1
;字体替代
; 0:Disable 1:ini Only 2:ini+Registry
;当FontLoader=0（在下面）时：
;0：什么都不做；
;1：使用该设置文件最下面的设置；
;2：该设置文件最下面的设置和注册表里的设置一起启用。
;当FontLoader=1（在下面）时：
;会保持启用的状态，但是所有字体替代的处理会交由WIN32API完成
FontSubstitutes=2
;字宽设置
; 0:GDI32 1:FreeType
WidthMode=0
;字体载入方法
; 0:FreeType 1:WIN32
FontLoader=1
;粗体字的渲染方法(只对没有单独粗体字文件的字体有效)
; 0:New 1:Old 2:Original FreeType Algorithm
BolderMode=0
;Gamma模式开关
; -1 = Disabled 0 = Use "GammaValue" 1 = sRGB 2 = Aternative
GammaMode=0
;Gamma值(只有上面GammaMode=0的时候此项设置才有效。精确到小数点后一位。)
GammaValue=1.4
;字体轮廓
;数字越大字体就越粗越黑（当字体为黑色时，其他颜色时表现出来的是颜色越深）。精确到小数点后两位。
RenderWeight=1.5
;对比度
;数字越大越锐利，数字越小越发虚。精确到小数点后一位。
Contrast=1.5
;RGB三色全局设置
; 取值范围0～12，-1时无效
TextTuning=0
TextTuningR=-1
TextTuningG=-1
TextTuningB=-1
;字体粗细的单独调整,数字越大越粗，负数也有效，可以使字体更细。
NormalWeight=0
BoldWeight=4
;取值范围-16~+16
;字形为斜体时的倾斜加角
;可以设置字形为斜体时的倾斜加角。正数为右倾，负数为左倾。数字越大加角幅度越大。
;此项设置仅对没有单独斜体字形的字体有效。
ItalicSlant=0
;液晶显示器的优化配置
;0:None 1:Default 2:Light 16:Legacy
LcdFilter=2
;阴影设置
Shadow=1,1,6
;字体缓存、内存的设置
LoadOnDemand=1
CacheMaxFaces=32
CacheMaxSizes=32
CacheMaxBytes=10485760
;强制使用以下字体为系统界面字体
#ForceChangeFont=SIMSUN
[Individual]
;顺序格式=Hinting,AAMode,NormalWeight,BoldWeight,ItalicSlant,Kerning
Tahoma=1
MingLiU=1
PMingLiU=1
微软雅黑 = 3
Lucida Grande = 1
MS Shell Dlg = 1
MS Shell Dlg 2 = 1
[Exclude]
;不渲染的字体列表
FIXEDSYS
Marlett
[ExcludeModule]
;排除的程序列表（gdi++.dll依然会注入以下进程，但不会生效）
imejpmgr.exe
msdev.exe
devenv.exe
winlogon.exe
fontview.exe
SREngPS.EXE
cstrike.exe
xdict.exe
CppIDE.exe
nvsvc32.exe
services.exe
csrss.exe
lsass.exe
svchost.exe
wmiprvse.exe
Safari.exe
spoolsv.exe
ctfmon.exe
scardsvr.exe
conime.exe
SynTPEnh.exe
RTHDCPL.exe
smss.exe
agrsmsvc.exe
oobechk.exe
jqs.exe
[FontSubstitutes]
;字体替换
Microsoft Sans Serif=SimSun
System=SimSun
在实际的调校过程中
主要就是GammaValue、RenderWeight、Contrast和Shadow这四个参数最为重要，他直接决定了Freetype版GDI++在你的电脑上的表现，而我们的微调也主要是调这几个参数。
需要注意的地方
GDI++，尤其是Freetype版，虽然字体渲染效果较为出色，但兼容性较差，和很多软件都有兼容性问题。首先和IE的兼容性问题就不小，使用IE内核的浏览器时，遨游和遨游2开启后进入选项没多久就程序崩溃，世界之窗可以正常运行，但主界面菜单字体会变得比较 大（这点其实可以通过把配置文件中的FontLink值改为0来修正），但可以在设置中制定主界面所用字体及字 号。Firefox和Opera与GDI++完全兼容。所以在GDI++环境下浏览器最好选择非IE内核的，如果一 定要使用IE内核建议使用世界之窗2.0。
GDI++和魔兽世界的小地图有冲突，因为魔兽的字体也使用了同样的字体渲染方式。解决方法是使用gditray加载方式，在启动魔兽世界之前关闭GDI++渲染即可。
还有一个比较严重的问题是QQ比较容易崩溃，操作的时候一不小心QQ可能就崩溃了，解决的方法要么把QQ加入GDI++的排除列表，要么把 FontLoad改为1，但全局渲染效果会变差，要么就小心使用，忍受这颗不定时的炸弹，但最彻底的解决方案还是使用氦版的GDI++，QQ不会出现崩溃的情况。
GDI++对迅雷的支持也有限，虽然不会造成迅雷的崩溃，但迅雷一旦开始下载，GDI++便无法渲染迅雷的界面了，不知是什么原因。
工作的方式
是注入到所有正在运行的进程下，拦截所有原本由系统的gdi32完成的字体渲染工作。这两个行为都是极有可能被杀毒软件所误报的，所 以请务必把gdi++添加到杀毒软件的可信任程序列表，否则他是无法工作的。还有通过注册表全局加载的时候，由于使用的是 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows项下的AppInit_DLLs来实现开机自动加载，但由于这个键也是病毒木马常用的启动项，所以几 乎所有的安全软件都会对这个键有所监控，请在安装前先关闭安全软件，否则可能出现无法导入注册表的情况。
配置文件有两种放法
：一种是把配置文件直接保存成gdi++.ini，放在GDI++的安装目录下，优点是目录结构简单、清晰，建议使用注册 表全局渲染时使用。缺点是只能使用一种配置文件，使用Gditray加载时无法在右键中切换配置。另一种方法是在GDI++的安装文件夹中新建一个名为 ini的文件夹，将所有的配置文件放在此文件夹下，然后GDI++安装文件夹下的gdi++.ini按如下格式编写：
[General]
AlternativeFile=.\ini\蓝枫冰月.ini
[GdiTray]
MultiINISelector=1
RedrawDelay=50
CoolMenu=1