这可能不是一个简单的话题 - 我已尽最大努力研究了这一点,并意识到它不支持任何典型的方式。
我的目标是从OSX启用与.app文件类似的东西,其中应用程序及其用户数据可以存在于同一文件中。我想它需要编写一个工具来管理这种行为,但这个问题更多的是关于如何在Windows操作系统中实现这一点。我对实现细节非常灵活,但行为越直接越好(即避免在运行时复制或压缩/解压缩整个目录/存档)。
我考虑过的方法:
找到一种让资源管理器将目录视为文件的方法,以便将其关联起来。我找到了一种让资源管理器将目录视为控制面板项的方法,到目前为止我一直无法找到一种方法来使用它来关联自定义程序。请参阅臭名昭着的“godmode hack”for Windows(将目录命名为“GodMode。{ED7BA470-8E54-465E-825C-99712043E01C}”)。这个似乎是最有希望的,但我最终试图找到有关创建这种类型的新关联的信息。
想出某种可以将可执行信息提取到临时目录的存档格式,启动此可执行文件将存档作为命令行参数传递。从性能的角度来看,这似乎是最丑陋的解决方案。如果可能的话,我宁愿选择一种不同的解决方案,一种不涉及使程序或其数据重复运行的解决方案。
找到一种直接关联目录的方法,虽然我没有发现Windows中支持这种情况的痕迹,我认为这是一个死胡同。
找到一种获取可执行文件以包含可写嵌入文件的方法。我一直无法取得任何进展 - 我甚至尝试过资源黑客方法,但显然你无法在使用时修改程序集。
尝试使用Java创建一个自我修改的JAR文件,但我采用的路由会将JDK添加为运行时要求,这似乎有点矫枉过正。即使这样,它也只限于Java,我很确定它实际上并不是首先允许它。
修改Windows资源管理器。我对这需要的工作量感到不寒而栗,更不用说合法的灰色区域了。也许有一种方法可以扩展资源管理器来实现这一点,我不确定。
自定义存档文件。这似乎是最简单的方法。但理想情况下,它需要是一种归档格式,对文件I / O的开销很小。甚至可能是某种安装的虚拟磁盘,但我想这会非常沉重。
我很感激任何人对此话题的见解。我不会理解原因,因为它们与问题本身无关 - 我知道它可能不是最实际的解决方案。认为这是一种新颖的追求。
答案 0 :(得分:0)
可以通过应用程序虚拟化完成, 阅读这个维基百科页面理论:
https://en.wikipedia.org/wiki/Portable_application
https://en.wikipedia.org/wiki/Application_virtualization
关于软件的两页:
答案 1 :(得分:0)
Windows 7在每个文件夹的基础上将Desktop.ini文件的功能添加到add/change the folder verbs。使用该技巧可以创建"folders as applications" style setup。