-4

您可以通过执行一个安装程序文件来安装那些程序,这些程序给我留下了深刻的印象,然后它会提取所有其他必需的文件来运行实际程序。即使现在我仍然想知道你将如何编写一个程序来提取实际上仍在程序中的文件(所以不是在某种 zip 中),我已经看到了大量具有此功能的游戏安装程序。我需要这个,因为我想在正确的时刻提取文件,而不让使用程序的人能够在提取文件之前删除文件,这可能看起来很模糊,但我希望我已经通知了你足够多的信息。

4

4 回答 4

3

我只想说构建安装程序很困难

我建议使用 NSIS: http: //nsis.sourceforge.net/Main_Page

至于创建一个用户无法访问的文件,创建一个具有正确读/写权限的临时文件,将数据提取到临时文件,然后将文件复制到需要去的地方。

提取发生时无需用户干预,并且复制保护由操作系统处理。

于 2013-08-01T15:08:51.853 回答
2

将要隐藏的文件的构建操作更改为嵌入式资源,或者在 dll/exe 中编译文件的类似操作如何?

于 2013-08-01T15:07:39.220 回答
0

可执行程序只是文件,因此您可以在可执行文件中附加任何数据。(适用于我的 c++ 编译程序)

$ cat executables some_blob_data > new_executables

由于 main() 的 argv[0] 是您的文件的名称,您可以使用它来访问此文件本身中的数据(适用于 c 或 c++ 以及其他语言的 likley)

于 2013-08-01T15:19:54.277 回答
0

一个非常简单的方法是使用您的存档工具或几十个已经制作的安装程序之一。WinRar、WinZip 和大多数其他软件都允许创建自解压 exe 文件。我知道你说过这不是你想要的,但如果你确保让它自动执行你的安装程序应用程序并在你完成后删除所有临时文件,它真的可以非常简单和专业的外观。显然,各种安装程序应用程序都能够完成您想要的工作。

如果您真的想自己执行此操作,那么简单的解决方案很可能取决于您的 IDE 软件和语言。通用的答案是您需要一个可以接受流作为输入的压缩库。然后,您需要将实际文件制作成安装程序应用程序中的资源。此时,只需告诉压缩库从指向资源的流中读取即可。如何做到这一点因语言而异。

于 2013-08-01T15:20:44.010 回答