有两种常用的方式,可以让Windows可以以兼容模式启动EXE程序。
方法1、修改注册表,永久模式(右键-》属性-》兼容模式,也是通过修改注册表达到兼容模式启动EXE的)
A、以WINXPSP3兼容模式,注册表命令行
reg.exe Add "HKLM\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "PATH_TO_EXE" /d "WINXPSP3"
B、以WINXPSP3兼容模式,注册表文件
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers] "PATH_TO_EXE"="WINXPSP3"
方法2、设置环境变量,单次运行
#注意:__COMPAT_LAYER前面是两个下划线 #两个LayerName之间用空格隔开 #!表示不可以使用该兼容模式 set __COMPAT_LAYER=[!]LayerName1 [LayerName2 ...] #用WinXPsp3兼容模式启动程序 set __COMPAT_LAYER=WINXPSP3 #用WinXPsp3兼容模式启动程序,并禁用主题 set __COMPAT_LAYER=WINXPSP3 DISABLETHEMES #以管理员身份、用WinXPsp3兼容模式启动程序,并禁用主题 set __COMPAT_LAYER=WINXPSP3 DISABLETHEMES RUNASADMIN #禁用兼容模式 set __COMPAT_LAYER=
可用的设置选项有:
| LayerName | 含义 |
| 兼容模式(Compatibility Modes) | |
| WIN95 | Windows 95 |
| WIN98 | Windows 98 |
| WIN4SP5 | Windows NT 4.0 SP5 |
| WIN2000 | Windows 2000 |
| WINXPSP2 | Windows XP SP2 |
| WINXPSP3 | Windows XP SP3 |
| VISTARTM | Vista |
| VISTASP1 | Vista SP1 |
| VISTASP2 | Vista SP2 |
| WIN7RTM | Windows 7 |
| WINSRV03SP1 | Windows Server 2003 SP1 |
| WINSRV08SP1 | Windows Server 2008 SP1 |
| 显示设置(Display Settings) | |
| DISABLETHEMES | 禁用主题 |
| 640X480 | 以640×480分辨率进行 |
| HIGHDPIAWARE | 高DPI设置时,禁用显示缩放 |
| 256COLOR | 以256色运行 |
| DISABLEDWM | 禁用桌面组合 |
| 权限设置(Privilege Level) | |
| RUNASADMIN | 管理员权限运行EXE |
| RUNASINVOKER | 以调用者权限运行EXE |
| RUNASHIGHEST | 以用户最高权限运行EXE |
| Win8 | |
| ELEVATECREATEPROCESS | 子进程将获取一个UAC提升权限对话框 |
| PINDLL | DLL内存常驻 |
| DISABLEUSERCALLBACKEXCEPTION | 禁用用户回调异常 |
| VIRTUALIZEDELETE | 该模式拦截受保护文件上的删除操作,防止应用由于未处理删除操作中的异常而失败 |
| WRPMITIGATION | 当应用尝试写入、修改或删除Windows受保护文件或注册表项时,该模式返回成功(实际上没有完成该操作) |
| DXMAXIMIZEDWINDOWEDMODE | 该模式标识进入全屏模式的应用并指将这些应用重定向到最大化Window模式 |