Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*////////////////////////////////////////////////////////////////////////////////////////////////////
- Ejemplo de instaladores con clave de acceso, el usuario deberá introducir una clave para
- poder instalar el programa, ademàs de mostrar un mensaje de error al introducir una clave incorrecta.
- CODIFICADO POR JULIO CHINCHILLA
- ///////////////////////////////////////////////////////////////////////////////////////////////////*/
- ;-----------------------------------------
- ;Definición del directorio de instalción
- InstallDir "$WINDIR\..\Municipalidad DB"
- ; definición de variables para versiones, y compilaciones
- !define VERSION_MAYOR "1" #Version del programa
- !define VERSION_MENOR "0" #Versión menor
- !define VERSION_DESPLEGAR "1" #Versión a desplegar
- !define VERSION_DE_REVISION "2" #Versión de revisión
- !define VERSION_DE_COMPILACION "10" #Versión de Compilación
- !define VERSION_ARCHIVO "1" #Versión de Archivo
- !define NAMEPRG "Registro Municipal" #Nombre del programa
- !define PRODUCTID "1010" #identificación del programa
- !define COMPANY_NAME "Intranet" #Definición de compañía
- !define PRODUCT_PUBLISHER "${COMPANY_NAME}® Guatemala"
- !define ANHO "2007"
- !define IDPRG IdSS01
- !define PRODUCT_WEB_SITE "http://www.winamp.com"
- ;Algunas defeniciones para el registro
- !define PRODUCT_DIR_REGKEY "Software\Microsoft\Windows\CurrentVersion\App Paths\Uninst.exe"
- !define PRODUCT_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAMEPRG}"
- !define PRODUCT_UNINST_ROOT_KEY "HKLM"
- ;Definición del tema a escoger
- !define OMUI_THEME "CD-Clean"
- ;archivo de inclusión de interface
- !include "MUI.nsh"
- !include "FileFunc.nsh"
- ;-------------------------------------------------------
- ;Definición para imagen que irá arriba de la instalación
- !define MUI_HEADERIMAGE
- !define MUI_HEADERIMAGE_RIGHT
- !define MUI_HEADERIMAGE_BITMAP "MUI Orange Vista Theme\${OMUI_THEME}\header-r.bmp"
- ;----------------------------------------------------------
- ;Definición para imagen que irá arriba de la desinstalación
- !define MUI_HEADERIMAGE_UNBITMAP "MUI Orange Vista Theme\${OMUI_THEME}\header-r-un.bmp"
- ;----------------------------------------------------------------------------------
- ;Definición de imagen que se desplegará en la página de bienvenida en la instalciòn
- !define MUI_WELCOMEFINISHPAGE_BITMAP "MUI Orange Vista Theme\${OMUI_THEME}\wizard.bmp"
- ;-------------------------------------------------------------------------------------
- ;Definición de imagen que se desplegará en la página de bienvenida en la desinstalciòn
- !define MUI_UNWELCOMEFINISHPAGE_BITMAP "MUI Orange Vista Theme\${OMUI_THEME}\wizard-un.bmp"
- ;-----------------------------------
- ;Definición del icono del instalador
- !define MUI_ICON "MUI Orange Vista Theme\${OMUI_THEME}\installer-nopng.ico"
- ;--------------------------------------
- ;Definición del icono del desinstalador
- !define MUI_UNICON "MUI Orange Vista Theme\${OMUI_THEME}\uninstaller-nopng.ico"
- ;---------------------------------------------------
- ;Configuración para mensaje al abandonar instalación
- !define MUI_ABORTWARNING
- !define MUI_ABORTWARNING_TEXT "¿ Está seguro que desea salir de la instalación ?"
- ; ---------------------------------------------------------------------------------
- ; CONFIGURACIONES ESPECIALES AÑADIDAS
- ;----------------------------------------------------------------------------------
- !define MUI_WELCOMEPAGE_TITLE "BIENVENIDO !"
- !define MUI_WELCOMEPAGE_TEXT "Este asistente le guiará paso paso para instalar este programa, en esta computadora sólo siga las instrucciones y procedimientos.\n\n Derechos Reservados Intranet Guatemala"
- !define MUI_FINISHPAGE_NOREBOOTSUPPORT
- !define MUI_LICENSEPAGE_RADIOBUTTONS
- ; ----------------------------------------------------------------------------------
- Var STARTMENU_FOLDER
- Name "DBIntranet"
- OutFile "SetupDB-${OMUI_THEME}-BGI.exe"
- ShowInstDetails show
- XPStyle on
- ;Configuración y ordenamiento de los macros que se van a despelgar
- ;Instalación ................
- !insertmacro MUI_PAGE_WELCOME
- !insertmacro MUI_PAGE_LICENSE "Licenciaideas.rtf"
- Page custom "SetCustom" "Validar"
- !insertmacro MUI_PAGE_COMPONENTS
- !insertmacro MUI_PAGE_DIRECTORY
- !define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
- !define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\Modern UI Test"
- !define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "Start Menu Folder"
- !insertmacro MUI_PAGE_STARTMENU Application $STARTMENU_FOLDER
- !insertmacro MUI_PAGE_INSTFILES
- !insertmacro MUI_PAGE_FINISH
- ;Desinstalación................
- !insertmacro MUI_UNPAGE_WELCOME
- !insertmacro MUI_UNPAGE_CONFIRM
- !insertmacro MUI_UNPAGE_INSTFILES
- !insertmacro MUI_UNPAGE_FINISH
- !insertmacro MUI_LANGUAGE "Spanish"
- !insertmacro DriveSpace
- !insertmacro GetRoot
- #LicenseData "LicenciaIntranet.txt"
- ;---------------------------------------------------------------------------------------------------------
- ; Configuración de la Viñeta de Versión en las Propiedades del archivo de instalación
- ;---------------------------------------------------------------------------------------------------------
- VIProductVersion "${VERSION_MAYOR}.${VERSION_MENOR}.${VERSION_DE_REVISION}.${VERSION_DE_COMPILACION}"
- VIAddVersionKey /LANG=${LANG_SPANISH} "FileDescription" "Data Base"
- VIAddVersionKey /LANG=${LANG_SPANISH} "Diseño de Instalador" "Código de diseño de instalador realizado por Julio Francisco Chinchilla Valenzuela en NSIS"
- VIAddVersionKey /LANG=${LANG_SPANISH} "LegalCopyright" "©Derechos Reservados ${COMPANY_NAME} ${ANHO}"
- VIAddVersionKey /LANG=${LANG_SPANISH} "LegalTrademarks" "${COMPANY_NAME} es una marca registrada"
- VIAddVersionKey /LANG=${LANG_SPANISH} "ProductName" "DB-Municipalidad"
- VIAddVersionKey /LANG=${LANG_SPANISH} "InternalName" "DBIntranet"
- VIAddVersionKey /LANG=${LANG_SPANISH} "OriginalFilename" "SetupDBIntranet"
- VIAddVersionKey /LANG=${LANG_SPANISH} "CompanyName" "${COMPANY_NAME}"
- VIAddVersionKey /LANG=${LANG_SPANISH} "FileVersion" "${VERSION_MAYOR}.${VERSION_MENOR}"
- VIAddVersionKey /LANG=${LANG_SPANISH} "ProductVersion" "${VERSION_MAYOR}.${VERSION_MENOR}.${VERSION_DE_REVISION}.${VERSION_DE_COMPILACION}"
- ; otras configuraciónes no menos importantes
- RequestExecutionLevel admin
- SetDateSave on
- SetDatablockOptimize on
- CRCCheck on
- BrandingText "${COMPANY_NAME} - Derechos Reservados ${ANHO} - Hecho por Julio Chinchilla"
- Caption "Instalación de Base de Datos"
- CheckBitmap "Mui Orange Vista Theme\CheckBox.bmp"
- BGGradient E59A0F FFFFFF FFFFFF
- BGFont "Century Gothic" "75"
- SetFont /LANG=${LANG_SPANISH} "Microsoft Sans Serif" 9
- ;****************************************************************************************************************
- ;****************************** INICIO DE FUNCIONES Y SECCIONES **********************************
- ;****************************************************************************************************************
- Var BMPTemp
- Var VSpaceGB
- Var VSpaceGBDec
- Function .onInit
- System::Call 'kernel32::CreateMutexA(i 0, i 0, t "${IDPRG}-${OMUI_THEME}") i .r1 ?e'
- Pop $R0
- StrCmp $R0 0 +3
- MessageBox MB_OK|MB_ICONEXCLAMATION "Esta instalación ya se está ejecutando"
- Abort
- Call GetWindowsVersion
- Pop $R0
- Call Verificar_Registered_Owner
- Pop $R9
- ${GetRoot} "$INSTDIR" $7
- ${DriveSpace} "$7\" "/D=F" $8
- System::Int64Op $8 / 1074871567
- Pop $VSpaceGB
- System::Int64Op $8 % 1074871567
- Pop $VSpaceGBDec
- StrCpy $VSpaceGBDec $VSpaceGBDec 1
- InitPluginsDir
- GetTempFileName $BMPTemp
- File /oname=$BMPTemp "MUI Orange Vista Theme\${OMUI_THEME}\InstallerBMP.bmp"
- File /oname=$PLUGINSDIR\test.ini "CUSTOM_PAGES\CP_Serial.ini"
- WriteINIStr $PLUGINSDIR\test.ini "Field 13" "Text" "$BMPTemp"
- WriteINIStr $PLUGINSDIR\test.ini "Field 10" "Text" "Usuario: $R9"
- WriteINIStr $PLUGINSDIR\test.ini "Field 11" "Text" "Sistema Operativo: Microsoft Windows $R0"
- WriteINIStr $PLUGINSDIR\test.ini "Field 12" "Text" "Espacio en libre en disco $7\: $VSpaceGB.$VSpaceGBDec GB"
- HwInfo::GetSystemMemory
- Pop $0
- WriteINIStr $PLUGINSDIR\test.ini "Field 14" "Text" "Memoria Ram $0 MB"
- HwInfo::GetCpuNameAndSpeed
- Pop $0
- WriteINIStr $PLUGINSDIR\test.ini "Field 15" "Text" "$0"
- HwInfo::GetVideoCardName
- Pop $0
- WriteINIStr $PLUGINSDIR\test.ini "Field 16" "Text" "$0"
- HwInfo::GetVideoCardMemory
- Pop $0
- WriteINIStr $PLUGINSDIR\test.ini "Field 17" "Text" "$0 MB"
- Pop $0
- FunctionEnd
- LangString TEXT_IO_TITLE ${LANG_SPANISH} "INTRODUZCA UNA CLAVE DE PRODUCTO VÁLIDA"
- LangString TEXT_IO_SUBTITLE ${LANG_SPANISH} "Clave proporcionada por ®Intranet Guatemala"
- Function SetCustom
- Push $R0
- Push $R1
- Push $R2
- !insertmacro MUI_HEADER_TEXT "$(TEXT_IO_TITLE)" "$(TEXT_IO_SUBTITLE)"
- !insertmacro MUI_INSTALLOPTIONS_DISPLAY "CUSTOM_PAGES\CP_Serial.ini"
- InstallOptions::initDialog /NOUNLOAD $PLUGINSDIR\test.ini
- Pop $R0
- InstallOptions::show
- Pop $R0
- Pop $R2
- Pop $R1
- Pop $R0
- FunctionEnd
- Function Validar
- ReadINIStr $R2 "$PLUGINSDIR\test.ini" "Field 2" "State" #Aquí se lee el TextField Número 2
- ReadINIStr $R3 "$PLUGINSDIR\test.ini" "Field 3" "State" #Aquí se lee el TextField Número 3
- ReadINIStr $R4 "$PLUGINSDIR\test.ini" "Field 4" "State" #Aquí se lee el TextField Número 4
- ReadINIStr $R5 "$PLUGINSDIR\test.ini" "Field 5" "State" #Aquí se lee el TextField Número 5
- ReadINIStr $R6 "$PLUGINSDIR\test.ini" "Field 6" "State" #Aquí se lee el TextField Número 6
- ReadINIStr $R7 "$PLUGINSDIR\test.ini" "Field 7" "State" #Aquí se lee el TextField Número 7
- StrCmp $R2 "SERA" 0 incorrecta
- StrCmp $R3 "1234" 0 incorrecta
- StrCmp $R4 "PIO1" 0 incorrecta
- StrCmp $R5 "5678" 0 incorrecta
- StrCmp $R6 "INUT" 0 incorrecta
- StrCmp $R7 "IL12" ADELANTE incorrecta
- incorrecta:
- MessageBox MB_OK|MB_ICONEXCLAMATION "INGRESE EL CÓDIGO CORRECTO !"
- Abort
- ADELANTE:
- FunctionEnd
- InstType "Completa"
- InstType "Estandar"
- InstType "Mínima"
- SectionGroup /e "!Base de datos" SecCopyI
- Section "!Oracle DB" SecCopyII
- SectionIn RO 1 2 3
- SetOutPath "$INSTDIR"
- File "Licencia.rtf"
- File "Licenciaideas.rtf"
- CreateDirectory "$INSTDIR\Oracle DB"
- WriteUninstaller "$INSTDIR\Uninst.exe"
- # CreateShortCut "$SMPROGRAMS\WINAMP\CLASIC'S SKINS\Uninstall.lnk" "$INSTDIR\uninst.exe" "" "$INSTDIR\uninst.exe" 0
- WriteUnInstaller "uninst.exe"
- !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
- ;Create shortcuts
- CreateDirectory "$SMPROGRAMS\$STARTMENU_FOLDER"
- CreateShortCut "$SMPROGRAMS\$STARTMENU_FOLDER\Uninstall.lnk" "$INSTDIR\Uninst.exe"
- !insertmacro MUI_STARTMENU_WRITE_END
- WriteRegStr HKLM "${PRODUCT_DIR_REGKEY}" "" "$INSTDIR\Uninst.exe"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayName" "${NAMEPRG}"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "UninstallString" "$INSTDIR\Uninst.exe"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayIcon" "$INSTDIR\Uninst.exe,0"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "DisplayVersion" "${VERSION_DESPLEGAR}"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLInfoAbout" "${PRODUCT_WEB_SITE}"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "URLUpdateInfo" "${PRODUCT_WEB_SITE}"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Publisher" "${PRODUCT_PUBLISHER}"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Readme" "Leame.txt"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Contact" "E-Mail: ideasSolutions@yahoo.com - Tel: (502)78724339 / (502)55445619"
- WriteRegStr ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "Comments" "De una buena impresión y agregue seguridad a sus aplicaciones, con instaladores de alta calidad desarrollados por ®ideas, Guatemala"
- WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoModifiy" 0x000001
- WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "NoRepair" 0x000001
- WriteRegDWORD ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}" "EstimatedSize" 0x2239c
- SectionEnd
- SectionGroupEnd
- SectionGroup /e "!Formularios" SecCopyIII
- Section "!Programa en C++" SecCopyIV
- SectionIn RO 1 2 3
- CreateDirectory "$INSTDIR\Programa en C++"
- SectionEnd
- Section "Programa en JAVA" SecCopyV
- SectionIn 1 2 3
- CreateDirectory "$INSTDIR\Programa en Java"
- SectionEnd
- SectionGroupEnd
- Section "Algún elemento 1" SecCopyVI
- SectionIn 1 2
- CreateDirectory "$INSTDIR\Algún elemento 1"
- SectionEnd
- Section "Algún elemento 2" SecCopyVII
- SectionIn 1 2
- CreateDirectory "$INSTDIR\Algún elemento 2"
- SectionEnd
- Section "Algún elemento 3" SecCopyVIII
- SectionIn 1
- CreateDirectory "$INSTDIR\Algún elemento 3"
- SectionEnd
- LangString Message1 ${LANG_SPANISH} "Elemento descriptivo de la Sección 1"
- LangString Message2 ${LANG_SPANISH} "Elemento descriptivo de la Sección 2"
- LangString Message3 ${LANG_SPANISH} "Elemento descriptivo de la Sección 3"
- LangString Message4 ${LANG_SPANISH} "Elemento descriptivo de la Sección 4"
- LangString Message5 ${LANG_SPANISH} "Elemento descriptivo de la Sección 5"
- LangString Message6 ${LANG_SPANISH} "Elemento descriptivo de la Sección 6"
- LangString Message7 ${LANG_SPANISH} "Elemento descriptivo de la Sección 7"
- LangString Message8 ${LANG_SPANISH} "Elemento descriptivo de la Sección 8"
- !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
- !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyI} $(Message1)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyII} $(Message2)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyIII} $(Message3)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyIV} $(Message4)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyV} $(Message5)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyVI} $(Message6)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyVII} $(Message7)
- !insertmacro MUI_DESCRIPTION_TEXT ${SecCopyVIII} $(Message8)
- !insertmacro MUI_FUNCTION_DESCRIPTION_END
- Section "Uninstall"
- Delete "$INSTDIR\*.*"
- RMDir "$INSTDIR\Programa en C++"
- RMDir "$INSTDIR\Programa en Java"
- RMDir "$INSTDIR\Algún elemento 1"
- RMDir "$INSTDIR\Algún elemento 2"
- RMDir "$INSTDIR\Algún elemento 3"
- DeleteRegKey HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\${NAMEPRG}"
- DeleteRegKey /ifempty HKCU "Software\${NAMEPRG}"
- MessageBox MB_OK|MB_ICONINFORMATION "La base de datos oracle se encuentra a salvo!"
- Exec 'Explorer "$INSTDIR\Oracle DB"'
- SectionEnd
- #---------------------------------------------------------------------------------------------------
- #------------------ FUNCIONES ADICIONALES (PLUS!) -----------------------------------------
- #---------------------------------------------------------------------------------------------------
- Function GetWindowsVersion
- Push $R0
- Push $R1
- ClearErrors
- ReadRegStr $R0 HKLM \
- "SOFTWARE\Microsoft\Windows NT\CurrentVersion" CurrentVersion
- IfErrors 0 lbl_winnt
- ; we are not NT
- ReadRegStr $R0 HKLM \
- "SOFTWARE\Microsoft\Windows\CurrentVersion" VersionNumber
- StrCpy $R1 $R0 1
- StrCmp $R1 '4' 0 lbl_error
- StrCpy $R1 $R0 3
- StrCmp $R1 '4.0' lbl_win32_95
- StrCmp $R1 '4.9' lbl_win32_ME lbl_win32_98
- lbl_win32_95:
- StrCpy $R0 '95'
- Goto lbl_done
- lbl_win32_98:
- StrCpy $R0 '98'
- Goto lbl_done
- lbl_win32_ME:
- StrCpy $R0 'ME'
- Goto lbl_done
- lbl_winnt:
- StrCpy $R1 $R0 12
- StrCmp $R1 '3' lbl_winnt_x
- StrCmp $R1 '4' lbl_winnt_x
- StrCpy $R1 $R0 3
- StrCmp $R1 '5.0' lbl_winnt_2000
- StrCmp $R1 '5.1' lbl_winnt_XP
- StrCmp $R1 '5.2' lbl_winnt_2003
- StrCmp $R1 '6.0' lbl_winnt_vista lbl_error
- lbl_winnt_x:
- StrCpy $R0 "NT $R0" 6
- Goto lbl_done
- lbl_winnt_2000:
- Strcpy $R0 '2000'
- Goto lbl_done
- lbl_winnt_XP:
- Strcpy $R0 'XP'
- Goto lbl_done
- lbl_winnt_2003:
- Strcpy $R0 '2003'
- Goto lbl_done
- lbl_winnt_vista:
- Strcpy $R0 'Vista'
- Goto lbl_done
- lbl_error:
- Strcpy $R0 ''
- lbl_done:
- Pop $R1
- Exch $R0
- FunctionEnd
- Function Verificar_Registered_Owner
- Push $R9
- Push $R8
- ReadRegStr $R9 HKLM \
- "SOFTWARE\Microsoft\Windows NT\CurrentVersion" RegisteredOwner
- IfErrors 0 StringCopy
- ReadRegStr $R9 HKLM \
- "SOFTWARE\Microsoft\Windows\CurrentVersion" RegisteredOwner
- StringCopy:
- StrCpy $R8 $R9 1
- Pop $R8
- Exch $R9
- FunctionEnd
- Function .onGUIEnd
- Delete $BMPTemp
- FunctionEnd
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement