好吧,我想制作一个启动其他应用程序的应用程序。然而,这里的目标是使应用程序“可移植”,因为我可以从一个 Windows 桌面转到另一个 Windows 桌面,同时从 USB 驱动器使用相同的应用程序。所以这里是我的意思的不同概要:
我有应用程序 X。我在机器 1 上使用它,我想在机器 2 上使用它。但是,机器 2 是我 friend 的,他不希望我在上面安装东西。因此,我将安装程序在我的系统上创建的所有文件放入文件夹中。 App X 将文件放入启动时所需的 Windows 文件夹中。如果我只是运行该应用程序,它会在 Windows 目录中查找,它将找不到这些文件。我没有/不希望能够将文件放入 Windows 目录中。我想告诉应用程序在文件夹 a 中查找文件夹 b 中的文件,而不是通常查找的位置。然后我可以在任何机器上使用这个程序,而无需以任何方式修改机器。
这可行吗?如果是的话,它叫什么名字,以便我可以查找?
编辑:win 目录就是一个例子。我希望该应用程序能够独立包含在拇指驱动器上的文件夹中。我想将应用程序查找文件的位置重定向到我指定的文件夹。
最佳答案
这是可以完成的,但有多容易完全取决于您要启动的程序。
应用程序将执行的操作包括:
只要在任何地方执行就可以愉快地运行(没有依赖性)。这些都很简单!
需要设置一些环境变量。这很容易做到 - 如果您愿意,您可以使用修改后的环境启动新流程。
从磁盘读取文件。通常,当加载 .dll 等内容时,应用程序将在 PATH 中搜索 dll,因此可以将它们复制到应用程序文件夹(.exe 旁边),并且它可以在任何系统上正常运行。然而,在某些情况下,应用程序将使用固定(或至少不太灵活)的路径,因此它们将更难成功启动。
读取注册表设置。这比较棘手。您需要知道应用程序需要什么状态,让启动器记录旧的注册表状态,更改它并运行应用程序,然后等待应用程序退出以恢复原始状态。这必须是防弹的,以避免用户注册表损坏。
最终,您需要针对要启动的每个应用程序进行调查,了解它需要运行什么。
如果应用程序是商业应用程序,请注意以这种方式运行它们,不要违反任何许可 (EULA) 条款。
另一种替代方法是设置虚拟 PC 镜像并在主机 PC 上简单地执行该镜像,这样就无需担心每个应用程序的任何特殊情况。根据您可用的 VPC 软件,您可能需要在主机 PC 上安装软件以允许运行虚拟 PC session ,这可能会达不到目的/意图。
关于portable-applications - 制作应用程序启动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1352279/