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