Sample code for 30+ languages & platforms
B4X

Create Self-Extracting Executable (Windows-only)

Demonstrates how to create a Windows self-extracting EXE.

Chilkat B4X Downloads

B4X
' Called periodically while a Chilkat method is running
' (frequency controlled by the HeartbeatMs property).
Sub zip_AbortCheck As Boolean
    
    Return False   ' Return True to abort
End Sub

Sub zip_PercentDone (percentDone As Int) As Boolean
    Log("Percent Done: " & percentDone)
    '  Explicitly abort at 25% or greater.
    '  Remove this to allow for the HTTP download to run to completion.
    If percentDone > 25 Then
        Return True   ' abort the Chilkat method in progress
    End If
    Return False   ' Return True to abort
End Sub

Sub zip_ProgressInfo (name As String, value As String)
    Log(name & ": " & value)
End Sub

Sub ChilkatExample

    Dim success As Boolean = False

    '  This example requires the Chilkat API to have been previously unlocked.
    '  See Global Unlock Sample for sample code.







    Dim zip As ChilkatZip
    zip.Initialize("zip")

    '  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 <> True Then
        Log(zip.LastErrorText)
        Return
    End If


    '  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.
    Dim recurse As Boolean = True
    zip.AppendFiles("c:/temp/a/*", recurse)

    '  Write "sfx.exe"
    success = zip.WriteExe("c:/temp/sfx.exe")
    If success <> True Then
        Log(zip.LastErrorText)
        Return
    End If

End Sub