# 使用 Python 拼接二进制文件创建 SFX 自解压 exe import os import sys # 文件路径 SFX_MODULE = r"C:\Program Files\2345Soft\HaoZip\sfx\HaoZip7zSetup.sfx" ZIP_FILE = "SteamSH.zip" OUTPUT_FILE = "SteamSH_Dist.exe" def create_sfx(): if not os.path.exists(ZIP_FILE): print(f"错误: 找不到 {ZIP_FILE}") return False if not os.path.exists(SFX_MODULE): print(f"错误: 找不到 SFX 模块 {SFX_MODULE}") print("提示: 请安装 7-Zip 或 2345好压") return False try: # 读取 SFX 模块 print(f"读取 SFX 模块: {SFX_MODULE}") with open(SFX_MODULE, 'rb') as f: sfx_data = f.read() print(f" SFX 模块大小: {len(sfx_data):,} bytes") # 读取 zip 文件 print(f"读取压缩包: {ZIP_FILE}") with open(ZIP_FILE, 'rb') as f: zip_data = f.read() print(f" 压缩包大小: {len(zip_data):,} bytes") # 拼接 print(f"创建自解压文件: {OUTPUT_FILE}") with open(OUTPUT_FILE, 'wb') as f: f.write(sfx_data) f.write(zip_data) # 输出信息 output_size = os.path.getsize(OUTPUT_FILE) print(f"\n成功! 输出文件: {OUTPUT_FILE}") print(f"文件大小: {output_size / 1024 / 1024:.2f} MB") print(f"\n使用方法:") print(f" 直接分发 {OUTPUT_FILE} 给用户") print(f" 用户双击即可自动解压并启动两个程序") return True except Exception as e: print(f"错误: {e}") return False if __name__ == "__main__": os.chdir(os.path.dirname(os.path.abspath(__file__))) create_sfx()