我遇到了第三方组件的问题,我必须与C#或C ++互操作,但无法控制。
情况如下:
第三方组件是一种将数据写入“Program Files”文件夹的软件。在Win7中,这意味着对于没有管理员访问权限的用户,此数据将写入该配置文件中的虚拟化Program Files文件夹中。我需要通过捆绑的.dll。
中提供的API来读取该数据当运行具有管理员权限的第三方工具和禁用UAC的框(有效地允许对c:\ Program Files进行写访问)时,我可以使用标准互操作来读取该文件夹中的数据(C ++或P中的LoadLibrary / GetProcAddress) /在C#中调用)。为了清楚起见,在这种情况下,第三方软件和使用.dll的工具都是从C:\ Program Files写入/读取(从sysinternals的Process Monitor验证)。
问题出现了:在启用了UAC的系统上,第三方软件写入虚拟化文件夹,但我的工具仍然从C:\ Program Files读取,因此无法读取数据。请注意,我无法控制这个,因为我无法直接读取这些数据,我必须通过第三方.dll!所以我想我的问题是:我能做些什么来使我的程序像第三方组件一样,即在运行时使用有限的权限强制它从VirtualStore读取?或者我应该以不同的方式解决这个问题?
答案 0 :(得分:0)
此方案有两种可能的解决方案
我们使用第二个选项,因为第三方工具没有提供更改安装文件夹的脚本化方法: - (