制作应用程序启动器

时间:2009-08-29 20:16:52

标签: portable-applications

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

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

这可行吗?如果是这样的话,我可以查一下来吗?

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

2 个答案:

答案 0 :(得分:3)

这可以做到,但是很容易完全取决于你正在推出的程序。

应用程序将要做的事情是:

  • 快乐地在任何地方执行(无依赖关系)。这些都很简单!

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

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

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

最终,您需要针对您要启动的每个应用进行调查,了解它需要运行的内容。

如果这些应用是商业广告,那么请注意不要以这种方式运行任何许可(EULA)条款。

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

答案 1 :(得分:1)

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

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

如果确实想要便携性和功能,请考虑使用VMWare Player,并根据需要随身携带整个机器,在闪存驱动器上。当然,你的朋友可能不得不允许你安装VMWare Player。