通过代码将程序在Win7/Win8下设置成以兼容模式运行

您所在的位置:网站首页 兼容性win7 通过代码将程序在Win7/Win8下设置成以兼容模式运行

通过代码将程序在Win7/Win8下设置成以兼容模式运行

#通过代码将程序在Win7/Win8下设置成以兼容模式运行| 来源: 网络整理| 查看: 265

        有时我们开发的程序在Wind7或Win8下面无法启动,必须将之设置成以兼容模式运行后才能启动。设置以兼容模式运行,可以手动修改程序的右键属性,将之设置成以兼容模式运行;但是对于开发出来的商用软件,让用户去手动设置不太现实,也不合适,所以需要我们通过代码将程序自动设置成以兼容模式运行。那么如何通过代码进行设置呢?    

        我们可以通过修改注册表来达到设置的目的。在HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers路径下,添加这样的项:"C:\Program Files\Test\Test.exe"="WINXP",其中"C:\Program Files\Test\Test.exe"是目标程序的安装路径,"WINXP"则表示以何种系统方式运行。各系统对应的字符串如下所示:(已经在Win8下通过手动设置以兼容性运行后查看注册表中对应字串进行了下列字串进行了验证,准确无误)

Windows 95                                                       对应WIN95 Windows 98 / Windows Me                             对应WIN98 Windows NT 4.0 (Service Pack 5)                  对应NT4SP5 Windows 2000                                                   对应WIN2000 Windows XP                                                       对应WINXP Windows XP (Service Pack 2)                         对应WINXPSP2 Windows XP (Service Pack 3)                         对应WINXPSP3 Windows Server 2003 (Service Pack 1)        对应WINSRV03SP1 Windows Server 2008 (Service Pack 1)        对应WINSRV08SP1 Windows Vista                                                   对应VISTARTM Windows Vista (Service Pack 1)                     对应VISTASP1 Windows Vista (Service Pack 2)                     对应VISTASP2 Windows 7                                                          对应WIN7RTM

        将程序设置成兼容模式的代码如下所示:(在Win8下将程序设置成以Win7兼容模式运行)

HKEY hKey; LPCTSTR strSubKey = "Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers"; long lRet = ::RegOpenKeyEx( HKEY_CURRENT_USER, strSubKey, 0, KEY_WRITE, &hKey ); if ( lRet == ERROR_SUCCESS ) { TCHAR achValue[] = { _T("WIN7RTM") }; CString strExePath = _T("C:\\Program Files\\Test\\Test.exe"); lRet = ::RegSetValueEx( hKey, strExePath, NULL, REG_SZ, (LPBYTE)&achValue, sizeof(achValue) ); RegCloseKey( hKey ); }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3