Zip2Exe 0.3: based on header files, improved interface, Modern UI support, new script code, improved folder detection
git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@2977 212acab6-be3b-0410-9dea-997c60f758d6
This commit is contained in:
parent
7d99fd6700
commit
f7bed1c222
7 changed files with 183 additions and 101 deletions
78
Contrib/zip2exe/Base.nsh
Normal file
78
Contrib/zip2exe/Base.nsh
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
;Change this file to customize zip2exe generated installers
|
||||||
|
|
||||||
|
Name "${ZIP2EXE_NAME}"
|
||||||
|
OutFile "${ZIP2EXE_OUTFILE}"
|
||||||
|
|
||||||
|
AllowRootDirInstall true
|
||||||
|
|
||||||
|
!ifdef ZIP2EXE_COMPERSSOR_ZLIB
|
||||||
|
SetCompressor zlib
|
||||||
|
!else ifdef ZIP2EXE_COMPERSSOR_BZIP2
|
||||||
|
SetCompressor bzip2
|
||||||
|
!endif
|
||||||
|
|
||||||
|
!ifdef ZIP2EXE_INSTALLDIR
|
||||||
|
|
||||||
|
InstallDir "${ZIP2EXE_INSTALLDIR}"
|
||||||
|
|
||||||
|
Function zip2exe.SetOutPath
|
||||||
|
SetOutPath "$INSTDIR"
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
!else ifdef ZIP2EXE_INSTALLDIR_WINAMP
|
||||||
|
|
||||||
|
InstallDir "$PROGRAMFILES\Winamp"
|
||||||
|
InstallDirRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Winamp" "UninstallString"
|
||||||
|
|
||||||
|
Function .onVerifyInstDir
|
||||||
|
IfFileExists $INSTDIR\winamp.exe WinampInstalled
|
||||||
|
Abort
|
||||||
|
WinampInstalled:
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
!ifdef ZIP2EXE_INSTALLDIR_WINAMPMODE
|
||||||
|
|
||||||
|
Var ZIP2EXE_TEMP1
|
||||||
|
Var ZIP2EXE_TEMP2
|
||||||
|
|
||||||
|
Function zip2exe.SetOutPath
|
||||||
|
!ifdef ZIP2EXE_INSTALLDIR_SKINS
|
||||||
|
StrCpy $ZIP2EXE_TEMP1 "$INSTDIR\Skins"
|
||||||
|
!else
|
||||||
|
StrCpy $ZIP2EXE_TEMP1 "$INSTDIR\Plugins"
|
||||||
|
!endif
|
||||||
|
ReadINIStr $ZIP2EXE_TEMP2 "$INSTDIR\winamp.ini" "Winamp" "${ZIP2EXE_INSTALLDIR_WINAMPMODE}"
|
||||||
|
StrCmp $ZIP2EXE_TEMP2 "" End
|
||||||
|
IfFileExists $ZIP2EXE_TEMP2 0 End
|
||||||
|
StrCpy $ZIP2EXE_TEMP1 $ZIP2EXE_TEMP2
|
||||||
|
End:
|
||||||
|
SetOutPath $ZIP2EXE_TEMP1
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
!else
|
||||||
|
|
||||||
|
Function zip2exe.SetOutPath
|
||||||
|
!ifdef ZIP2EXE_INSTALLDIR_PLUGINS
|
||||||
|
SetOutPath "$INSTDIR\Plugins"
|
||||||
|
!else
|
||||||
|
SetOutPath "$INSTDIR"
|
||||||
|
!endif
|
||||||
|
FunctionEnd
|
||||||
|
|
||||||
|
!endif
|
||||||
|
|
||||||
|
!endif
|
||||||
|
|
||||||
|
!macro SECTION_BEGIN
|
||||||
|
|
||||||
|
Section ""
|
||||||
|
|
||||||
|
Call zip2exe.SetOutPath
|
||||||
|
|
||||||
|
!macroend
|
||||||
|
|
||||||
|
!macro SECTION_END
|
||||||
|
|
||||||
|
SectionEnd
|
||||||
|
|
||||||
|
!macroend
|
4
Contrib/zip2exe/Classic.nsh
Normal file
4
Contrib/zip2exe/Classic.nsh
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
;Change this file to customize zip2exe generated installers with a classic interface
|
||||||
|
|
||||||
|
Page directory
|
||||||
|
Page instfiles
|
8
Contrib/zip2exe/Modern.nsh
Normal file
8
Contrib/zip2exe/Modern.nsh
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
;Change this file to customize zip2exe generated installers with a modern interface
|
||||||
|
|
||||||
|
!include "MUI.nsh"
|
||||||
|
|
||||||
|
!insertmacro MUI_PAGE_DIRECTORY
|
||||||
|
!insertmacro MUI_PAGE_INSTFILES
|
||||||
|
|
||||||
|
!insertmacro MUI_LANGUAGE "English"
|
|
@ -1,6 +1,8 @@
|
||||||
#include <windows.h>
|
#include <windows.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <commctrl.h>
|
#include <commctrl.h>
|
||||||
|
// version 0.3 (based on header files, improved interface, Modern UI support, new script code, improved folder detection) by Joost Verburg
|
||||||
|
|
||||||
// portions Copyright © 1999-2001 Miguel Garrido (mgarrido01@hotmail.com)
|
// portions Copyright © 1999-2001 Miguel Garrido (mgarrido01@hotmail.com)
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
|
@ -9,7 +11,7 @@ extern "C"
|
||||||
};
|
};
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
|
|
||||||
const char *g_errcaption="ZIP2EXE Error";
|
const char *g_errcaption="Zip2Exe Error";
|
||||||
|
|
||||||
HINSTANCE g_hInstance;
|
HINSTANCE g_hInstance;
|
||||||
HWND g_hwnd;
|
HWND g_hwnd;
|
||||||
|
@ -17,6 +19,7 @@ HANDLE g_hThread;
|
||||||
char g_cmdline[1024];
|
char g_cmdline[1024];
|
||||||
int g_extracting;
|
int g_extracting;
|
||||||
int g_bzip2;
|
int g_bzip2;
|
||||||
|
int g_mui;
|
||||||
int g_zipfile_size;
|
int g_zipfile_size;
|
||||||
|
|
||||||
char *g_options="";//"/V3";
|
char *g_options="";//"/V3";
|
||||||
|
@ -424,13 +427,10 @@ void makeEXE(HWND hwndDlg)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
GetDlgItemText(hwndDlg,IDC_INSTNAME,buf,sizeof(buf));
|
GetDlgItemText(hwndDlg,IDC_INSTNAME,buf,sizeof(buf));
|
||||||
fprintf(fp,"SetCompressor %s\n",g_bzip2?"bzip2":"zlib");
|
fprintf(fp,"!define ZIP2EXE_NAME `%s`\n",buf);
|
||||||
fprintf(fp,"AllowRootDirInstall true\n");
|
|
||||||
fprintf(fp,"Name `%s`\n",buf);
|
|
||||||
fprintf(fp,"Caption `%s Self Extractor`\n",buf);
|
|
||||||
fprintf(fp,"InstallButtonText Extract\n");
|
|
||||||
GetDlgItemText(hwndDlg,IDC_OUTFILE,buf,sizeof(buf));
|
GetDlgItemText(hwndDlg,IDC_OUTFILE,buf,sizeof(buf));
|
||||||
fprintf(fp,"OutFile `%s`\n",buf);
|
fprintf(fp,"!define ZIP2EXE_OUTFILE `%s`\n",buf);
|
||||||
|
fprintf(fp,"!define ZIP2EXE_COMPRESSOR_%s\n",g_bzip2?"BZIP2":"ZLIB");
|
||||||
GetDlgItemText(hwndDlg,IDC_INSTPATH,buf,sizeof(buf));
|
GetDlgItemText(hwndDlg,IDC_INSTPATH,buf,sizeof(buf));
|
||||||
char *outpath = "$INSTDIR";
|
char *outpath = "$INSTDIR";
|
||||||
int iswinamp=0;
|
int iswinamp=0;
|
||||||
|
@ -440,16 +440,11 @@ void makeEXE(HWND hwndDlg)
|
||||||
if (!strcmp(buf,gp_winamp))
|
if (!strcmp(buf,gp_winamp))
|
||||||
{
|
{
|
||||||
iswinamp=1;
|
iswinamp=1;
|
||||||
fprintf(fp,"Function SetMyOutPath\n"
|
|
||||||
" SetOutPath $INSTDIR\n"
|
|
||||||
"FunctionEnd\n");
|
|
||||||
}
|
}
|
||||||
if (!strcmp(buf,gp_winamp_plugins))
|
if (!strcmp(buf,gp_winamp_plugins))
|
||||||
{
|
{
|
||||||
iswinamp=1;
|
iswinamp=1;
|
||||||
fprintf(fp,"Function SetMyOutPath\n"
|
fprintf(fp,"!define ZIP2EXE_INSTALLDIR_PLUGINS\n");
|
||||||
" SetOutPath $INSTDIR\\Plugins\n"
|
|
||||||
"FunctionEnd\n");
|
|
||||||
}
|
}
|
||||||
if (!strcmp(buf,gp_winamp_vis))
|
if (!strcmp(buf,gp_winamp_vis))
|
||||||
{
|
{
|
||||||
|
@ -465,49 +460,31 @@ void makeEXE(HWND hwndDlg)
|
||||||
{
|
{
|
||||||
iswinamp=1;
|
iswinamp=1;
|
||||||
iswinampmode="SkinDir";
|
iswinampmode="SkinDir";
|
||||||
|
fprintf(fp,"!define ZIP2EXE_INSTALLDIR_SKINS\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (iswinamp)
|
if (iswinamp)
|
||||||
{
|
{
|
||||||
fprintf(fp,"InstallDir `$PROGRAMFILES\\Winamp`\n");
|
fprintf(fp,"!define ZIP2EXE_INSTALLDIR_WINAMP\n");
|
||||||
fprintf(fp,"InstallDirRegKey HKEY_LOCAL_MACHINE `Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Winamp` `UninstallString`\n");
|
|
||||||
|
|
||||||
fprintf(fp,"Function .onVerifyInstDir\n"
|
|
||||||
" IfFileExists $INSTDIR\\winamp.exe WinampInstalled\n"
|
|
||||||
" Abort\n"
|
|
||||||
" WinampInstalled:\n"
|
|
||||||
"FunctionEnd\n");
|
|
||||||
|
|
||||||
if (iswinampmode)
|
if (iswinampmode)
|
||||||
{
|
{
|
||||||
fprintf(fp,"Function SetMyOutPath\n"
|
fprintf(fp,"!define ZIP2EXE_INSTALLDIR_WINAMPMODE `%s`\n",iswinampmode);
|
||||||
" StrCpy $1 $INSTDIR\\Plugins\n"
|
|
||||||
" ReadINIStr $9 $INSTDIR\\winamp.ini Winamp %s\n"
|
|
||||||
" StrCmp $9 '' End\n"
|
|
||||||
" IfFileExists $9 0 End\n"
|
|
||||||
" StrCpy $1 $9\n"
|
|
||||||
" End:\n"
|
|
||||||
" SetOutPath $1\n"
|
|
||||||
"FunctionEnd\n",iswinampmode);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // set out path to $INSTDIR
|
else // set out path to $INSTDIR
|
||||||
{
|
{
|
||||||
fprintf(fp,"InstallDir `%s`\n",buf);
|
fprintf(fp,"!define ZIP2EXE_INSTALLDIR `%s`\n",buf);
|
||||||
fprintf(fp,"Function SetMyOutPath\n"
|
|
||||||
" SetOutPath $INSTDIR\n"
|
|
||||||
"FunctionEnd\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
GetDlgItemText(hwndDlg,IDC_DESCTEXT,buf,sizeof(buf));
|
fprintf(fp,"!include `${NSISDIR}\\Contrib\\zip2exe\\Base.nsh`\n");
|
||||||
fprintf(fp,"DirText `%s`\n",buf);
|
fprintf(fp,"!include `${NSISDIR}\\Contrib\\zip2exe\\%s.nsh`\n",g_mui?"Modern":"Classic");
|
||||||
|
|
||||||
fprintf(fp,"Section\n");
|
fprintf(fp,"!insertmacro SECTION_BEGIN\n");
|
||||||
fprintf(fp,"Call SetMyOutPath\n");
|
|
||||||
fprintf(fp,"File /r `%s\\*.*`\n",tempzip_path);
|
fprintf(fp,"File /r `%s\\*.*`\n",tempzip_path);
|
||||||
fprintf(fp,"SectionEnd\n");
|
fprintf(fp,"!insertmacro SECTION_END\n");
|
||||||
fclose(fp);
|
|
||||||
|
|
||||||
|
fclose(fp);
|
||||||
|
|
||||||
char g_makensis_path[MAX_PATH];
|
char g_makensis_path[MAX_PATH];
|
||||||
char *p=g_makensis_path;
|
char *p=g_makensis_path;
|
||||||
|
@ -547,8 +524,8 @@ void makeEXE(HWND hwndDlg)
|
||||||
|
|
||||||
BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
static int ids[]={IDC_SZIPFRAME,IDC_BROWSE,IDC_ZIPFILE,IDC_ZIPINFO_SUMMARY,IDC_ZIPINFO_FILES,IDC_OFRAME,IDC_INAMEST,
|
static int ids[]={IDC_INFO,IDC_NSISICON,IDC_SZIPFRAME,IDC_BROWSE,IDC_ZIPFILE,IDC_ZIPINFO_SUMMARY,IDC_ZIPINFO_FILES,IDC_OFRAME,IDC_INAMEST,
|
||||||
IDC_INSTNAME,IDC_DTEXTST,IDC_DESCTEXT,IDC_DEPST,IDC_INSTPATH,IDC_OEFST,IDC_OUTFILE,IDC_BROWSE2,IDC_COMPRESSOR,IDC_RADIO1,IDC_RADIO2};
|
IDC_INSTNAME,IDC_INSTPATH,IDC_OEFST,IDC_OUTFILE,IDC_BROWSE2,IDC_COMPRESSOR,IDC_ZLIB,IDC_BZIP2,IDC_INTERFACE,IDC_MODERNUI,IDC_CLASSICUI};
|
||||||
static HICON hIcon;
|
static HICON hIcon;
|
||||||
static HFONT hFont;
|
static HFONT hFont;
|
||||||
if (uMsg == WM_DESTROY) { if (hIcon) DeleteObject(hIcon); hIcon=0; if (hFont) DeleteObject(hFont); hFont=0; }
|
if (uMsg == WM_DESTROY) { if (hIcon) DeleteObject(hIcon); hIcon=0; if (hFont) DeleteObject(hFont); hFont=0; }
|
||||||
|
@ -556,14 +533,15 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
case WM_INITDIALOG:
|
case WM_INITDIALOG:
|
||||||
g_hwnd=hwndDlg;
|
g_hwnd=hwndDlg;
|
||||||
CheckDlgButton(hwndDlg,IDC_RADIO2,BST_CHECKED);
|
CheckDlgButton(hwndDlg,IDC_BZIP2,BST_CHECKED);
|
||||||
|
CheckDlgButton(hwndDlg,IDC_MODERNUI,BST_CHECKED);
|
||||||
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_poi);
|
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_poi);
|
||||||
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$TEMP");
|
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$TEMP");
|
||||||
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$SYSDIR");
|
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$SYSDIR");
|
||||||
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$WINDIR");
|
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$WINDIR");
|
||||||
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$DESKTOP");
|
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$DESKTOP");
|
||||||
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$DESKTOP\\Poop");
|
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$DESKTOP\\YourNameHere");
|
||||||
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$PROGRAMFILES\\Poop");
|
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$PROGRAMFILES\\YourNameHere");
|
||||||
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$STARTMENU");
|
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$STARTMENU");
|
||||||
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$SMPROGRAMS");
|
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)"$SMPROGRAMS");
|
||||||
|
|
||||||
|
@ -572,11 +550,11 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_winamp_vis);
|
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_winamp_vis);
|
||||||
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_winamp_dsp);
|
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_winamp_dsp);
|
||||||
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_winamp_skins);
|
SendDlgItemMessage(hwndDlg,IDC_INSTPATH,CB_ADDSTRING,0,(LPARAM)gp_winamp_skins);
|
||||||
|
|
||||||
|
SetDlgItemText(hwndDlg,IDC_INSTPATH,gp_poi);
|
||||||
|
|
||||||
SetDlgItemText(hwndDlg,IDC_INSTPATH,gp_poi);
|
hIcon=LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_ICON1));
|
||||||
SetDlgItemText(hwndDlg,IDC_DESCTEXT,"Select the folder where you would like to extract the files to:");
|
SetClassLong(hwndDlg,GCL_HICON,(long)hIcon);
|
||||||
hIcon=LoadIcon(g_hInstance,MAKEINTRESOURCE(IDI_ICON1));
|
|
||||||
SetClassLong(hwndDlg,GCL_HICON,(long)hIcon);
|
|
||||||
|
|
||||||
hFont=CreateFont(15,0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET,
|
hFont=CreateFont(15,0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET,
|
||||||
OUT_CHARACTER_PRECIS,
|
OUT_CHARACTER_PRECIS,
|
||||||
|
@ -613,10 +591,10 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
OPENFILENAME l={sizeof(l),};
|
OPENFILENAME l={sizeof(l),};
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
l.hwndOwner = hwndDlg;
|
l.hwndOwner = hwndDlg;
|
||||||
l.lpstrFilter = "ZIP files\0*.zip\0All files\0*.*\0";
|
l.lpstrFilter = "ZIP Files\0*.zip\0All Files\0*.*\0";
|
||||||
l.lpstrFile = buf;
|
l.lpstrFile = buf;
|
||||||
l.nMaxFile = 1023;
|
l.nMaxFile = 1023;
|
||||||
l.lpstrTitle = "Open ZIP file";
|
l.lpstrTitle = "Open ZIP File";
|
||||||
l.lpstrDefExt = "zip";
|
l.lpstrDefExt = "zip";
|
||||||
l.lpstrInitialDir = NULL;
|
l.lpstrInitialDir = NULL;
|
||||||
l.Flags = OFN_HIDEREADONLY|OFN_EXPLORER|OFN_PATHMUSTEXIST;
|
l.Flags = OFN_HIDEREADONLY|OFN_EXPLORER|OFN_PATHMUSTEXIST;
|
||||||
|
@ -651,10 +629,10 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
OPENFILENAME l={sizeof(l),};
|
OPENFILENAME l={sizeof(l),};
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
l.hwndOwner = hwndDlg;
|
l.hwndOwner = hwndDlg;
|
||||||
l.lpstrFilter = "EXE files\0*.exe\0All files\0*.*\0";
|
l.lpstrFilter = "Executables\0*.exe\0All Files\0*.*\0";
|
||||||
l.lpstrFile = buf;
|
l.lpstrFile = buf;
|
||||||
l.nMaxFile = 1023;
|
l.nMaxFile = 1023;
|
||||||
l.lpstrTitle = "Select output EXE file";
|
l.lpstrTitle = "Select Output EXE File";
|
||||||
l.lpstrDefExt = "exe";
|
l.lpstrDefExt = "exe";
|
||||||
l.lpstrInitialDir = NULL;
|
l.lpstrInitialDir = NULL;
|
||||||
l.Flags = OFN_HIDEREADONLY|OFN_EXPLORER;
|
l.Flags = OFN_HIDEREADONLY|OFN_EXPLORER;
|
||||||
|
@ -676,7 +654,7 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
int x;
|
int x;
|
||||||
for (x = 0; x < sizeof(ids)/sizeof(ids[0]); x ++)
|
for (x = 0; x < sizeof(ids)/sizeof(ids[0]); x ++)
|
||||||
ShowWindow(GetDlgItem(hwndDlg,ids[x]),SW_SHOWNA);
|
ShowWindow(GetDlgItem(hwndDlg,ids[x]),SW_SHOWNA);
|
||||||
SetDlgItemText(hwndDlg,IDOK,"Convert");
|
SetDlgItemText(hwndDlg,IDOK,"&Generate");
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDOK),1);
|
EnableWindow(GetDlgItem(hwndDlg,IDOK),1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -693,14 +671,15 @@ BOOL CALLBACK DlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
if (!made)
|
if (!made)
|
||||||
{
|
{
|
||||||
g_bzip2=!IsDlgButtonChecked(hwndDlg,IDC_RADIO1);
|
g_bzip2=!IsDlgButtonChecked(hwndDlg,IDC_ZLIB);
|
||||||
|
g_mui=!IsDlgButtonChecked(hwndDlg,IDC_CLASSICUI);
|
||||||
|
|
||||||
SetDlgItemText(g_hwnd, IDC_OUTPUTTEXT, "");
|
SetDlgItemText(g_hwnd, IDC_OUTPUTTEXT, "");
|
||||||
int x;
|
int x;
|
||||||
for (x = 0; x < sizeof(ids)/sizeof(ids[0]); x ++)
|
for (x = 0; x < sizeof(ids)/sizeof(ids[0]); x ++)
|
||||||
ShowWindow(GetDlgItem(hwndDlg,ids[x]),SW_HIDE);
|
ShowWindow(GetDlgItem(hwndDlg,ids[x]),SW_HIDE);
|
||||||
ShowWindow(GetDlgItem(hwndDlg,IDC_OUTPUTTEXT),SW_SHOWNA);
|
ShowWindow(GetDlgItem(hwndDlg,IDC_OUTPUTTEXT),SW_SHOWNA);
|
||||||
SetDlgItemText(hwndDlg,IDOK,"Close");
|
SetDlgItemText(hwndDlg,IDOK,"&Close");
|
||||||
EnableWindow(GetDlgItem(hwndDlg,IDOK),0);
|
EnableWindow(GetDlgItem(hwndDlg,IDOK),0);
|
||||||
|
|
||||||
makeEXE(hwndDlg);
|
makeEXE(hwndDlg);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
//Microsoft Developer Studio generated resource script.
|
// Microsoft Visual C++ generated resource script.
|
||||||
//
|
//
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
|
|
||||||
|
@ -26,39 +26,45 @@ LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||||
// Dialog
|
// Dialog
|
||||||
//
|
//
|
||||||
|
|
||||||
IDD_DIALOG1 DIALOG DISCARDABLE 0, 0, 361, 234
|
IDD_DIALOG1 DIALOGEX 0, 0, 360, 271
|
||||||
STYLE DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION |
|
||||||
CAPTION "Nullsoft ZIP2EXE v0.20"
|
WS_SYSMENU
|
||||||
FONT 8, "MS Sans Serif"
|
CAPTION "Zip2Exe 0.3"
|
||||||
|
FONT 8, "MS Shell Dlg", 0, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
PUSHBUTTON "Open &ZIP",IDC_BROWSE,13,17,49,14
|
ICON IDI_ICON1,IDC_NSISICON,6,6,20,20
|
||||||
EDITTEXT IDC_ZIPFILE,66,18,284,12,ES_AUTOHSCROLL | ES_READONLY |
|
LTEXT "Zip2Exe converts a ZIP file to a self extracting archive (a simple NSIS installer). To customize the NSIS script code, modify the header files in the 'Contrib\\zip2exe' folder.",
|
||||||
|
IDC_INFO,36,6,312,18
|
||||||
|
GROUPBOX "Source ZIP File",IDC_SZIPFRAME,7,31,347,101
|
||||||
|
PUSHBUTTON "&Open...",IDC_BROWSE,18,48,54,13
|
||||||
|
EDITTEXT IDC_ZIPFILE,78,48,264,12,ES_AUTOHSCROLL | ES_READONLY |
|
||||||
NOT WS_TABSTOP
|
NOT WS_TABSTOP
|
||||||
LISTBOX IDC_ZIPINFO_FILES,13,43,335,62,LBS_NOINTEGRALHEIGHT |
|
LTEXT "",IDC_ZIPINFO_SUMMARY,18,66,324,8
|
||||||
|
LISTBOX IDC_ZIPINFO_FILES,18,78,324,45,LBS_NOINTEGRALHEIGHT |
|
||||||
LBS_NOSEL | WS_VSCROLL
|
LBS_NOSEL | WS_VSCROLL
|
||||||
EDITTEXT IDC_INSTNAME,81,124,267,12,ES_AUTOHSCROLL
|
GROUPBOX "Output Installer Options",IDC_OFRAME,6,138,347,108
|
||||||
EDITTEXT IDC_DESCTEXT,81,139,267,12,ES_AUTOHSCROLL
|
LTEXT "Installer Name",IDC_INAMEST,18,156,48,8
|
||||||
COMBOBOX IDC_INSTPATH,81,154,268,126,CBS_DROPDOWN | WS_VSCROLL |
|
EDITTEXT IDC_INSTNAME,78,156,264,12,ES_AUTOHSCROLL
|
||||||
|
LTEXT "Interface",IDC_INTERFACE,18,174,30,8
|
||||||
|
CONTROL "Modern",IDC_MODERNUI,"Button",BS_AUTORADIOBUTTON,78,174,
|
||||||
|
42,12
|
||||||
|
CONTROL "Classic",IDC_CLASSICUI,"Button",BS_AUTORADIOBUTTON,132,
|
||||||
|
174,42,12
|
||||||
|
LTEXT "Default Folder",IDC_DEPST,18,192,48,8
|
||||||
|
COMBOBOX IDC_INSTPATH,78,192,264,126,CBS_DROPDOWN | WS_VSCROLL |
|
||||||
WS_TABSTOP
|
WS_TABSTOP
|
||||||
EDITTEXT IDC_OUTFILE,81,169,224,12,ES_AUTOHSCROLL
|
LTEXT "Output EXE File",IDC_OEFST,18,210,54,8
|
||||||
PUSHBUTTON "Browse",IDC_BROWSE2,309,169,41,14
|
EDITTEXT IDC_OUTFILE,78,210,204,12,ES_AUTOHSCROLL
|
||||||
CONTROL "Deflate (ZIP)",IDC_RADIO1,"Button",BS_AUTORADIOBUTTON,
|
PUSHBUTTON "&Browse...",IDC_BROWSE2,288,210,54,13
|
||||||
81,185,56,10
|
LTEXT "Compression",IDC_COMPRESSOR,18,228,42,8
|
||||||
CONTROL "BZIP2",IDC_RADIO2,"Button",BS_AUTORADIOBUTTON,139,186,
|
CONTROL "BZIP2",IDC_BZIP2,"Button",BS_AUTORADIOBUTTON,78,228,36,
|
||||||
36,10
|
10
|
||||||
LTEXT "Compressor:",IDC_COMPRESSOR,13,186,42,8
|
CONTROL "ZLIB (Deflate)",IDC_ZLIB,"Button",BS_AUTORADIOBUTTON,
|
||||||
DEFPUSHBUTTON "Convert",IDOK,304,213,50,14,WS_DISABLED
|
132,228,60,10
|
||||||
GROUPBOX "Source ZIP File",IDC_SZIPFRAME,7,7,347,102
|
DEFPUSHBUTTON "&Generate",IDOK,306,252,48,14,WS_DISABLED
|
||||||
LTEXT "",IDC_ZIPINFO_SUMMARY,13,33,245,8
|
PUSHBUTTON "&Test",IDC_TEST,246,252,49,14,NOT WS_VISIBLE
|
||||||
GROUPBOX "Output",IDC_OFRAME,7,113,347,90
|
PUSHBUTTON "< &Back",IDC_BACK,6,252,48,14,NOT WS_VISIBLE
|
||||||
LTEXT "Default extract path:",IDC_DEPST,13,156,66,8
|
EDITTEXT IDC_OUTPUTTEXT,0,0,360,246,ES_MULTILINE | ES_AUTOVSCROLL |
|
||||||
LTEXT "Description text:",IDC_DTEXTST,13,142,66,8
|
|
||||||
LTEXT "Output EXE file:",IDC_OEFST,13,171,51,8
|
|
||||||
LTEXT "Installer name",IDC_INAMEST,13,126,66,8
|
|
||||||
PUSHBUTTON "Test",IDC_TEST,251,213,50,14,NOT WS_VISIBLE
|
|
||||||
PUSHBUTTON "< Back",IDC_BACK,7,213,50,14,NOT WS_VISIBLE
|
|
||||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,210,347,1
|
|
||||||
EDITTEXT IDC_OUTPUTTEXT,7,7,347,202,ES_MULTILINE | ES_AUTOVSCROLL |
|
|
||||||
ES_AUTOHSCROLL | ES_READONLY | NOT WS_VISIBLE |
|
ES_AUTOHSCROLL | ES_READONLY | NOT WS_VISIBLE |
|
||||||
WS_VSCROLL | WS_HSCROLL
|
WS_VSCROLL | WS_HSCROLL
|
||||||
END
|
END
|
||||||
|
@ -70,14 +76,14 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
#ifdef APSTUDIO_INVOKED
|
#ifdef APSTUDIO_INVOKED
|
||||||
GUIDELINES DESIGNINFO DISCARDABLE
|
GUIDELINES DESIGNINFO
|
||||||
BEGIN
|
BEGIN
|
||||||
IDD_DIALOG1, DIALOG
|
IDD_DIALOG1, DIALOG
|
||||||
BEGIN
|
BEGIN
|
||||||
LEFTMARGIN, 7
|
LEFTMARGIN, 7
|
||||||
RIGHTMARGIN, 354
|
RIGHTMARGIN, 353
|
||||||
TOPMARGIN, 7
|
TOPMARGIN, 7
|
||||||
BOTTOMMARGIN, 227
|
BOTTOMMARGIN, 264
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
#endif // APSTUDIO_INVOKED
|
#endif // APSTUDIO_INVOKED
|
||||||
|
@ -89,18 +95,18 @@ END
|
||||||
// TEXTINCLUDE
|
// TEXTINCLUDE
|
||||||
//
|
//
|
||||||
|
|
||||||
1 TEXTINCLUDE DISCARDABLE
|
1 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"resource.h\0"
|
"resource.h\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
2 TEXTINCLUDE DISCARDABLE
|
2 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"#include ""afxres.h""\r\n"
|
"#include ""afxres.h""\r\n"
|
||||||
"\0"
|
"\0"
|
||||||
END
|
END
|
||||||
|
|
||||||
3 TEXTINCLUDE DISCARDABLE
|
3 TEXTINCLUDE
|
||||||
BEGIN
|
BEGIN
|
||||||
"\r\n"
|
"\r\n"
|
||||||
"\0"
|
"\0"
|
||||||
|
@ -116,14 +122,14 @@ END
|
||||||
|
|
||||||
// Icon with lowest ID value placed first to ensure application icon
|
// Icon with lowest ID value placed first to ensure application icon
|
||||||
// remains consistent on all systems.
|
// remains consistent on all systems.
|
||||||
IDI_ICON1 ICON DISCARDABLE "icon.ico"
|
IDI_ICON1 ICON "icon.ico"
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// 24
|
// RT_MANIFEST
|
||||||
//
|
//
|
||||||
|
|
||||||
1 24 MOVEABLE PURE "zip2exe.xml"
|
1 RT_MANIFEST "zip2exe.xml"
|
||||||
#endif // English (U.S.) resources
|
#endif // English (U.S.) resources
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
//{{NO_DEPENDENCIES}}
|
//{{NO_DEPENDENCIES}}
|
||||||
// Microsoft Developer Studio generated include file.
|
// Microsoft Visual C++ generated include file.
|
||||||
// Used by res.rc
|
// Used by res.rc
|
||||||
//
|
//
|
||||||
#define IDD_DIALOG1 101
|
#define IDD_DIALOG1 101
|
||||||
|
@ -7,7 +7,6 @@
|
||||||
#define IDC_ZIPFILE 1000
|
#define IDC_ZIPFILE 1000
|
||||||
#define IDC_BROWSE 1001
|
#define IDC_BROWSE 1001
|
||||||
#define IDC_ZIPINFO_SUMMARY 1002
|
#define IDC_ZIPINFO_SUMMARY 1002
|
||||||
#define IDC_BROWSE3 1003
|
|
||||||
#define IDC_ZIPINFO_FILES 1004
|
#define IDC_ZIPINFO_FILES 1004
|
||||||
#define IDC_INSTPATH 1005
|
#define IDC_INSTPATH 1005
|
||||||
#define IDC_DESCTEXT 1006
|
#define IDC_DESCTEXT 1006
|
||||||
|
@ -17,16 +16,20 @@
|
||||||
#define IDC_SZIPFRAME 1010
|
#define IDC_SZIPFRAME 1010
|
||||||
#define IDC_OFRAME 1011
|
#define IDC_OFRAME 1011
|
||||||
#define IDC_INAMEST 1012
|
#define IDC_INAMEST 1012
|
||||||
#define IDC_DTEXTST 1013
|
|
||||||
#define IDC_DEPST 1014
|
#define IDC_DEPST 1014
|
||||||
#define IDC_OEFST 1015
|
#define IDC_OEFST 1015
|
||||||
#define IDC_OUTPUTTEXT 1016
|
#define IDC_OUTPUTTEXT 1016
|
||||||
#define IDC_TEST 1017
|
#define IDC_TEST 1017
|
||||||
#define IDC_BACK 1018
|
#define IDC_BACK 1018
|
||||||
#define IDC_COMPILER 1019
|
#define IDC_COMPILER 1019
|
||||||
#define IDC_RADIO1 1020
|
#define IDC_ZLIB 1020
|
||||||
#define IDC_RADIO2 1021
|
#define IDC_MODERNUI 1021
|
||||||
#define IDC_COMPRESSOR 1022
|
#define IDC_COMPRESSOR 1022
|
||||||
|
#define IDC_INTERFACE 1023
|
||||||
|
#define IDC_BZIP2 1024
|
||||||
|
#define IDC_CLASSICUI 1025
|
||||||
|
#define IDC_INFO 1026
|
||||||
|
#define IDC_NSISICON 1027
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
//
|
//
|
||||||
|
@ -34,7 +37,7 @@
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 103
|
#define _APS_NEXT_RESOURCE_VALUE 103
|
||||||
#define _APS_NEXT_COMMAND_VALUE 40001
|
#define _APS_NEXT_COMMAND_VALUE 40001
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1023
|
#define _APS_NEXT_CONTROL_VALUE 1028
|
||||||
#define _APS_NEXT_SYMED_VALUE 101
|
#define _APS_NEXT_SYMED_VALUE 101
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -577,6 +577,10 @@ Section "Zip2Exe" SecContribZ2E
|
||||||
SectionIn 1 2
|
SectionIn 1 2
|
||||||
SetOutPath $INSTDIR\Bin
|
SetOutPath $INSTDIR\Bin
|
||||||
File ..\Bin\zip2exe.exe
|
File ..\Bin\zip2exe.exe
|
||||||
|
SetOutPath $INSTDIR\Contrib\zip2exe
|
||||||
|
File ..\Contrib\zip2exe\Base.nsh
|
||||||
|
File ..\Contrib\zip2exe\Modern.nsh
|
||||||
|
File ..\Contrib\zip2exe\Classic.nsh
|
||||||
SectionEnd
|
SectionEnd
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue