Windows 7开发:用户帐户管理数据重定向(写入受保护的资源)

http://www.bianceng.cn/Programming/net/201104/26176.htm

您可能遇到过下面的一种或多种情况:

• 您的应用程序写入Program Files ,Windows目录,或者系统根(一般是C盘)文件夹,但是您在这些地方并没有找到您的文件

• 您的应用程序写入Windows注册表,特别是HKLM/Software中,但是您没有看 到注册表进行了更新

• 您切换到了另一个帐户,并且您的应用程序没有办法找 到已写入Program Files,Windows目录,或者系统根(一般是C盘)文件夹的文件,或者找到 了这些文件的老版本

• 在启用或禁用用户帐户控制(UAC)后,您的应用程序都 没有办法找到Program Files或Windows目录中的文件

如果这些出现在了您的应用程序 中,都是由于UAC虚拟化的原因。下面所提供的信息为您介绍了所有关于发现这个应用程序兼 容性问题,解决方案,以及特殊兼容性问题的一些附加信息。

真正的问题:UAC 虚拟 化

在Windows Vista中,一般由管理员来运行应用程序。这样,应用程序可以自由的 读写系统文件和注册表的值。如果标准用户可以运行这些应用程序,那他们可能会由于没有 足够的权限而导致失败。Windows Vista通过重定向写入(以及后续文件或者注册表操作)对 应用户的配置文件(profile)位置,来对标准用户运行应用程序的能力进行了提升。

例如,如果一个应用程序试图写入C:\Program Files\Contoso\Settings.ini,并且用户 没有权限来对该文件夹进行写入操作,写入操作将会被重定向到C:\Users \Username\AppData\Local\VirtualStore\Program Files\Contoso\settings.ini。如果应用 程序试图在注册表中写入HKEY_LOCAL_MACHINE\Software \Contoso\,这将会被自动重定向到 HKEY_CURRENT_USER\Software\Classes\VirtualStore \MACHINE\Software\Contoso或 HKEY_USERS\UserSID_Classes\VirtualStore \Machine\Software\Contoso。

下图显示了Windows 虚拟化进程的两个组件:文件虚拟化和注册表虚拟化

重要注意

当为Windows Vista开发应用程序时,请确定在对应的requestedExecutionLevel元素 中嵌入应用程序清单文件。这将会关闭文件和注册表虚拟化,减少虚拟化的文件和注册表值 的复杂性。

更多关于UAC虚拟化和新UAC技术,请参阅“Windows Vista中的新 UAC技术”http://msdn.microsoft.com/en-us/library/bb756960.aspx .


重定向系统各临时文件夹到另外盘符 首先要在“开始”——“运行”内输入“regedit”打开注册表编辑器,然后要在“文件”下拉菜单中的“导出”功能备份好注册表,以防万一,接着在左侧窗口依次打开: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders 在右侧窗口里,你看到的“名称”就代表那些特殊的文件夹,“数据”就是它们所对应的默认存储路径。修改默认的路径就可以让你的桌面文件夹移动了,下面是所有的. 下面介绍一下各个“名称”所代表的文件夹 名称 含义 默认路径 AppData 应用程序数据目录 C:\Documents and Settings\User name\Application Data Cookies Cookies路径 C:\Documents and Settings\User name\Cookies Desktop 桌面路径 C:\Documents and Settings\User name\桌面 Favorites 收藏夹 C:\Documents and Settings\User name\Favorites NetHood NetHood路径 C:\Documents and Settings\User name\NetHood Personal 我的文档 C:\Documents and Settings\User name\My Documents PrintHood 打印 C:\Documents and Settings\User name\PrintHood Recent 文档项路径 C:\Documents and Settings\User name\Recent SendTo SendTo路径 C:\Documents and Settings\User name\SendTo Start Menu 开始菜单路径 C:\Documents and Settings\User name\「开始」菜单 Templates 新建文件目录 C:\Documents and Settings\User name\Templates Programs 程序菜单路径 C:\Documents and Settings\User name\「开始」菜单\程序 Startup 启动路径 C:\Documents and Settings\User name\「开始」菜单\程序\启动 History 网页历史记录 C:\Documents and Settings\ User name \Local Settings\History My Pictures 图片收藏 C:\Documents and Settings\User name\My Documents\My Pictures My Music 我的音乐 C:\Documents and Settings\User name\My Documents\My Music My Video 我的视频 C:\Documents and Settings\User name\My Documents\My Videos Cache Internet临时文件夹 C:\ Documents and Settings\User name \Temporary Internet Files 这些文件夹称为Shell文件夹 其中“User name”为当前用户的名称 了解了对应的文件夹,就可以根据自己的需要去更改对应的路径了。(千万不要在这儿改啊,那样可就瞎忙乎了,系统重起后它会恢复成原来的路径) 在同一层中你可以看到一个“User Shell Folders”的子键,即在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ User Shell Folders 这里包括了用户定制的所有Shell文件夹的值项。只要通过修改“数据”,就可以改变它们的存储路径。双击需要修改的名称,在弹出的“编辑字符串”的“数值数据”里填上你要更改的完整路径,按下“确定”就完成了。如果没有你需要的,可以在右边窗口单击鼠标右键,选择“新建”菜单中的“字符串值”命令,对应上表,添加一个用于Shell文件夹的字符串值。 在上面的文件夹中,并没有outlook的通讯簿和邮件存放路径,它们分别在 通讯簿路径: HKEY_CURRENT_USER\Software\Microsoft\WAB\WAB4\Wab File Name主键下,将
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值