2

好的,所以我想做一个启动其他应用程序的应用程序。但是,这里的目标是使应用程序“可移植”,因为我可以在使用 USB 驱动器中的相同应用程序时从一个 Windows 桌面转到另一个桌面。所以这里是我的意思的不同纲要:

我有应用程序 X。我在机器 1 上使用它,我想在机器 2 上使用它。但是,机器 2 是我的伙伴,他不希望我在上面安装东西。因此,我将安装程序在我的系统上创建的所有文件放入文件夹中。App X 将文件放在它启动时所期望的 windows 文件夹中。如果我只是运行应用程序并在 windows 目录中查找,它将找不到文件。我没有/想要将文件放在 Windows 目录中的能力。我想告诉应用程序在文件夹 a 中查找文件夹 b 中的文件,而不是在通常的位置。然后我可以在任何机器上使用这个程序,而无需以任何方式修改机器。

这是可行的吗?如果是这样,它叫什么,所以我可以查一下?

编辑:win 目录就是一个例子。我希望该应用程序能够独立包含在拇指驱动器上的文件夹中。我想将应用程序查找文件的位置重定向到我指定的文件夹。

4

2 回答 2

3

这可以做到,但难易程度完全取决于您正在启动的程序。

应用程序将做的事情是:

  • 在任何地方都可以愉快地运行(没有依赖关系)。这些很容易!

  • 需要设置一些环境变量。这很容易做到——如果您愿意,您可以使用修改后的环境启动新流程。

  • 从磁盘读取文件。通常在加载 .dll 之类的东西时,应用程序会在 PATH 中搜索 dll,因此可以将它们复制到应用程序文件夹(.exe 旁边),它可以在任何系统上愉快地运行。但是,在某些情况下,应用程序将使用固定(或至少不太灵活)的路径,因此它们将更难成功启动。

  • 读取注册表设置。这更棘手。您需要知道应用程序需要什么状态,让您的启动器记录旧的注册表状态,更改它并运行应用程序,然后等待应用程序退出恢复原始状态。这必须是防弹的,以避免损坏用户的注册表。

最终,您需要针对要启动的每个应用程序调查它需要运行什么。

如果应用程序是商业应用程序,请注意以这种方式运行它们不会违反任何许可 (EULA) 条款。

另一种选择是设置一个虚拟 PC 映像并在主机 PC 上简单地执行它,因此无需担心每个应用程序的任何特殊情况。根据您可用的 VPC 软件,您可能需要在主机 PC 上安装软件以允许运行虚拟 PC 会话,这可能会破坏目的/意图。

于 2009-08-29T20:32:21.187 回答
1

我认为您描述的系统是 U3(更多信息在http://en.wikipedia.org/wiki/U3)。它要求应用程序遵循 U3 协议,但如果应用程序遵循,那么它可以在 U3 闪存驱动器上运行,而无需主机上的任何安装或管理员权限。

这是一项专有技术,我所见过的只有少数供应商支持。

如果您真的想要便携性和强大的功能,请考虑使用 VMWare Player,并将根据您的需要定制的整台机器放在闪存驱动器上。当然,您的朋友可能不得不允许您安装 VMWare Player。

于 2009-08-29T20:34:18.500 回答