解决安装驱动时提示的“未签名的驱动程序”警告信息!!
2004-07-01 08:34
761 查看
最近编写驱动,并作了个安装程序。但是发现在安装时总是有“未数字签名的驱动”这个警告。只有手动将 系统—〉硬件-〉签署设备驱动程序 中的文件签名验证改为“忽略”,就不会出现这个提示框。可是不知道在注册表中哪个位置,在网上搜集了一些资料,最后在“驱动开发网”找到了相关的文章,就是修改HKEY_LOCAL_MACHINE下的Software//Microsoft//Driver Signing和Software//Microsoft//Non-Driver Signing//这连个键下的Policy ,将值改 0 即可!我经过测试,发现在我机器上还是出现了提示!!我想是否是在当前用户的注册表下呢?结果发现在KEY_CURRENT_USER下果然还有一个Software//Microsoft//Driver Signing键!!将值改为 0 后!通过!!!
以下是InstallShield的安装脚本!^_^
//全局变量保存状态值
STRING g_svDriverSigning, g_svNonDriverSigning, g_svUserDriverSigning;
NUMBER g_nvSize, g_nvUserSize, g_nvNonSize;
/*
未签名的驱动程序安装操作
0 默认继续
1 允许安装但发出警告
2 禁止安装
*/
function NonDriverSigning(bEnable)
STRING szKey, svValue, szValue;
STRING szKeyName;
NUMBER nvType,nvSize;
begin
RegDBSetDefaultRoot( HKEY_CURRENT_USER );
//---------------------------------------
//设置HKCU下的未签名的驱动程序安装操作
szKey = "Software////Microsoft////Driver Signing////";
szKeyName = "Policy";
nvType = REGDB_NUMBER;
if ( bEnable ) then
//保存原值
if ( RegDBGetKeyValueEx( szKey, szKeyName, nvType, g_svUserDriverSigning,
g_nvUserSize ) < 0 ) then
g_svUserDriverSigning = "0";
g_nvUserSize = -1;
endif;
//设置为"默认继续"
szValue = "0";
nvSize = -1;
else
//恢复原值
szValue = g_svUserDriverSigning;
nvSize = g_nvUserSize;
endif;
//设置键值
if (RegDBSetKeyValueEx ( szKey , szKeyName , nvType , szValue ,
nvSize ) < 0) then
//return -1;
;
endif;
RegDBSetDefaultRoot( HKEY_LOCAL_MACHINE);
//---------------------------------------
//设置HKLM下的未签名的驱动程序安装操作
szKey = "Software////Microsoft////Driver Signing////";
szKeyName = "Policy";
nvType = REGDB_BINARY;
if ( bEnable ) then
//保存原值
if ( RegDBGetKeyValueEx( szKey, szKeyName, nvType, g_svDriverSigning,
g_nvSize ) < 0 ) then
g_svDriverSigning = "/0/0/0/0";
g_nvSize = 4 ;
endif;
//设置为"默认继续"
szValue = "/0/0/0/0";
nvSize = 4;
else
//恢复原值
szValue = g_svDriverSigning;
nvSize = g_nvSize;
endif;
//设置键值
if (RegDBSetKeyValueEx (szKey, szKeyName, REGDB_BINARY, szValue,
nvSize) < 0) then
return -1;
endif;
//---------------------------------------
//设置HKLM下的未签名的非驱动程序安装操作
szKey = "Software////Microsoft////Non-Driver Signing////";
szKeyName = "Policy";
nvType = REGDB_BINARY;
if ( bEnable ) then
//保存原值
if ( RegDBGetKeyValueEx( szKey, szKeyName, nvType, g_svNonDriverSigning,
g_nvNonSize ) < 0 ) then
g_svNonDriverSigning = "/0/0/0/0";
g_nvNonSize = 4;
endif;
//设置为"默认继续"
szValue = "/0/0/0/0";
nvSize = 4;
else
//恢复原值
szValue = g_svNonDriverSigning;
nvSize = g_nvNonSize;
endif;
//设置键值
if (RegDBSetKeyValueEx (szKey, szKeyName, REGDB_BINARY, szValue,
nvSize) < 0) then
return -1;
endif;
return 0;
end;
以下是InstallShield的安装脚本!^_^
//全局变量保存状态值
STRING g_svDriverSigning, g_svNonDriverSigning, g_svUserDriverSigning;
NUMBER g_nvSize, g_nvUserSize, g_nvNonSize;
/*
未签名的驱动程序安装操作
0 默认继续
1 允许安装但发出警告
2 禁止安装
*/
function NonDriverSigning(bEnable)
STRING szKey, svValue, szValue;
STRING szKeyName;
NUMBER nvType,nvSize;
begin
RegDBSetDefaultRoot( HKEY_CURRENT_USER );
//---------------------------------------
//设置HKCU下的未签名的驱动程序安装操作
szKey = "Software////Microsoft////Driver Signing////";
szKeyName = "Policy";
nvType = REGDB_NUMBER;
if ( bEnable ) then
//保存原值
if ( RegDBGetKeyValueEx( szKey, szKeyName, nvType, g_svUserDriverSigning,
g_nvUserSize ) < 0 ) then
g_svUserDriverSigning = "0";
g_nvUserSize = -1;
endif;
//设置为"默认继续"
szValue = "0";
nvSize = -1;
else
//恢复原值
szValue = g_svUserDriverSigning;
nvSize = g_nvUserSize;
endif;
//设置键值
if (RegDBSetKeyValueEx ( szKey , szKeyName , nvType , szValue ,
nvSize ) < 0) then
//return -1;
;
endif;
RegDBSetDefaultRoot( HKEY_LOCAL_MACHINE);
//---------------------------------------
//设置HKLM下的未签名的驱动程序安装操作
szKey = "Software////Microsoft////Driver Signing////";
szKeyName = "Policy";
nvType = REGDB_BINARY;
if ( bEnable ) then
//保存原值
if ( RegDBGetKeyValueEx( szKey, szKeyName, nvType, g_svDriverSigning,
g_nvSize ) < 0 ) then
g_svDriverSigning = "/0/0/0/0";
g_nvSize = 4 ;
endif;
//设置为"默认继续"
szValue = "/0/0/0/0";
nvSize = 4;
else
//恢复原值
szValue = g_svDriverSigning;
nvSize = g_nvSize;
endif;
//设置键值
if (RegDBSetKeyValueEx (szKey, szKeyName, REGDB_BINARY, szValue,
nvSize) < 0) then
return -1;
endif;
//---------------------------------------
//设置HKLM下的未签名的非驱动程序安装操作
szKey = "Software////Microsoft////Non-Driver Signing////";
szKeyName = "Policy";
nvType = REGDB_BINARY;
if ( bEnable ) then
//保存原值
if ( RegDBGetKeyValueEx( szKey, szKeyName, nvType, g_svNonDriverSigning,
g_nvNonSize ) < 0 ) then
g_svNonDriverSigning = "/0/0/0/0";
g_nvNonSize = 4;
endif;
//设置为"默认继续"
szValue = "/0/0/0/0";
nvSize = 4;
else
//恢复原值
szValue = g_svNonDriverSigning;
nvSize = g_nvNonSize;
endif;
//设置键值
if (RegDBSetKeyValueEx (szKey, szKeyName, REGDB_BINARY, szValue,
nvSize) < 0) then
return -1;
endif;
return 0;
end;
相关文章推荐
- 解决安装驱动时提示的“未签名的驱动程序”警告信息!!
- 解决安装Intel各种驱动提示“安装程序未能安装一个或多个设备驱动程序”的问题
- 安装驱动程序过程中如何禁用winxp驱动签名提示
- 解决 WIN7 部署 安装驱动包时出现的驱动签名提示 办法!
- 手机连接电脑Win7系统后提示“正在安装驱动”的解决方法
- 记安装EP时在指定BCP账户信息时提示AOS无法访问的解决方法
- 解决Android应用安装快完毕时提示签名冲突
- 安装WIN7时提示“缺少所需的CD/DVD驱动器设备驱动程序”的解决办法
- 安装WIN7时提示“缺少所需的CD/DVD驱动器设备驱动程序”的解决办法
- 安装SQL2005提示“SQL Server 2005 COM+ 目录要求”警告 解决方法
- Win10安装过程中提示缺少驱动程序无法继续安装的解决方法
- 驱动安装需要数字签名导致安装失败的解决方法
- Eclipse安装了SpringSource Tool Suite插件后,编辑SpringBoot项目的yml配置文件仍然没有提示信息的解决办法
- 安装 Intel RST (Intel Rapid Storage Technology) 磁盘阵列驱动时,提示 “此产品有一个挂起的重新启动” 的解决方法
- VS2010安装Nuget提示签名不匹配错误解决办法
- 解决Android应用安装快完毕时提示签名冲突
- 安装SQL2005提示“SQL Server 2005 COM+ 目录要求”警告 解决方法
- 解决DWR CS5安装html5插件提示:没有签名,不能安装的问题
- 解决Android应用安装快完毕时提示签名冲突
- 安装USB--RS232驱动,提示设备无法启动,解决方法