Perl Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Perl Examples

Quick Start
Perl Unicode
Perl Byte Array
Perl Certs
Perl Email
Perl Encryption
Perl FTP
HTML-to-XML
Perl HTTP
Perl IMAP
Perl MHT
Perl MIME
Perl RSA
Perl S/MIME
Perl Signatures
Perl Socket
Perl Spider
Perl Tar
Perl Upload
Perl XML
Perl XMP
Perl Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
Bzip2
LZW
Bz2
Icon

 

 

 

 

 

 

 

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.

Download Chilkat Perl Module

use chilkat;

$zip = new chilkat::CkZip();

#  Any string unlocks the component for the 1st 30-days.
$success = $zip->UnlockComponent("Anything for 30-day trial");
if ($success != 1) {
    print $zip->lastErrorText() . "\n";
    exit;
}

#  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) {
    print $zip->lastErrorText() . "\n";
    exit;
}

#  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->put_AutoTemp(1);

#  If you want the EXE to self-extract with no user-interface,
#  add this:
$zip->put_ExeNoInterface(1);
$zip->put_ExeSilentProgress(1);
$zip->put_ExeWaitForSetup(0);

#  Indicate that after extracting, a setup program should be run:
$zip->put_AutoRun("setup.exe");

#  Pass these command line params to the AutoRun program:
$zip->put_AutoRunParams("-a -b -c");

#  Write "mySfx.exe"
$success = $zip->WriteExe("mySfx.exe");
if ($success != 1) {
    print $zip->lastErrorText() . "\n";
    exit;
}

print "EXE Created!" . "\n";
 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2008 Chilkat Software, Inc. All Rights Reserved.