tags:

views:

142

answers:

0

I am writing a SFX for an installer. I have a number of good reasons for doing this, primarily:

  • The installer is actually a large Python program which uses plugins. Using py2exe or pyinstaller makes doing plugins annoyingly complicated.
  • I want to be able to pass command-line options directly to the Python installer script, as if it were getting run directly.
  • Using the existing 7-zip SFX modules is clunky because I cannot pass command-line options directly into the processes I want to start.
  • I need more flexibility than any of the existing SFX modules I have seen provide.

I have already tried using the SDK to open the file, seek to the 7z archive signature, and run the decompression from there. That fails because the SzArEx_Open() call appears to assume that you are starting at a 0 offset in the file.

I am using the File_Seek() call to perform the seeking. It seems like there must be a way to do this, since the 7z archive format itself supports multiple embedded streams.

Any pointers to examples would be awesome, but narrative explanation is also quite welcome!