注册表路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\InstalledSDB
SDB文件注册后注册表路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\InstalledSDB\{6ce9d33f-16f2-405e-85f6-9293f4888a8a}
键值内容如下:
键名:DatabaseDescription 数据类型:REG_SZ 键值:sdb文件名不加后缀 (如:test)
键名:DatabaseInstallTimeStamp 数据类型:REG_QDWORD 键值:1d07c0c41c97aa1 (说明:键值为16进制时间数据值)
键名:DatabasePath 数据类型:REG_SZ 键值:SDB文件的全路径 (如:c:\test.sdb)
键名:DatabaseType 数据类型:REG_DWROD 键值:10000 (说明:键值为16进制数据,其中这个值代表了SdbRegisterDatabaseEx函数的第二个参数值,宏名为SDB_DATABASE_SHIM)
其中{6ce9d33f-16f2-405e-85f6-9293f4888a8a}是通过SDB文件中读取得到的。
说明:上面的数据在SdbRegisterDatabaseEx函数执行成功后自动生成。
----------------------------------------------------------------------------------------------------------------------------------------------------------
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Custom
在上面的项目录下新建要修补的EXE程序名称,注意是带后缀的如下:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Custom\explorer.exe
键名:{6ce9d33f-16f2-405e-85f6-9293f4888a8a}.sdb 数据类型:REG_QDWORD 键值:1d07c0c41c97aa1 (说明:这里的键值与上面的DatabaseInstallTimeStamp时间值一致,带表SDB文件安装时间)
以上步骤做成,就相当于注册安装了sdb文件。可以使用sdbinst.exe -q test.sdb方法来实现sdb文件安装注册。