有两种常用的方式,可以让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模式 |