| 
			 
					阅读:4143回复:10
				 
				解决“没有找到数字签名”提示的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; //============================================ prototype NonDriverSigning(BOOL); 在2000上可以安全解决!在XP上还有些问题!因为有些能用,有些不能用!! :(还在找这个问题!!!  | 
	|
| 
			 沙发# 
								发布于:2004-07-04 15:42				
			
					XP下得也解决了!只要找到当前用户得SID!在HKEY_USER下得SID
 
							\\SoftWare\\Microsoft\\Driver Signing\\Policy改为0!! 取SID得代码可以参照MSDN!!!!!!!!!!!!! :D  | 
	|
| 
			 板凳# 
								发布于:2004-07-14 09:44				
			
					厉害着呢。。。我去试试验				 
							 | 
	|
| 
			 地板# 
								发布于:2004-09-03 14:59				
			
					把系统中关于无签名驱动安装的安全选项设一下即可。				 
							 | 
	|
| 
			 地下室# 
								发布于:2004-09-28 09:11				
			
					good good,
 
							顶一下!  | 
	|
| 
			 5楼# 
								发布于:2004-10-14 10:09				
			
					强!
 
							有时间我试试!  | 
	|
| 
			 6楼# 
								发布于:2004-12-28 09:47				
			
					那位老大可以把代码公布下啊,让我们学学				 
							 | 
	|
| 
			 7楼# 
								发布于:2004-12-28 17:29				
			
					这种办法在2K和XP Home上是有用的,但在XP Professional上和2003上是没有用的。我们到现在还没有2003上的好的解决办法。				 
							 | 
	|
| 
			 8楼# 
								发布于:2004-12-29 23:48				
			这种办法在2K和XP Home上是有用的,但在XP Professional上和2003上是没有用的。我们到现在还没有2003上的好的解决办法。 经过测试我是这样的!现在还没有找到解决方法!!!!!!!!!  | 
	|
| 
			 9楼# 
								发布于:2005-01-15 12:21				
			
					总算找到解决的注册表健了!!
 
							User Key: [HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows NT\Driver Signing] Value Name: BehaviorOnFailedVerify Data Type: REG_DWORD (DWORD Value) Value Data: (0 = Ignore, 1 = Warn, 2 = Block) 微软的官方说明! http://www.microsoft.com/resources/documentation/Windows/2000/server/reskit/en-us/Default.asp?url=/resources/documentation/Windows/2000/server/reskit/en-us/regentry/93271.asp ;)  | 
	|
| 
			 10楼# 
								发布于:2005-01-16 11:32				
			
					老大,xp下好用吗,我试验了还是不行,而且XP下没这个键!				 
							 | 
	|