WEB开发网
开发学院操作系统Windows Vista Windows Vista IE 7保护模式开发者生存指南 阅读

Windows Vista IE 7保护模式开发者生存指南

 2008-08-22 17:24:11 来源:WEB开发网   
核心提示: 以下将主要讲解插件需要怎么做才能正常工作于保护模式中,并在示例代码中介绍一些API,Windows Vista IE 7保护模式开发者生存指南(3),每个主题都相对应一个(或一对)按钮,保护模式之下的解决办法IE 7中增加了几个新的API,对这些目录的写入会被重定向至Temporary I

以下将主要讲解插件需要怎么做才能正常工作于保护模式中,并在示例代码中介绍一些API,每个主题都相对应一个(或一对)按钮。

保护模式之下的解决办法

IE 7中增加了几个新的API,它们位于ieframe.dll中,插件可以使用它们来执行那些在保护模式中受限的功能,既可以直接通过iepmapi.lib链接到这些API,也可以通过LoadLibrary()/GetProcAddress()获取运行时的函数指针,如果想要插件在Vista之前的Windows平台上也能正常加载,就必须使用后一种方法了。

特权提升的大多数功能是通过一个代理进程(ieuser.exe)来实现的,只要IE进程运行于低完整性级别中,它就不能执行更高权限的任务,这也是ieuser.exe这个角色的目的所在。

在运行时探知保护模式

如果想知道插件是否运行在IE进程的保护模式中,可使用IEIsProtectedModeProcess():

HRESULT IEIsProtectedModeProcess(BOOL* pbResult);

如果返回值是一个成功的HRESULT且*pbResult为TRUE,则可以确定为保护模式;另外,基于*pbResult的返回值,也可决定代码下一步该怎么办:

HRESULT hr;
BOOL bProtectedMode = FALSE;
  
hr = IEIsProtectedModeProcess ( &bProtectedMode );
  
if ( SUCCEEDED(hr) && bProtectedMode )
  // IE运行于保护模式中
else
// IE 未运行于保护模式中

文件系统的写入

当处于保护模式时,插件只能写到用户配置文件下的某些目录中,且只有Temp、 Temporary Internet Files、Cookies、Favorites这些低完整性级别目录为可写。但IE 7也照顾到了某些兼容性问题,对某些常用的目录进行虚拟化,对这些目录的写入会被重定向至Temporary Internet Files的子目录中;如果插件想要对敏感位置进行写入,如Windows目录,那么写操作会失败。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:Windows Vista IE

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接