Professional Documents
Culture Documents
plugins o de AMS, hoy os quiero traer unos cuantos consejos, ideas y ejemplos para que usis en
vuestros instaladores de Setup Factory 8.x, tampoco es que sea un gran especialista en SF8 pero es
el programa que uso para hacer los instaladores y a fuerza de ir haciendo acaba uno por aprender a
usar algunas cosillas y al ser muy parecido al AMS es fcil de captar.
Los contenidos de este tutorial son los siguientes:
Como usar Application.GetInstallLanguage();
Como usar System.Is64BitOS();
Como usar System.IsSystemRestoreAvailable();
Como detectar archivos/carpetas
Como hacer diferentes Paquetes(Packages)
Como poner Seriales al Instalador
end
Dialog.Message(strTitle, strPrompt, MB_OK, MB_ICONEXCLAMATION);
end
else
-- Esto sucede si no existen los archivos y carpertas
local tblSysLang = Application.GetInstallLanguage();
if(tblSysLang.Primary == 9) then -- Ingles
Dialog.Message("Information", "The Files do not exist.");
elseif (tblSysLang.Primary == 10) then -- Espaol
Dialog.Message("Informacin", "Los Archivos no existen.");
end
end
3. Una vez hemos pulsado el botn de aadir (Add) tendremos que poner todas las
especificaciones en la imagen os he puesto las descripciones pero en realidad los contenidos
que voy a poner son otros.
Package ID: IDGagle
Display name: LP's Gagle
Description: Contiene dos LP's de Gagle.
Gagle - Hidden Music Value
Gagle - 3peat
Notas: El espacio adicional en el disco (Additional disk space (KB)) esto solo lo tendris
que calcular si queris que aada una cantidad extra de KB ademas de los que por si ocupa.
El estado inicial (Initial State) tiene dos opciones que son Instalar este paquete (Install this
package) y Permitir que el usuario cambie (Allow user to change), la primera opcin es para
demarcar como quieres que aparezca por defecto si sealada o no, y la segunda opcin es
para permitir al usuario cambiar que se instale o no, esta segunda opcin es muy interesante
si tenis contenidos que tengas que ser instalados de manera obligatoria como el entorno de
la aplicacin por ejemplo.
Por ultimo recordar que si vuestro instalador esta en diferente idiomas tendris que rellenar
estos campos en cada uno de los idiomas por separado pulsa sobre el selector de idioma
(Language) que se ve en la parte inferior de la foto. No olvidis eso que es algo realmente
importante!!
4. Una vez hemos rellenado todos los capos y puesto toda la informacin del primer paquete
tendremos que crear el siguiente paquete, quiero haceros inca-pie que el nombre de la ID
(Package ID) tiene que ser diferente al anterior pues es el nombre con el que Setup Factory
diferenciara uno grupo o el otro. Con los dos grupos terminados os tendra que quedar as.
5. Cuando ya tenemos los dos grupos creados solo tenemos que agregar las capetas de los LP's
y seleccionar dos de ellos en mi caso voy a seleccionar los dos LP's de Gagle.
6. Una vez sealadas las dos capetas que deseas agrupar en un paquete tienes que pulsar en
propiedades (File Properties...) y dirigirte a paquetes (Packages) y seleccionar el paquete del
que deseas que formen parte, en mi caso quiero que sean del grupo de gagle. Cuando ya
hemos sealado el grupo hacemos los mismo con las otras dos capetas.
7. Cuando ya estn cada directorio en el grupo que les toca solo tenemos que crear la pagina
del setup que gestionara los contenidos de nuestro instalador, para esto nos dirigiremos a la
seccin de Pantallas (Screens) y seleccionaremos Antes de Instalar (Before Installing). Para
poder aadir una pagina de gestin de paquetes dentro de nuestro instalador.
8. Una vez vez dentro de Antes de Instalar (Before Installing), tendremos que pulsar el botn
de aadir y seleccionar la pagina predeterminada de seleccin de paquetes (Select Package),
tambin podis escoger la pagina de personalizar (Custom) y crear nosotros las pagina a
nuestro antojo, pero en mi caso no lo voy a hacer por que es demasiado trabajo para algo tan
simple como crear grupos y hacer que nuestro instalador los muestre pero si vosotros
prefers esa opcin recordar que tendris que aadir comandos y scripts.
9. Cuando la pagina ya a sido agregada a nuestra lista de paginas tenemos que configurar la y
eso se hace pulsado en editar (Edit) o haciendo doble click directamente sobre la pagina que
deseas editar. Una vez dentro de las propiedades de la pagina tenemos que agregar los
paquetes al proyecto seleccionndolos y pulsado la flecha.
10. Una vez hemos seleccionado los dos paquetes y los hemos aadido, algo as:
Nota: Recuerda que muchas veces tendremos que hacer esto varias veces segn el numero
de idiomas de nuestro instalador, es muy importaren que esto no se te olvide por que si no te
quedaran muchos vacos en tus instaladores a la hora de instalarlo con segn que idiomas.
11. Una vez echos todos los pasos anteriormente nombrados ya esta lista nuestra pagina de
seleccin de paquetes podemos pre-visualizarla o directamente crear el instalar y probar si a
funcionado todo de manera correcta. El resultado seria algo as:
Ya por ultimo comentaros que yo en este ejemplo no me he matado mucho en aadir extras pero se
puede implementar con algunos scripts o tambin haciendo el proyecto en varios idiomas. Espero
que este ejemplo de como hacer paquetes os sea til en prximos proyectos con Setup Factory.
2. Una vez dentro de la de seccin de seguridad (Security) tenemos que pulsar sobre la lista de
seriales y aadir seriales validos.
Mascara
####-####-####-####
4754-8345-1970-4486
PW##-####
PW18-2106
?????-?????
MCMEU-0JSTC
#@#@#@#@
3y0b9y7v
****-CD-####
AGPN-CD-7101
CDKEY-????-####-**** CDKEY-LRAC-1333-IDST
*###-***-###*
J363-DCU-621I
Carcter
Un numero aleatorio
Un guion
4. Una vez sabido esto aadidos los seriales que creamos oportunos en mi caso voy a generar 4
seriales de manera aleatoria y voy a poner un serial maestro que sea el nombre de mi blog
por ejemplo con esto solo quiero daros ideas. Quedara algo as:
Nota: Para agregar el serial personalizado solo he pulsado sobre una casilla vaci y he
incluido el valor que yo quera en mi caso: http://amsspecialist.wordpress.com/
5. Una vez creada la lista de seriales validos solo tenemos que activar la pagina de gestin de
seriales, para esto nos dirigiremos a la seccin de Pantallas (Screens) y seleccionaremos
Antes de Instalar (Before Installing). Para poder aadir una pagina de gestin de seriales
dentro de nuestro instalador.
6. Una vez dentro de Antes de Instalar (Before Installing), tendremos que pulsar el botn de
aadir y seleccionar la pagina predeterminada de verificacin de nmeros de serie (Verify
Serial Number), tambin podis escoger la pagina de personalizar (Custom) y crear nosotros
las pagina a nuestro antojo, pero en mi caso no lo voy a hacer por que es demasiado trabajo
para algo tan simple como crear una pagina de verificacin de nmeros de serie y hacer que
nuestro instalador los muestre pero si vosotros prefers esa opcin recordar que tendris que
aadir comandos y scripts.
7. Una vez echo esto se da por finalizado nuestro proceso de creacin de un verificador de
nmeros de serie.
Notas Importantes Acerca el Script: Por defecto la pagina de verificacin de nmeros de serie
(Verify Serial Number) trae muchos scripts ya definidos por ejemplo en la pre-carga de esta pagina
se establece el numero mximo de intentos que son por defecto 3, esto lo podis modificar a vuestro
gusto o eliminarlo si lo creis incensario.
On Preload
SerialNumberScreen.MaxAttempts = 3;
Tambin por defecto en la pagina de siguiente (On Next) vienen definidos algunos valores que
podemos modificar siempre con mucho ojo de no eliminar algo necesario!!
On Next
if(bSerialIsValid) then
-- Si el serial el valido avanza a la siguiente pagina.
Screen.Next();
else
-- Si el usuario a introducido un numero de serie invalido pasa lo siguiente:
-- Esta linea contabiliza el numero de intentos que lleva errados.
SerialNumberScreen.AttemptCount = SerialNumberScreen.AttemptCount + 1;
-- Sea el primer error o el ultimo siempre se muestra este mensaje que SF8 llama el
-- mensaje de numero de serie invalido 'Invalid serial number'
Dialog.Message(SetupData.GetLocalizedString("MSG_ERROR"),
SetupData.GetLocalizedString("ERR_INVALID_SERIAL"));
-- Si el usuario llega el numero mximo de fallos pasa esto:
-- Nota: por defecto te echa del instalador pero nosotros lo podemos modificar
-- para que nos muestre un mensaje especial o para que haga otra cosa.
if(SerialNumberScreen.AttemptCount >= SerialNumberScreen.MaxAttempts) then
Application.Exit(0);
end
end
Como veis no es tan difcil de modificar y con un mnimo de conocimientos se pueden hacer
grandes modificaciones yo por ejemplo os voy a mostrar ya para terminar esta seccin y el tutorial
entero como modificara esta pagina para que cuando llegara al numero mximo de errores te lance
un mensaje temporizado y te envi a una pagina donde podr conseguir el numero de serie que tan
necesario es para continuar la instalacin.
Ejemplo:
On Next
local strSerial = SessionVar.Expand("%SerialNumber%");
strSerial = String.TrimLeft(strSerial);
strSerial = String.TrimRight(strSerial);
SessionVar.Set("%SerialNumber%", strSerial);
local strListName = nil;
local bSerialIsValid = g_IsSerialNumberInList(strSerial, strListName);
if(bSerialIsValid) then
-- Lo primero aadir un mensaje temporizado si el serial es correcto
local text_A = "El serial Introducido es correcto"
Dialog.TimedMessage("Informacin", text_A, 2000, MB_ICONINFORMATION);
Screen.Next();
else
SerialNumberScreen.AttemptCount = SerialNumberScreen.AttemptCount + 1;
Dialog.Message(SetupData.GetLocalizedString("MSG_ERROR"),
SetupData.GetLocalizedString("ERR_INVALID_SERIAL"));
-- Si el usuario excede el numero mximo de errores are lo siguiente:
if(SerialNumberScreen.AttemptCount == SerialNumberScreen.MaxAttempts) then
-- Uso la variable "%CompanyURL%" pero a fin de cuentas
-- es lo mismo que poner la pagina directamente
-- en este caso lo uso por aadir un toque mas de
-- conocimiento del medio y compatibilidad
-- vosotros podis poner directamente la direccin
-- Ejemplo: "http://www.yourcompany.com/Numerosdeserie.htm"
local Pagina = SessionVar.Get("%CompanyURL%".."/Numerosdeserie.htm");
local result_test = HTTP.TestConnection(Pagina, 20, 80, nil, nil);
if (result_test) then
-- Si el usuario dispone de conexin se abrir esta pagina
-- donde podr conseguir el serial.
File.OpenURL(Pagina, SW_SHOWNORMAL);
else
-- Si el usuario no dispone de conexin se lanzara un
-- mensaje y se creara un acceso directo en el escritorio
-- a la pagina donde puede conseguir el numero de serie.
local text_BA = "Es necesario tener conexin a Internet para descargar el serial"
local text_BB = "Se creara un acceso directo a la pagina web en escritorio"
local text_CC = _DesktopFolder.."\\Consigue tu serial.url"
local text_DA = "[InternetShortcut]"
local text_DB = "URL=http://www.yourcompany.com/Numerosdeserie.htm"
Dialog.Message("Informacin", text_BA.."\r\n"..text_BB);
TextFile.WriteFromString(text_CC, text_DA.."\r\n"..text_DB, true);
end