| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- # 使用 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()
|