我正在寻找一种方法,让我的某些 Windows 程序能够以不同的方式查看硬盘,如下所示 -
假设我想让 c:\folder1\folder2 的内容对于我的一个程序来说看起来像 d:\folder3,并且仅限于该程序。
我不想使用符号链接或连接点,因为它会让所有程序看到它。
有什么解决办法吗?
答案1
ACT 是Microsoft 应用程序兼容性工具包并可用于生成适用于 Windows 平台的垫片。垫片是一个小型库,它透明地拦截 API、更改传递的参数、处理操作本身或将操作重定向到其他地方。
在需要重定向文件系统的情况下,CorrectFilePaths
可以使用 shim 将文件从一个位置重定向到另一个位置。对于重定向注册表,VirtualRegistry
可以以类似的方式使用。
安装 ACT 后,可以从以下位置启动:开始菜单 - Microsoft 应用程序兼容性工具包,然后选择兼容性管理员工具。
右键单击New Database
,然后选择Application Fix
。继续按照向导提供包的名称(将显示在“程序和功能”中),然后CorrectFilePaths
从列表中选择 shim。此 shim 的语法为:"oldpath";"newpath"
。
在描述“匹配信息”的页面上,您可以选择哪些进程加载垫片、要匹配的值包括文件版本、文件名、公司名称等。
使用 ACT 生成 .sdb 文件后,可以使用命令行sdbinst.exe
应用程序在计算机上安装(或卸载)该文件,该应用程序在 Windows 上默认安装。该工具的示例用法如下:
Usage: sdbinst [-?] [-q] [-u] [-g] [-p] [-n[:WIN32|WIN64]] myfile.sdb | {guid} | "name"
-? - print this help text.
-p - Allow SDBs containing patches.
-q - Quiet mode: prompts are auto-accepted.
-u - Uninstall.
-g {guid} - GUID of file (uninstall only).
-n "name" - Internal name of file (uninstall only).