属性 - 兼容性
EXE文件属性中有兼容性标签,当有些老版本软件不能正常运行时经常会调整这里的设置。
image.png
上面的所有选项都写在注册表中,其中“更改所有用户的设置”保存在HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
中,当前用户设置保存在HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
中。
Layers下以进程的全路径为Key,类型为REG_SZ,值为一个以空格的字符串,界面上每个选项对应一个字符串。
比如如果勾选了“以兼容模式运行这个程序”,则注册表值中有 WIN8RTM
,所有选项的取值如下:
选项 | 设置窗口中选项 | 注册表 键值内容 |
---|---|---|
以兼容模式运行这个程序 | Windows 95 | WIN95 |
以兼容模式运行这个程序 | Windows 98 / Windows Me | WIN98 |
以兼容模式运行这个程序 | Windows XP (Service Pack2) | WINXPSP2 |
以兼容模式运行这个程序 | Windows XP (Service Pack3) | WINXPSP3 |
以兼容模式运行这个程序 | Windows Vista | VISTARTM |
以兼容模式运行这个程序 | Windows Vista (Service Pack 1) | VISTASP1 |
以兼容模式运行这个程序 | Windows Vista (Service Pack 2) | VISTASP2 |
以兼容模式运行这个程序 | Windows 7 | WIN7RTM |
以兼容模式运行这个程序 | Windows 8 | WIN8RTM |
简化的颜色模式 | 8位(256)色 | 256COLOR |
简化的颜色模式 | 16位(65536)色 | 16BITCOLOR |
以640x480屏幕分辨率运行 | 勾选 | 640X480 |
禁用全屏优化 | 勾选 | DISABLEDXMAXIMIZEDWINDOWEDMODE |
以管理员身份运行此程序 | 勾选 | RUNASADMIN |
注册此程序以重新启动 | 勾选 | REGISTERAPPRESTART |
使用旧版显示器ICC颜色管理 | 勾选 | TRANSFORMLEGACYCOLORMANAGED |
点击更改高DPI设置还有对DPI缩放逻辑的设置
image.png
选项 | 设置窗口中选项 | 注册表 键值内容 |
---|---|---|
使用此设置修复此程序的缩放问题,而不是“设置中的缩放问题” | 勾选 | PERPROCESSSYSTEMDPIFORCEOFF |
执行以下操作时使用为我的主显示器设置的DPI | 打开此程序 | 无变化可能修改了别的字段 |
执行以下操作时使用为我的主显示器设置的DPI | 已登录到 Windows | 无变化可能修改了别的字段 |
替代高DPI缩放行为。缩放执行 | 勾选 - 应用程序 | HIGHDPIAWARE |
替代高DPI缩放行为。缩放执行 | 勾选 - 系统 | DPIUNAWARE |
替代高DPI缩放行为。缩放执行 | 勾选 - 系统(增强) | GDIDPISCALING DPIUNAWARE |
另外这个注册表值中有以$和~开头,具体什么功能待调研。
其它兼容性设置
还有些特殊字段不是通过 属性 - 兼容性 对话框设置,如:DWM8And16BitMitigation。详细列表见下面表格。
表格来自于微软官网:适用于 Windows 10、Windows 8、Windows 7 & Windows Vista 的兼容性修补程序 - Windows Deployment | Microsoft Learn
另外。下载ADK,然后只安装里面的 程序兼容性助手 可以查看当前系统中用户设置,也可以看到系统自带的兼容性数据库中对程序的识别参数和设置。 见下图:
image.png
解决办法 | 修复说明 |
---|---|
8And16BitAggregateBlts | 受 8/16 位缓解措施缓解的应用程序可能会出现性能问题。 此层聚合所有 blt 操作并提高性能。 |
8And16BitDXMaxWinMode | 使用 DX8/9 且受 8/16 位缓解措施缓解的应用程序在最大化窗口模式下运行。 此层可缓解在全屏模式下显示图形损坏的应用程序。 |
8And16BitGDIRedraw | 此修复修复了使用 GDI 且在 8 位颜色模式下工作的应用程序。 应用程序被迫在 RealizePalette 上重新绘制其窗口。 |
AccelGdipFlush | 此修复提高了 GdipFlush 的速度,后者在 DWM 中存在性能问题。 |
AoaMp4Converter | 此修补程序解决了 AoA Mp4 转换器的显示问题。 |
BIOSRead | 当应用程序在任何 Windows Server® 2003 操作系统上无法访问内核模式驱动程序之外的 Device\PhysicalMemory 对象时,会出现此问题。此修复使 OEM 可执行文件 (.exe) 文件在 BIOS 被查询 到 \Device\Physical 内存信息时,可以使用 GetSystemFirmwareTable 函数而不是 NtOpenSection 函数。 |
BlockRunasInteractiveUser | 当 InstallShield 创建无法完成并生成错误消息或警告的安装程序和卸载程序时,会出现此问题。修复程序阻止 InstallShield 将 RunAs 注册表项的值设置为 InteractiveUser,因为 InteractiveUser 不再具有管理员权限。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 BlockRunAsInteractiveUser 修复程序。 |
ChangeFolderPathToXPStyle | 当应用程序使用 SHGetFolder API 时无法返回 shell 文件夹路径时,需要此修复。修复程序截获对常见 appdata 文件路径的 SHGetFolder路径请求,并返回 Windows® XP 样式的文件路径,而不是 Windows Vista 样式的文件路径。 |
ClearLastErrorStatusonIntializeCriticalSection | 当应用程序无法启动时,会指示此修复。修复程序修改 InitializeCriticalSection 函数调用,以便检查 NTSTATUS 错误代码,然后将最后一个错误设置为ERROR_SUCCESS。 |
CopyHKCUSettingsFromOtherUsers | 当应用程序的安装程序必须在提升的模式下运行,并且依赖于为其他用户提供的 HKCU 设置时,会出现此问题。修复程序扫描现有用户配置文件,并尝试将指定的密钥复制到HKEY_CURRENT_USER注册表区域。可以通过输入相关注册表项作为由 ^ 符号分隔的参数来进一步控制此修复;例如:Software\MyCompany\Key1^Software\MyCompany\Key2。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 CopyHKCUSettingsFromOtherUsers 修复。 |
CorrectCreateBrushIndirectHatch | 选择或裁剪图像时,将显示访问冲突错误消息以及应用程序失败时,会出现此问题。修复更正了传递到 CreateBrushIndirect () 函数的画笔样式阴影值,并使信息能够正确解释。 |
CorrectFilePaths | 当应用程序尝试将文件写入硬盘并被拒绝访问或收到找不到文件或找不到路径的错误消息时,会出现此问题。修复程序将文件路径名称修改为指向硬盘上的新位置。注意: 有关 CorrectFilePaths 应用程序修补程序的更多详细信息,请参阅 使用 CorrectFilePaths 修复。 如果要将此修补程序应用于安装文件,建议将此修补程序与 CorrectFilePathsUninstall 修补程序一起使用。 |
CorrectFilePathsUninstall | 当卸载的应用程序留下文件、目录和链接时,会出现此问题。修复更正应用程序卸载过程使用的文件路径。注意: 有关此修补程序的更多详细信息,请参阅 使用 CorrectFilePathsUninstall 修复程序。 如果要将此修补程序应用于安装文件,建议将此修补程序与 CorrectFilePaths 修补程序一起使用。 |
CorrectShellExecuteHWND | 启动可执行文件 (.exe) 且任务栏项闪烁而不是打开提升提示时,或者当应用程序调用 ShellExecute (Ex) 函数时未提供有效的 HWND 值时,会出现此问题。修复程序接受 ShellExecute (Ex) 调用,然后检查 HWND 值。 如果值无效,则此修复使调用能够使用当前活动的 HWND 值。注意: 有关 CorrectShellExecuteHWND 应用程序修补程序的更多详细信息,请参阅 使用 CorrectShellExecuteHWND 修复。 |
CustomNCRender | 此修复指示 DWM 不呈现非工作区,从而强制应用程序执行自己的 NC 呈现。 这通常为 Windows 提供 XP 外观。 |
DelayApplyFlag | 如果加载了指定的 DLL,则此修复将应用 KERNEL、USER 或 PROCESS 标志。通过在命令提示符下键入以下命令,可以进一步控制此修复:DLL_Name;Flag_Type;Hexidecimal_Value 。其中,DLL_Name是特定 DLL 的名称,包括文件扩展名。 Flag_Type是内核、用户或进程,并且Hexidecimal_Value,从 0x 开始,最长为 64 位。注意: PROCESS 标志类型只能具有 32 位长度。 可以使用反斜杠 () 分隔多个条目。 |
DeprecatedServiceShim | 当应用程序尝试安装依赖于已弃用的服务的服务时,会指出此问题。 将显示一条错误消息。修复将截获 CreateService 函数调用,并从 lpDependencies 参数中删除已弃用的依赖项服务。通过在命令提示符下键入以下命令,可以进一步控制此修复:Deprecated_Service\App_Service/Deprecated_Service2 \App_Service2 。其中,Deprecated_Service 是已弃用的服务的名称,App_Service是要修改的特定应用程序服务的名称;例如,NtLmSsp\WMI。注意: 如果未提供App_Service名称,则会从所有新创建的服务中删除已弃用的服务。注意: 可以使用 /) (正斜杠分隔多个条目。 |
DirectXVersionLie | 当应用程序因找不到 DirectX® 的正确版本号而失败时,会出现此问题。该修复修改 DXDIAGN GetProp 函数调用以返回正确的 DirectX 版本。通过在命令提示符下键入以下命令,可以进一步控制此修复: MAJORVERSION.MINORVERSION.LETTER 例如,9.0.c. |
DetectorDWM8And16Bit | 此修补程序为在 8/16 位显示颜色模式下工作的应用程序提供缓解,因为 Windows 8 不支持这些旧颜色模式。 |
Disable8And16BitD3D | 此修复提高了使用 D3D 呈现且不混合直接绘制的 8/16 位颜色应用程序的性能。 |
Disable8And16BitModes | 此修补程序禁用 8/16 位颜色缓解和枚举 8/16 位颜色模式。 |
DisableDWM | 当某些对象未绘制或对象项目保留在应用程序中的屏幕上时,会出现此问题。该修复暂时禁用不受支持的应用程序的 Windows Aero 菜单主题功能。注意:有关此应用程序修补程序的更多详细信息,请参阅使用 DisableDWM 修复。 |
DisableFadeAnimations | 当应用程序淡化动画、按钮或其他控件无法正常工作时,会指出此问题。该修补程序禁用不受支持的应用程序的淡化动画功能。 |
DisableThemeMenus | 应用程序在尝试检测和使用正确的 Windows 设置时行为不可预测,这表示了此问题。该修复暂时禁用不受支持的应用程序的 Windows Aero 菜单主题功能。 |
DisableWindowsDefender | 该修补程序禁用Windows Defender不适用于Windows Defender的安全应用程序。 |
DWM8And16BitMitigation | 此修补程序为在 8/16 位显示颜色模式下工作的应用程序提供了缓解措施,因为 Windows 8 不支持这些旧版颜色模式。 |
DXGICompat | 该修复允许将特定于应用程序的兼容性指令传递给 DirectX 引擎。 |
DXMaximizedWindowedMode | 使用 DX8/9 的应用程序在最大化窗口模式下运行。 除了 Direct3D 之外,还使用 GDI/DirectDraw 的应用程序需要这一点。 |
ElevateCreateProcess | 当安装、取消安装或更新失败时,会指出此问题,因为主机进程调用 CreateProcess 函数,并返回ERROR_ELEVATION_REQUIRED错误消息。修复程序处理错误代码,并尝试将 CreateProcess 函数与请求的提升一起调用。 如果固定应用程序已有 UAC 清单,则返回错误代码将保持不变。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 ElevateCreateProcess 修复。 |
EmulateOldPathIsUNC | 当应用程序由于错误的 UNC 路径而失败时,会出现此问题。该修补程序交换 PathIsUNC 函数,以返回 Windows 中 UNC 路径的值 True。 |
EmulateGetDiskFreeSpace | 当应用程序无法安装或运行时,会指出此问题,并且会生成一条错误消息,指出没有足够的可用磁盘空间来安装或使用应用程序,即使有足够的可用磁盘空间来满足应用程序要求也是如此。修补程序确定可用空间量,因此,如果可用空间量大于 2 GB,兼容性修补程序将返回值 2 GB,但如果可用空间量小于 2 GB,兼容性修补程序将返回实际可用空间量。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 EmulateGetDiskFreeSpace 修复。 |
EmulateSorting | 当应用程序遇到搜索功能问题时,会出现此问题。该修补程序强制使用 CompareStringW/LCMapString 排序表的应用程序使用较旧版本的表。注意: 有关此 e 应用程序修补程序的更多详细信息,请参阅 使用模拟排序修补程序。 |
EmulateSortingWindows61 | 该修补程序模拟各种 API 的 Windows 7 和 Windows Server 2008 R2 的排序顺序。 |
EnableRestarts | 当应用程序和计算机似乎挂起时,会指出此问题,因为进程无法结束以允许计算机完成其重启进程。该修补程序通过验证并启用 SeShutdownPrivilege 服务权限是否存在,使计算机能够重启并完成安装过程。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 EnableRestarts 修复。 |
ExtraAddRefDesktopFolder | 当应用程序多次调用 Release () 方法并导致对象过早销毁时,会出现此问题。该修补程序通过调用 Desktop 文件夹上的 AddRef () 方法(由 SHGetDesktopFolder 函数返回)来抵消应用程序获取 shell 桌面文件夹的尝试。 |
FailObsoleteShellAPIs | 当应用程序因生成已弃用的 API 调用而失败时,会出现此问题。修复要么完全实现过时的函数,要么实现具有失败的存根的过时函数。注意: 可以在命令提示符下键入 FailAll=1,以取消函数实现并强制所有函数失败。 |
FailRemoveDirectory | 当应用程序卸载过程未删除所有应用程序文件和文件夹时,会出现此问题。当调用时使用与填充码命令行中指定的路径匹配的路径调用时,此修复程序无法调用 RemoveDirectory () 。 仅支持单个路径。 路径可以包含环境变量,但必须是确切的路径 - 不支持任何部分路径。此修补程序可以解决应用程序希望 RemoveDirectory () 立即删除文件夹的问题,即使文件夹的句柄已打开。 |
FakeLunaTheme | 当主题应用程序未正确显示时,会出现此问题:颜色被冲掉或用户界面未详细说明。修复程序截获 GetCurrentThemeName API,并返回 Windows XP 默认主题 (Luna) 的值。注意: 有关 FakeLunaTheme 应用程序修补程序的更多详细信息,请参阅 使用 FakeLunaTheme 修复程序。 |
FlushFile | 如果文件已更新,并且更改不会立即显示在硬盘上,则会指示此问题。 应用程序看不到文件更改。可修复 WriteFile 函数以调用 FlushFileBuffers API,这些 API 会将文件缓存刷新到硬盘上。 |
FontMigration | 修复程序将应用程序请求的字体替换为更好的字体选择,以避免文本截断。 |
ForceAdminAccess | 当应用程序在显式管理员检查期间无法正常运行时,会出现此问题。该修复允许用户在管理员检查期间返回值为 True 来临时模拟管理员组的一部分。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 ForceAdminAccess 修复。 |
ForceInvalidateOnClose | 该修复使依赖于失效消息的应用程序在关闭或隐藏窗口下存在的任何窗口失效。 |
ForceLoadMirrorDrvMitigation | 该修补程序为未自动应用缓解措施的应用程序加载Windows 8镜像驱动程序缓解。 |
FreestyleBMX | 该修补程序解决了与窗口消息顺序相关的应用程序争用条件。 |
GetDriveTypeWHook | 应用程序在安装过程中出现异常行为;例如,安装程序指出它无法安装到用户指定的位置。该修补程序交换 GetDriveType () ,以便仅显示文件路径的根信息。 当应用程序在尝试检索文件路径所在的驱动器类型时传递不完整或格式不正确的文件路径时,这是必需的。 |
GlobalMemoryStatusLie | 此问题由启动应用程序时显示的“计算机内存已满”错误消息指示。该修补程序修改内存状态结构,以便报告 400 MB 的交换文件,而不考虑真正的交换文件大小。 |
HandleBadPtr | 此问题由访问冲突错误消息指示,该错误消息显示,因为 API 在使用参数之前正在执行指针验证。该修复支持使用 InternetSetOptionA 和 InternetSetOptionW 函数的 lpBuffer 验证来执行更多参数验证。 |
HandleMarkedContentNotIndexed | 当更改文件或目录的属性时,应用程序会失败,从而指明了问题。修复程序会截获任何返回文件属性和从 %TEMP% 目录调用的目录的 API 调用,并将 FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 属性重置为其原始状态。 |
HeapClearAllocation | 当分配进程意外关闭时,会指出此问题。该修复使用零来清除应用程序的堆分配。 |
IgnoreAltTab | 在使用特殊组合键时,应用程序无法正常运行时,会出现此问题。修复会截获 RegisterRawInputDevices API,并阻止传递WM_INPUT消息。 此传递失败会强制忽略包含的挂钩,并强制 DInput 使用特定于 Windows 的挂钩。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 IgnoreAltTab 修复。 |
IgnoreChromeSandbox | 修复程序允许 Google Chrome 在 ntdll 加载超过 4 GB 的系统上运行。 |
IgnoreDirectoryJunction | 此问题由应用程序尝试查找或打开文件时显示的读取或访问冲突错误消息指示。该修补程序链接 FindNextFileW、FindNextFileA、FindFirstFileExW、FindFirstFileExA、FindFirstFileW 和 FindFirstFileA API,以防止它们返回目录交接点。注意: 符号链接似乎在 Windows Vista 中开始。 |
IgnoreException | 当应用程序在启动后立即停止运行,或者应用程序启动时仅在屏幕上显示光标时,就会指出此问题。此修复使应用程序能够忽略指定的异常。 默认情况下,此修复会忽略特权模式异常;但是,可以将其配置为忽略任何异常。通过在命令提示符下键入以下命令,可以进一步控制此修复:Exception1;Exception2 |
其中 Exception1 和 Exception2 是要忽略的特定异常。 例如:ACCESS_VIOLATION_READ:1;ACCESS_VIOLATION_WRITE:1。重要: 仅当确定忽略异常是可接受的时,才应使用此兼容性修补程序。 如果选择错误地忽略异常,可能会遇到更多兼容性问题。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 IgnoreException 修复。 | |
IgnoreFloatingPointRoundingControl | 此修复使应用程序能够忽略舍入控制请求,并在应用程序的早期版本中按预期运行。在 C 运行时库中支持浮点 SSE2 之前,将忽略舍入控制请求,该请求默认使用舍入到最接近选项。 此填充码会忽略舍入控制请求,以支持依赖于旧行为的应用程序。 |
IgnoreFontQuality | 当应用程序文本出现扭曲时,会出现此问题。该修复使颜色键字体能够正确处理抗锯齿。 |
IgnoreMessageBox | 当应用程序在意外的操作系统上运行时,会显示一个带有调试或无关内容的消息框来指示问题。修复程序截获 MessageBox* API,并检查它们是否具有特定消息文本。 如果找到匹配的文本,应用程序将继续不显示消息框。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 IgnoreMessageBox 修复。 |
IgnoreMSOXMLMF | 错误消息指出操作系统找不到MSVCR80D.DLL文件。修复会忽略已注册的 MSOXMLMF.DLL 对象,该对象Microsoft ® Office 2007 加载到操作系统中,只要加载 XML 文件,它就使其 CLSID 的 CoGetClassObject 失败。 此兼容性修补程序将只忽略已注册的 MSOXMLMF,并使其 CLSID 的 CoGetClassObject 失败。 |
IgnoreSetROP2 | 该修复会忽略桌面上的读取-修改-写入操作,以避免性能问题。 |
InstallComponent | 修复提示用户 install.Net 3.5 或 .NET 2.0,因为Windows 8不包含 .NET。 |
LoadLibraryRedirect | 该修补程序强制应用程序加载库的系统版本,而不是加载应用程序附带的可再发行版本。 |
LocalMappedObject | 当应用程序尝试在全局命名空间中创建对象失败时,会出现此问题。修复将截获用于创建 对象的函数调用,并将单词 Global 替换为 Local。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 LocalMappedObject 修复。 |
MakeShortcutRunas | 当应用程序由于与访问相关的错误而无法卸载时,会指出此问题。该修补程序会查找任何基于RunDLL.exe的卸载程序,并强制它们在应用程序安装期间使用不同的凭据运行。 应用此修补程序后,安装程序将创建一个快捷方式,指定要在应用程序安装期间运行的匹配字符串,从而允许稍后进行卸载。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 MakeShortcutRunas 修复 |
ManageLinks | 修复程序截获将转到目录或可执行文件 (.exe) 文件的常见 API,然后在将其传递回原始 API 之前转换任何符号或目录接合点。 |
MirrorDriverWithComposition | 该修补程序允许镜像驱动程序在桌面组合中以可接受的性能正常工作。 |
MoveToCopyFileShim | 当应用程序在安装过程中遇到安全访问问题时,会出现此问题。修复会强制运行 CopyFile API,而不是 MoveFile API。 CopyFile API 可避免移动安全描述符,这使应用程序文件能够获取目标文件夹的默认描述符并防止出现安全访问问题。 |
OpenDirectoryAcl | 此问题由错误消息指示,指出您没有访问应用程序的适当权限。此修复降低了对一组指定文件和文件夹的安全特权级别。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 OpenDirectoryACL 修补程序。 |
PopCapGamesForceResPerf | 该修补程序解决了 PopCap 游戏(如 Bejeweled2)中的性能问题。 在某些分辨率下,性能问题在某些低端卡中可见,其中缩放 1024x768 缓冲区以适应显示分辨率。 |
PreInstallDriver | 此修补程序预安装应用程序驱动程序,否则会在初始启动过程中尝试安装或启动驱动程序。 |
PreInstallSmarteSECURE | 该修补程序为使用 SmartSECURE 复制保护的应用程序预安装计算机范围的 CLSID,否则,这些应用程序会在初始启动过程中尝试安装 CLSID。 |
ProcessPerfData | 此问题由未处理的异常错误消息指示,因为应用程序尝试读取进程性能数据注册表值以确定应用程序的另一个实例是否正在运行。该修补程序通过传递假进程性能数据注册表项来处理失败情况,以便应用程序能够感知它是唯一运行的实例。注意: 此问题似乎最常出现在 .NET 应用程序中。 |
PromoteDAM | 此修复程序为电源状态更改通知注册应用程序。 |
PropagateProcessHistory | 当应用程序错误地无法应用应用程序修补程序时,会出现此问题。该修补程序设置_PROCESS_HISTORY环境变量,以便子进程可以在搜索应用程序修补程序时在父目录中查找匹配的信息。 |
ProtectedAdminCheck | 当应用程序由于受保护的管理员权限不正确而无法运行时,会出现此问题。该修补程序解决了应用程序使用非标准管理员检查时出现的问题,从而为作为受保护管理员运行的用户帐户生成误报。 在这种情况下,关联的 SID 存在,但它设置为“仅拒绝”。 |
RedirectCRTTempFile | 修复程序会截获尝试在卷根目录中创建临时文件的失败 CRT 调用,从而将调用重定向到用户临时目录中的临时文件。 |
RedirectHKCUKeys | 当由于用户帐户控制 (UAC) 限制而无法访问应用程序时,会出现此问题。该修补程序会将任何新创建的 HKCU 密钥复制到其他用户的 HKCU 帐户。 此修补程序是 UAC 限制的通用修复,其中 HKCU 密钥是必需的,但在运行时对应用程序不可用。 |
RedirectMP3Codec | 当无法播放 MP3 文件时,会出现此问题。修复将截获缺少筛选器的 CoCreateInstance 调用,然后将其重定向到受支持的版本。 |
RedirectShortcut | 如果应用程序无法通过其快捷方式访问,或者在应用程序卸载过程中未删除应用程序快捷方式,则会出现此问题。该修补程序将重定向在应用程序设置期间创建的所有快捷方式,以便根据指定的路径显示。“开始”菜单快捷方式:显示在所有用户的 \ProgramData\Microsoft\Windows\“开始”菜单目录中。 桌面或快速启动快捷方式:必须手动将快捷方式放在单个用户的桌面或快速启动栏上。出现此问题的原因是 UAC 限制:具体而言,当应用程序安装程序使用提升的权限运行并根据提升的用户的上下文存储快捷方式时。 在这种情况下,受限用户无法访问快捷方式。不能将此修补程序应用于包含清单并提供运行级别的.exe文件。 |
重新启动Elevated | 从主机应用程序启动安装程序、卸载程序或更新程序失败时,会出现此问题。该修复使子.exe文件在难以使用 ElevateCreateProcess 修复或将.exe文件标记为 RunAsAdmin 来确定父进程时,可以使用提升的权限运行。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 RelaunchElevated 修复。 |
RetryOpenSCManagerWithReadAccess | 当应用程序尝试打开服务控制管理器 (SCM) 并收到拒绝访问错误消息时,会出现此问题。该修补程序重试调用并请求一组更受限的权限,其中包括以下内容: |
- SC\_MANAGER\_CONNECT
- SC\_MANAGER\_ENUMERATE\_SERVICE
- SC\_MANAGER\_QUERY\_LOCK\_STATUS
- STANDARD\_READ\_RIGHTS
**注意:** 有关此应用程序修补程序的更多详细信息,请参阅 [使用 RetryOpenSCManagerwithReadAccess 修复](https://learn.microsoft.com/zh-cn/previous-versions/windows/it-pro/windows-7/cc721915(v=ws.10))。
RetryOpenServiceWithReadAccess | 当由于应用程序使用 OpenService () API 测试是否存在特定服务错误消息而无法打开服务时,会出现此问题。修复程序重试 OpenService () API 调用,并验证用户是否具有管理员权限、是否为受保护的管理员,以及是否使用只读访问权限。 应用程序可以通过调用 OpenService () API 来测试服务是否存在,但某些应用程序在进行此检查时会请求所有访问权限。 此修复重试调用,但仅请求只读访问权限。 用户必须是管理员才能正常工作注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 RetryOpenServiceWithReadAccess 修复。 |
RunAsAdmin | 当应用程序无法使用标准用户或受保护的管理员帐户运行时,会出现此问题。此修复使应用程序能够使用提升的权限运行。 此修复等效于在应用程序清单中指定 requireAdministrator。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 RunAsAdmin 修复。 |
RunAsHighest | 当管理员无法查看向标准用户提供只读视图的应用程序的读/写版本时,会出现此问题。该修复使应用程序能够使用最高可用权限运行。 这相当于在应用程序清单中指定 highestAvailable。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 RunAsHighest 修复。 |
RunAsInvoker | 当应用程序未检测到需要提升时,会出现此问题。该修复使应用程序能够使用与创建过程关联的特权来运行,而无需提升。 这相当于在应用程序清单中指定 asInvoker。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 RunAsInvoker 修复。 |
SecuROM7 | 此修补程序使用 SecuROM7 进行复制保护来修复应用程序。 |
SessionShim | 此修补程序使用终端服务名称前缀 (Global 或 Local) 作为 参数,截获来自尝试与另一会话中运行的服务进行交互的应用程序的 API 调用。在命令提示符下,可以提供要修改的对象列表,用双反斜杠 () 分隔值。 或者,可以选择不包含任何参数,以便修改所有对象。重要: 用户无法在 Windows Vista 及更高版本中以会话 0 (全局会话) 登录。 因此,需要访问会话 0 的应用程序会自动失败。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 SessionShim 修复。 |
SetProtocolHandler | 该修补程序将应用程序注册为协议处理程序。通过在命令提示符下键入以下命令,可以进一步控制此修复:Client;Protocol;App 其中,客户端是电子邮件协议的名称,协议是 mailto,App 是应用程序的名称。注意: 仅支持邮件客户端和 mailto 协议。 可以使用反斜杠 () 分隔多个客户端。 |
SetupCommitFileQueueIgnoreWow | 当 32 位安装程序由于需要 64 位驱动程序而无法安装时,会出现此问题。修复了 64 位版本的 Windows 使用的 Wow64 文件系统,以防止 32 位应用程序在应用程序设置期间访问 64 位文件系统。 |
SharePointDesigner2007 | 该修复解决了应用程序 bug,该 bug 在 DWM 中运行时会严重减慢应用程序。 |
ShimViaEAT | 当应用程序失败时,即使应用了已知可修复问题的兼容性修补程序,也会发生此问题。 使用unicows.dll或复制保护的应用程序通常会出现此问题。该修补程序通过修改导出表和取消使用模块包含和排除来应用指定的兼容性修补程序。注意: 有关此应用程序修补程序的详细信息,请参阅 使用 ShimViaEAT 修补程序。 |
ShowWindowIE | 当 Web 应用程序由于选项卡式功能而遇到导航和显示问题时,会出现此问题。修复程序接受 ShowWindow API 调用,以解决当 Web 应用程序确定它位于子窗口中时可能发生的问题。 此修补程序在顶级父窗口上调用真正的 ShowWindow API。 |
SierraWirelessHideCDROM | 该修复修复了 Sierra Wireless Driver 安装,从而防止了 bug 检查。 |
Sonique2 | 应用程序使用无效的窗口样式,该样式在 DWM 中中断。 此修复将窗口样式替换为有效值。 |
SpecificInstaller | 当 GenericInstaller 函数无法选取应用程序安装文件时,会出现此问题。修复程序将应用程序标记为安装程序文件 (例如,setup.exe) ,然后提示提升。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 SpecificInstaller 修复程序。 |
SpecificNonInstaller | 当不是安装程序的应用程序 (且具有足够权限) 从 GenericInstaller 函数生成误报时,会出现此问题。修复标记应用程序,以将其从 GenericInstaller 函数的检测中排除。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 SpecificNonInstaller 修复程序。 |
SystemMetricsLie | 该修补程序将 SystemMetrics 值和 SystemParametersInfo 值替换为以前 Windows 版本的值。 |
艺术文本 | 应用程序接收与 DWM ON 和 DWM OFF 不同的鼠标坐标,这会导致应用程序挂起。 此修补程序可解决此问题。 |
TrimDisplayDeviceNames | 该修补程序剪裁由 EnumDisplayDevices API 返回的显示设备的名称。 |
UIPICompatLogging | 此修复允许记录来自 Internet Explorer 和其他进程的 Windows 消息。 |
UIPIEnableCustomMsgs | 当应用程序未与其他进程正确通信时,会出现此问题,因为自定义的 Windows 消息未传递。可修复的自定义 Windows 消息从较低的桌面完整性级别传递到当前进程。 此修复等效于调用 RegisterWindowMessage 函数,并在代码中调用 ChangeWindowMessageFilter 函数。通过在命令提示符下键入以下命令,可以进一步控制此修复:MessageString1 MessageString2 其中 MessageString1 和 MessageString2 反映可以传递的消息字符串。注意: 多个消息字符串必须用空格分隔。 有关此应用程序修补程序的更多详细信息,请参阅 使用 UIPIEnableCustomMsgs 修复。 |
UIPIEnableStandardMsgs | 当应用程序由于标准 Windows 消息未传递而无法与其他进程正确通信时,会出现此问题。可修复的标准 Windows 消息从较低的桌面完整性级别传递到当前进程。 此修复等效于在代码中调用 ChangeWindowMessageFilter 函数。通过在命令提示符下键入以下命令,可以进一步控制此修复:1055 1056 1069 其中 1055 反映第一个消息 ID,1056 反映第二个消息 ID,1069 反映第三个可以传递的消息 ID。注意: 可以用空格分隔多个消息。 有关此应用程序修补程序的更多详细信息,请参阅 使用 UIPIEnableStandardMsgs 修复 [act]。 |
VirtualizeDeleteFileLayer | 修复程序虚拟化尝试删除受保护文件的应用程序的 DeleteFile 操作。 |
VirtualizeDesktopPainting | 此修复提高了使用 DWM 时桌面 DC 上许多操作的性能。 |
VirtualRegistry | 当启动应用程序时显示“组件未能找到”错误消息时,会指出此问题。可修复注册表函数,以允许虚拟化、重定向、扩展值、版本欺骗、性能数据计数器模拟等。有关此应用程序修补程序的更多详细信息,请参阅 使用 VirtualRegistry 修补程序。 |
VirtualizeDeleteFile | 当显示多个错误消息并且应用程序无法删除文件时,会出现此问题。该修复使应用程序的 DeleteFile 函数调用虚拟调用,以修复 Windows Vista 引入的 UAC 和文件虚拟化问题。 此修补程序还链接其他文件 API (例如 GetFileAttributes) ,以确保删除文件的虚拟化。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 VirtualizeDeleteFile 修复。 |
VirtualizeHKCRLite | 当应用程序无法在运行时注册 COM 组件时,会出现此问题。修复程序将 HKCR 写入调用 (HKLM) 定向到 HKCU 配置单元进行每用户 COM 注册。 使用 VirtualizeHKCR 参数时,此操作的操作非常类似于 VirtualRegistry 修复;但是,VirtualizeHKCRLite 提供更好的性能。HKCR 是 HKCU\Software\Classes 和 HKLM\Software\Classes 目录的虚拟合并。 如果应用程序未提升,则首选使用 HKCU;如果应用程序提升,则忽略 HKCU。通常将此兼容性修补程序与 VirtualizeRegisterTypeLib 修补程序结合使用。 有关此应用程序修补程序的更多详细信息,请参阅 使用 VirtualizeHKCRLite 修复。 |
VirtualizeRegisterTypeLib | 该修补程序与 VirtualizeHKCRLite 修补程序一起使用时,可确保类型库和 COM 类注册同时进行。 使用 RegisterTypeLibForUser 参数时,此函数非常类似于 RegistryTypeLib 修复。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 VirtualizeRegisterTypelib 修复。 |
WaveOutIgnoreBadFormat | 此问题由错误消息指示:无法从音频驱动程序初始化声音设备;然后,应用程序将关闭。可修复应用程序以忽略格式错误并继续正常运行。 |
WerDisableReportException | 该修复关闭了对Windows 错误报告工具的异常的无提示报告,包括对象链接和Embedding-Database (OLE DB) 报告的异常。 修复将截获 RtlReportException API 并返回STATUS_NOT_SUPPORTED错误消息。 |
Win7RTM/Win8RTM | 该层为应用程序提供 Windows 7/Windows 8兼容模式。 |
WinxxRTMVersionLie | 当应用程序因找不到所需 Windows 操作系统的正确版本号而失败时,会出现此问题。所有版本谎称兼容性修补程序都解决了应用程序无法正常运行的问题,因为它正在检查但未找到特定版本的操作系统。 版本谎言修复返回相应的操作系统版本信息。 例如,无论计算机上运行的实际操作系统版本如何,VistaRTMVersionLie 都会向应用程序返回 Windows Vista 版本信息。 |
Wing32SystoSys32 | 此问题由错误消息指示,指出 WinG 库未正确安装。修复检测正确目录中是否存在 WinG32 库。 如果库位于错误的位置,则此修补程序通常会在应用程序) 运行时将信息 (复制到 %WINDIR% \system32 目录中。重要: 应用程序必须具有管理员权限才能使此修补程序正常工作。 |
WinSrv08R2RTM | |
WinXPSP2VersionLie | 当应用程序由于 VB 运行时 DLL 而遇到问题时,会出现此问题。修复程序强制应用程序执行以下步骤:- 打开“兼容性管理员”,然后为“操作系统模式”选择“无”。- 在“兼容性修复”页上,单击“WinXPSP2VersionLie”,然后单击“参数”。- 此时将显示“fix_name>选项<”对话框。- 在“模块名称”框中键入vbrun60.dll,单击“包括”,然后单击“添加”。- 保存自定义数据库。 注意: 有关 WinXPSP2VersionLie 应用程序修补程序的详细信息,请参阅 使用 WinXPSP2VersionLie 修复。 |
WRPDllRegister | 应用程序尝试注册与 Windows Vista 及更高版本一起发布的 COM 组件时失败。修复了调用 DLLRegisterServer 和 DLLUnregisterServer 函数时注册和注销受 WRP 保护的 COM 组件的过程。通过在命令提示符下键入以下命令,可以进一步控制此修复:Component1.dll;Component2.dll 其中Component1.dll和Component2.dll反映要跳过的组件。注意: 有关此应用程序修补程序的更多详细信息,请参阅 使用 WRPDllRegister 修复。 |
WRPMitigation | 当应用程序尝试使用多个只读访问来访问受保护的操作系统资源时,显示拒绝访问错误消息时,会指出此问题。该修复模拟文件和注册表 API 的成功身份验证和修改,以便应用程序可以继续。注意: 有关 WRPMitigation 的更多详细信息,请参阅 使用 WRPMitigation 修复。 |
WRPRegDeleteKey | 此问题由应用程序尝试删除注册表项时显示的拒绝访问错误消息指示。修复将验证注册表项是否受 WRP 保护。 如果密钥受保护,则此修复将模拟删除过程。 |
XPAfxIsValidAddress | 该修复模拟 Windows XP for MFC42 的行为!AfxIsValidAddress。 |