积极答复者
ActiveX插件 VISTA系统中不允许写文件

问题
答案
-
要创建提升权限的COM类,必须在注册表中有权限提升的标示,COM类不论是dll还是exe,都必须有AppID
程序块HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{CLSID}\Elevation\Enabled = 1
HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{CLSID}\LocalizedString = <displayname>
HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{CLSID}\AppID = {AppID}
HKEY_LOCAL_MACHINE\Software\Classes\AppID\{AppID}\ DllSurrogate= <空字符串>有关创建权限提升的COM类编写及调用的部分建议参考我之前提供的网址。
此外插件的安装可以创建inf文件方式来完成,在保护模式下IE安装插件是通过启动具有最高权限的IEInstal.exe来完成安装的。
全部回复
-
Vista下为了提高IE7的安全性,IE7默认打开保护模式,以很低的权限来运行IE进程,当编写的activex需要完整性的资源时即会失败,为了解决这个问题,微软提供了一个用于提升权限的COM对象,即在vista上弹出用来提升权限的UAC提示框,注意UAC状态是激活的。
具体可参考:http://msdn2.microsoft.com/en-us/library/ms679687.aspx
-
要创建提升权限的COM类,必须在注册表中有权限提升的标示,COM类不论是dll还是exe,都必须有AppID
程序块HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{CLSID}\Elevation\Enabled = 1
HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{CLSID}\LocalizedString = <displayname>
HKEY_LOCAL_MACHINE\Software\Classes\CLSID\{CLSID}\AppID = {AppID}
HKEY_LOCAL_MACHINE\Software\Classes\AppID\{AppID}\ DllSurrogate= <空字符串>有关创建权限提升的COM类编写及调用的部分建议参考我之前提供的网址。
此外插件的安装可以创建inf文件方式来完成,在保护模式下IE安装插件是通过启动具有最高权限的IEInstal.exe来完成安装的。