win7 下,个人的配置文件会自动保存在C:/Users/***XX/AppData/Local/VirtualStore/Program Files/MyApp/***.ini里,而原先安装在C:/Program Files/MyApp/***.ini则没有改变,产生这样的转存原理如下:
这个当权限不够时,保证兼容性的做法。
现在遇到的问题是,我写了个OCX控件,来对本地ini配置文件进行修改,通过IE调用次OCX控件,发现修改时会改到C:/Users /***XX/AppData/Local/VirtualStore/Program Files/MyApp/***.ini,而读取时会到C:/Program Files/MyApp/***.ini里去读,导致读取不一致,只能通过右键以管理员身份打开IE,后调用OCX控件,则只会在C:/Program Files/MyApp/***.ini里读取,这样不会发生错误,目前在寻找解决的办法。
找了几天,后来把IE工具里Internet选项,安全标签里的启用保护模式不勾选,则OCX控件没有问题了,可以自动跳转到virtualstore读取INI配置文件,可以通过控件在系统目录下新建文件夹等,而当启动保护模式时,这些都无法做到,会出错。
附上IE保护模式的说明如下“ 谈到Windows Vista的IE 7安全特性,必须首推其保护模式功能。这个Feature的来头可不小,据说是盖茨亲自点将,可见其重要性。 IE保护模式实际上依赖于Windows Vista三大安全特性:UAC(用户帐户保护)、MIC(强制完整性检测)和UIPI(用户界面特权隔离),这也是为什么独立版本的IE 7无福享受的原因。 通俗的来说,保护模式可以让IE运行在最低的特权级别下,比其他任何进程都低。运行在保护模式下的IE进程、IE进程里的插件、还有网页里的代 码,根本没有权限干坏事。IE进程“不得入内”的地方包括:用户配置文件夹、HKEY_LOCAL_MACHINE和HKEY_CURRENT_USER 等,难怪恶意代码会感到处处掣肘! |
|