No. 00006
La información en este artículo se aplica a:
·
Microsoft
Windows Installer.
· Visual Studio .NET 2003.
Este artículo describe como registrar y recuperar la información de usuario en un instalador creado con Microsoft Windows Installer en Visual Studio .NET 2003.
Visual Studio .NET incluye un conjunto de plantillas de proyectos para crear instaladores que permiten la distribución de aplicaciones de una forma sencilla y efectiva.
Los proyectos de instalación de Visual Studio .NET utilizan la tecnología Microsoft Windows Installer (MSI). Este articulo trata sobre los proyectos de instalación de una aplicación de Windows, otros artículos tratan otros temas. Tampoco se tratan cuestiones especificas de Microsoft Windows Installer.
Nota: Existe información en Internet sobre este tema, pero no es muy precisa.
Es un requisito común en las aplicaciones Windows obtener la información del usuario que instala la aplicación y validar que tiene una copia legal del software.
Para obtener la información del usuario se debe agrega el cuadro de diálogo Información de usuario al proyecto de instalación. Este cuadro de diálogo permite obtener la información del usuario y validar un número de serie en la instalación. La validación del número de serie se realiza mediante un algoritmo de Windows Installer y una plantilla de validación.
Siga estos pasos para obtener la información de usuario en la instalación:
1. Agregue el cuadro de diálogo Información de usuario
2. Agregue información de usuario al Registro de Windows.
Las siguientes secciones contienen más información sobre estos pasos.
Para agregar el cuadro de diálogo Información de usuario
1. En el proyecto de instalación, muestre el Editor de Interfaz de usuario, opción de menú Ver, Editor, Interfaz de usuario, se muestra el Editor de Interfaz de usuario.
2. En el nodo Instalar, Inicio, haga clic con el botón secundario del ratón y seleccione Agregar cuadro de diálogo, se muestran los posibles cuadros de diálogos que puede agregar.
3. Seleccione el cuadro de dialogo Información de usuario y haga clic en Aceptar.
4. Puede cambiar la ubicación del cuadro de diálogo en la instalación, para esto, haga clic con el botón secundario del ratón y seleccione Subir o Bajar según sea el caso.
5. Establezca las propiedades del cuadro de diálogo:
a. Asigne el valor de true a ShowSerialNumber para solicitar un número de serie en la instalación. Se utiliza junto con la propiedad SerialNumberTemplate.
b. Asigne una plantilla con la que se validara el un número de serie a la propiedad SerialNumberTemplate, para más información sobre la plantilla de validación vea la sección Plantilla de validación.
c. Asigen el valor de true a ShowOrganization si desea obtener también el nombre de la organización o empresa a la que pertenece el usuario.
El cuadro de diálogo Información de usuario puede ubicarse tanto en el nodo Inicio como en el nodo Fin; sin embargo, si se sitúa en este último nodo, cualquier modificación de los datos del usuario que se introduzca en el cuadro de diálogo no actualizará el Registro. Si la propiedad ShowSerialNumber se establece en true, el cuadro de diálogo deberá ubicarse en el nodo Inicio, de modo que el número de serie pueda ser validado antes de proceder a la instalación. Se aconseja que este cuadro de diálogo se agregue al nodo Inicio, después del los cuadros de diálogo Pantalla de bienvenida y Contrato de licencia.
La plantilla de validación define el formato de los números de series validos. Windows Installer sigue un algoritmo para determinar si un terminado número de serie es valido según una plantilla de validación.
Una plantilla de validación puede estar formada por los siguientes caracteres:
· #: Requiere un número que no se incluirá en el algoritmo de validación.
· %: Requiere un número que se incluirá en el algoritmo de validación.
· ?: Requiere un carácter alfanumérico que no se incluirá en el algoritmo de validación.
· ^: Requiere una letra.
· <: Los caracteres situados a la izquierda de este carácter no serán visibles en el cuadro de diálogo.
· >: Los caracteres situados a la derecha de este carácter no serán visibles en el cuadro de diálogo.
Nota: Los caracteres < y > pueden no utilizarse, pero si aparecen deben estar en pareja, primero el carácter < y luego el carácter >. Se aconseja utilizar una plantilla de validación con los caracteres < y >, con un prefijo o sufijo por producto.
Se puede utilizar un guión (-) para separar grupos en el número de serie. Cualquier otro carácter es tratado como literal y aparece como tal. Windows Installer crea un nuevo cuadro de texto para cada grupo de caracteres en la plantilla de validación y cada vez que el tipo de carácter cambia.
Windows Installer suma los números marcados como % en la plantilla de validación y divide esta suma por 7, si el resultado es cero es un número de serie valido.
Por ejemplo, #%B-%?, crea un cuadro de texto para #%, un literal para B, agrega un guión, luego un cuadro de texto para % y otro para ?. Los números de serie validos según esta plantilla de validación serial aquellos en que el primer, segundo y 3 caracteres son números, el cuarto es una letra o un número y la suma del segundo y tercer carácter es divisible por 7. Un número de serie valido serial 13B-4C, la B y el – son literales y no hay que escribirlos.
El secreto del número de serie se encuentra en su plantilla, por lo que la plantilla de validación es una información sensible.
En solucion.biz se sigue el siguiente esquema en las plantillas de validación:
<AA-nnnn-nnnn-nn>ppp
Donde:
AA representa dos letras que identifican visualmente los números de serie para un producto.
nnnn-nnnn-nnn representa la parte del número
de serie que escribe el usuario. Se basa en información asociada al usuario,
como puede ser su nombre.
ppp representa un número por producto que no aparecen en el número de serie.
Por ejemplo, la plantilla de validación <DM-####-^^^^-%%>123, pertenece al producto identificado por las letras DM (demostración), con el número de producto 123, son validos todos los números de serie donde el primer grupo esta formado por números, el segundo grupos por letras, y el tercer grupos de dos número cuya suma sea divisible por 7.
Para más información vea Generación de números de serie.
Para generar los números de serie se debe tener en cuenta la plantilla de validación. También es aconsejable utilizar información asociada, por ejemplo, el nombre del usuario para el que se genera el número de serie e incluir información aleatoria.
La generación de los números de serie puede ser un punto complicado y se aconseja que se utilicen herramientas para ello.
Para generar números de series puede utilizar la herramienta gratuita Genesie - Generador de números de serie de solucion.biz.
Puede agregar la información dada por el usuario en el cuadro de diálogo Información de usuario en el Registro de Windows, esto permite recuperar la información posteriormente, por ejemplo, para mostrar en el cuadro de diálogo Acerca de... de la aplicación.
El asistente de instalación guarda la información en variables que se pueden asignar a valores del Registro de Windows. El asistente de instalación sustituyes estas variables por sus valores en el proceso de instalación.
Las principales variables que se pueden utilizar para obtener la información de usuario son:
· Manufacturer: Contiene el nombre del fabricante del producto. Se especifica en las propiedades del proyecto.
· Product: Contiene el nombre del producto. Se especifica en las propiedades del proyecto.
·
USERNAME: Contiene el nombre del usuario. Se
especifica en el cuadro de diálogo Información de usuario.
·
COMPANYNAME: Contiene el nombre de la
organización a la que pertenece el usuario. Se especifica en el cuadro de
diálogo Información de usuario.
·
PIDKEY: Contiene el número de serie. Se
especifica en el cuadro de diálogo Información de usuario.
Por ejemplo, para guardar esta información dentro de la clave HKEY_LOCAL_MACHINE, Software, fabricante y producto siga los siguientes pasos:
1. En el proyecto de instalación, muestre el Editor de Registro, opción de menú Ver, Editor, Registro, se muestra el Editor de Registro.
2. Expanda el nodo HKEY_LOCAL_MACHINE, y luego Software.
3. Haga clic derecho con el botón secundario del ratón y seleccione Nuevo, luego Clave, en el nombre de la clave escriba el valor [Manufacturer]. Los paréntesis angulares son necesarios e indican que es una variable. Seleccione esta clave y repita el paso creando dentro de esta la clave [Product].
4. Seleccionando la clave [Product], Haga clic derecho con el botón secundario del ratón y seleccione Nuevo, luego Valor de cadena. En el nombre escriba Customer y en el valor [USERNAME]. Puede utilizar un nombre distinto de Customer.
5. Seleccionando la clave [Product], Haga clic derecho con el botón secundario del ratón y seleccione Nuevo, luego Valor de cadena. En el nombre escriba Organization y en el valor [COMPANYNAME]. Puede utilizar un nombre distinto de Organization.
6. Seleccionando la clave [Product], Haga clic derecho con el botón secundario del ratón y seleccione Nuevo, luego Valor de cadena. En el nombre escriba SerialNumber y en el valor [PIDKEY]. Puede utilizar un nombre distinto de SerialNumber.
Cuando ejecute el instalador, se almacenara en el Registro de Windows los valores especificado el cuadro de diálogo Información de usuario.
Para obtener estos valores puede utilizar un código parecido al siguiente:
Microsoft.Win32.RegistryKey rk =
Microsoft.Win32.Registry.LocalMachine.OpenSubKey(ProductKey);
lblUserName.Text =
rk.GetValue("Customer").ToString();
lblCompanyName.Text =
rk.GetValue("Organization").ToString();
lblSerialNumber.Text =
rk.GetValue("SerialNumber").ToString();
Nota: Para que este código funcione se debe asignar un valor a la constante ProductKey.
Referencias a otra documentación:
No. 00005: Crear un instalador sencillo para Windows
Implementar aplicaciones y componentes en la ayuda de Visual Studio .NET 2003.
Microsoft Windows Installer, msi