The SDA class can be used to create a self-decrypting archive which will run natively on Windows platforms.
The class uses the Deflate algorithm specified in RFC 1951 for compression, and then creates a self-decrypting executable archive. This exe will bring up a dialog that will allow the user to select the target directory in which to decompress the files. There is also an optional splash screen that may be displayed before decompression. The text for this splash screen may be set with the banner_text property. You can also set the text that appears on the title bar of each dialog box using the caption_text property.
Example (Creating a Self-Decrypting Archive)
class.ArchiveFile = "c:\test.exe" class.RecurseSubdirectories = true class.SourceDirectory = "c:\foo\" class.CaptionText = "Testing SDA" class.BannerText = "Press continue to decompress the archive." class.CreateSDA() class.ArchiveFile = "c:\test.exe" class.SourceFile = "c:\foo\bar.dat" class.CaptionText = "Testing SDA" class.BannerText = "Press continue to decompress the archive." class.CreateSDA()
Note: When creating a self-decrypting archive which exceeds 4 GB or more of uncompressed data or which contains more than 64K files, the class will create a 64-bit archive.
The self-decrypting archive that is created by the SDA class is a Windows application. However, there are command line options available if you wish to batch multiple files. The options are:
|targetpath||Path to decompress the archive to. This overrides the extract_to_path. "." indicates the current directory (if no extract_to_path was specified and no targetpath is given, the archive is decompressed to the current directory).|
|overwrite||If set to true, the archive will automatically overwrite existing files (thus suppressing the message box asking you to overwrite or not)|
|displaymessage||If set to false, it will suppress the display of the "Extraction Complete" message after the archive has finished (this may also be accomplished by setting the CompleteMessage config setting to "").|
|openfile||If set to false, this option will override opening the file indicated by file_to_execute. (Alternatively, set file_to_execute to "").|
|password||The password used to decrypt the archive. If the archive is not encrypted this option is ignored. However if the archive is encrypted and no password is supplied, decompression will fail.|
For example, the following suppresses all questions and message boxes, and decompress to the current
directory, use the following options:
SDAExtractor /targetpath="." /overwrite=1 /displaymessage=0 /openfile=0 /password=pass
Note that if you run the self-decrypting archive with any command line options, the pop up message box containing the banner_text will be suppressed.
The following is the full list of the properties of the class with short descriptions. Click on the links for further details.
|archive_file||The name of the self-decrypting archive to create.|
|banner_text||Optional banner text to show before the self-extraction starts.|
|caption_text||Optional caption (title) text for the self-extractor dialogs.|
|compression_level||The compression level to use.|
|extract_to_path||Optional target directory for the self-extractor.|
|file_to_execute||Optional file to execute (open) after the archive is extracted.|
|password||An optional password for the self-decrypting archive.|
|recurse_subdirectories||Whether or not to recurse into subdirectories during archive creation.|
|source_directory||Directory to be compressed into a self-decrypting archive.|
|source_file||File to be compressed into a self-decrypting archive.|
The following is the full list of the methods of the class with short descriptions. Click on the links for further details.
|config||Sets or retrieves a configuration setting.|
|create_sda||Compresses the files and creates a self-decrypting archive.|
|reset||Resets the class.|
The following is the full list of the events fired by the class with short descriptions. Click on the links for further details.
|on_error||Information about non-fatal errors.|
|on_progress||Fired as progress is made.|
|on_status||Shows the progress of the operation.|
The following is a list of configuration settings for the class with short descriptions. Click on the links for further details.
|CompleteMessage||Message to notify user that extraction has finished normally.|
|ExtractorStub||Path to optional self-extractor executable stub.|
|FileToExecuteParams||List of parameters to pass to FileToExecute.|
|InstallationMode||This setting will install to ExtractToPath, run FileToExecute, and then remove the extracted files.|
|LogLevel||Specifies the level of detail that is logged.|
|RequireAdminPrivs||Specifies whether the created executable requires Administrator privileges.|
|SilentExtraction||Specifies whether the archive should hide all UI interaction while extracting.|
|BuildInfo||Information about the product's build.|
|CodePage||The system code page used for Unicode to Multibyte translations.|
|LicenseInfo||Information about the current license.|
|ProcessIdleEvents||Whether the class uses its internal event loop to process events when the main thread is idle.|
|SelectWaitMillis||The length of time in milliseconds the class will wait when DoEvents is called if there are no events to process.|
|UseInternalSecurityAPI||Tells the class whether or not to use the system security libraries or an internal implementation.|