A new version of the Chilkat Zip component will soon be released with new features added to the self-extracting EXE functionality. This blog post lists new methods and properties, and posts links to some new examples.
(string) ExeSourceUrl: This should be set to the URL of a .zip. When WriteExe is called, it will create a .exe that does not embed the actual .zip within it. Instead, it creates a .exe that will download the .zip from the ExeSourceUrl and then extract. The EXE will automatically use the IE proxy for HTTP, if one is configured. It works with both https and http.
Here are example programs in various programming languages:
(boolean) ExeFinishNotifier: This property controls whether a finish notifier dialog is displayed after the extract is complete.
(boolean) ExeSilentProgress: Controls whether a progress dialog is displayed while extracting. If the main dialog is shown, the progress bar will be displayed within it (and no progress dialog is shown regardless of this property setting).
(string) ExeDefaultDir: The default directory path displayed in the main dialog when the .exe is run.
(string) ExeConfigFile: Self-extracting EXE configuration parameters can be (optionally) stored and loaded from XML config files. This property sets the filepath of the XML config file. A sample XML config file is shown below, with explanations to follow.
<?xml version="1.0" encoding="utf-8" ?>
<PublisherName>Chilkat Software, Inc.</PublisherName>
<UnlockCode>Anything for 30-day Trial</UnlockCode>
<MainTitle>This is the main title</MainTitle>
<MainCaption>This is the main caption</MainCaption>
<FinTitle>This is the finish notifier title</FinTitle>
<FinCaption>This is the finish notifier caption</FinCaption>
<ProgressTitle>This is the progress title</ProgressTitle>
<ProgressCaption>This is the progress caption</ProgressCaption>
<PwTitle>This is the password title</PwTitle>
<PwCaption>This is the password caption</PwCaption>
XML Config Tags:
PublisherName, PublisherUrl - For future use.
ExeFile - The filepath of the .exe to be created.
ZipFile - The .zip to be converted/embedded into a .exe.
Password - If an encrypted exe is to be produced, this is the password to be used.
AutoTemp - "1″ to auto-select a temp directory when extracting, otherwise "0″.
DeleteAfterSetup - For future use (not implemented yet).
ShowFin - "1″ to show a finish notification dialog, otherwise "0″.
ShowMain - "1″ to show the main dialog, otherwise "0″.
ShowProgress - "1″ to show a progress dialog, otherwise "0″. The progress dialog is only shown in the event that the main dialog is hidden.
WaitForSetup - "1″ to wait until the setup EXE completes before the self-extracting EXE exits, otherwise "0″.
Encryption - "1″ to create an AES encrypted EXE, otherwise "0″.
KeyLength - The key length for an AES encrypted EXE (128, 192, or 256).
MainTitle - The title bar of the main dialog.
MainCaption - The caption in the main dialog.
FinTitle - The title bar of the finish notifier dialog.
FinCaption - The caption of the finish notifier dialog.
ProgressTitle - The title bar of the progress dialog.
ProgressCaption - The caption of the progress dialog.
PwTitle - The title bar of the password dialog.
PwCaption - The caption of the password dialog.
SetupExe - The filepath of the EXE within the .zip that is to be run after self-extraction.
UnzipDir - When set, the .exe will extract to this hard-coded unzip directory.
DefaultDir - The default directory path displayed in the main dialog.
IconFile - A custom icon to be embedded within the .exe created.
Url - When set, the .exe will download a .zip from this URL and extract. The .zip is not embedded directly within the .exe.
NOTE: All strings in the Zip component properties and XML config files may use environment variables, such as "%PROGRAMFILES%". Environment variables should be delimited by % (percent) characters.
(in pseudo-code because the method signature varies according to programming language)
void SetExeConfigParam( string xmlConfigTag, string value ) - Can be called to set any XML config parameter w/out using an XML config file. For example, to set the finish notifier title, call SetExeConfigParam("FinTitle","this is the title…")
string GetExeConfigParam( string xmlConfigTag ) - Gets the current setting of any config parameter.
Note: Future self-extracting EXE functionality will be added via the XML config params and SetExeConfigParam/GetExeConfigParam mechanisms, to avoid the proliferation of new Chilkat Zip properties…
The following examples use SetExeConfigParam to customize the dialog titles and captions: