Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Unicode C) Create Self-Extracting Executable (Windows-only)Demonstrates how to create a Windows self-extracting EXE.
#include <C_CkZipW.h> BOOL zip_AbortCheck() { return FALSE; } BOOL zip_PercentDone(int percentDone) { wprintf(L"Percent Done: %d\n",percentDone); // Explicitly abort at 25% or greater. // Remove this to allow for the HTTP download to run to completion. if (percentDone > 25) { return TRUE; } return FALSE; } void zip_ProgressInfo(const wchar_t *name, const wchar_t *value) { wprintf(L"%s: %s\n",name,value); } void ChilkatSample(void) { BOOL success; HCkZipW zip; BOOL (*fnzipAbortCheck)() = zip_AbortCheck; BOOL (*fnzipPercentDone)(int percentDone) = zip_PercentDone; void (*fnzipProgressInfo)(const wchar_t *name, const wchar_t *value) = zip_ProgressInfo; BOOL recurse; BOOL success; // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. zip = CkZipW_Create(); CkZipW_setAbortCheck(zip, fnzipAbortCheck); CkZipW_setPercentDone(zip, fnzipPercentDone); CkZipW_setProgressInfo(zip, fnzipProgressInfo); // 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 = CkZipW_NewZip(zip,L"notUsed.zip"); if (success != TRUE) { wprintf(L"%s\n",CkZipW_lastErrorText(zip)); CkZipW_Dispose(zip); return; } // 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 = TRUE; CkZipW_AppendFiles(zip,L"c:/temp/a/*",recurse); // Write "sfx.exe" success = CkZipW_WriteExe(zip,L"c:/temp/sfx.exe"); if (success != TRUE) { wprintf(L"%s\n",CkZipW_lastErrorText(zip)); CkZipW_Dispose(zip); return; } CkZipW_Dispose(zip); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.