Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Self-Extract EXE to Temp and Auto-Run Setup Program
How to create a self-extracting EXE that extracts to a temp directory and auto-runs a setup program after extracting. uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ChilkatZip2Lib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var zip: TChilkatZip2; success: Integer; recurse: Integer; begin zip := TChilkatZip2.Create(Self); // Any string unlocks the component for the 1st 30-days. success := zip.UnlockComponent('Anything for 30-day trial'); if (success <> 1) then begin ShowMessage(zip.LastErrorText); end; // Initialize the zip object. Because we're creating // a self-extracting EXE in this example, the filename // passed to NewZip will never actually be created. success := zip.NewZip('notUsed.zip'); if (success <> 1) then begin ShowMessage(zip.LastErrorText); end; // Append a directory tree. The AppendFiles does // not read the file contents or append them to the zip // object in memory. It simply appends references // to the files so that when WriteExe (or WriteZipAndClose, // or WriteZip, etc.) is called, the files are compressed // and added to the archive. recurse := 1; zip.AppendFiles('c:/temp/a/*',recurse); // Indicate that when the EXE is run, it should automatically // extract to a temp directory. zip.AutoTemp := 1; // If you want the EXE to self-extract with no user-interface, // add this: zip.ExeNoInterface := 1; zip.ExeSilentProgress := 1; zip.ExeWaitForSetup := 0; // Indicate that after extracting, a setup program should be run: zip.AutoRun := 'setup.exe'; // Pass these command line params to the AutoRun program: zip.AutoRunParams := '-a -b -c'; // Write "mySfx.exe" success := zip.WriteExe('mySfx.exe'); if (success <> 1) then begin ShowMessage(zip.LastErrorText); end; ShowMessage('EXE Created!'); end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.