我需要创建自解压档案,一旦解压,就会根据操作系统的位数运行不同的可执行文件。
到目前为止,我已经通过使用 WinRAR 和 BAT 文件来完成此操作,但是在主应用程序窗口之前快速闪烁的命令提示符窗口看起来很可疑。
所以,我正在寻找更好的选择,但还没有找到。
您可以在 C/C++/C# 中编写一个 32 位 GUI 应用程序,而不打开一个窗口,例如使用getenv_s或getenv确定变量是否ProgramFiles(x86)
存在(仅在 64 位 Windows 上),然后启动相应的主应用程序。此可执行文件被压缩到 SFX 存档中并由 SFX 存档执行。
或者您编写自己的 SFX 模块。可以从RARLAB下载解压 RAR 压缩包的源代码。
或者您编写一个 Windows 脚本来确定 Windows 的位宽并启动适当的主应用程序,并通过 SFX 存档使用wscript.exe执行此脚本,该脚本不会像对应的cscript.exe那样打开控制台窗口。
或者您创建一个只能在 64 位 Windows 上运行的 64 位 SFX 和一个可以在 32 位和 64 位 Windows 上运行的 32 位 SFX 并提供下载。大多数 64 位 Windows 用户很可能会下载 64 位版本。