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