Icm_AplicEjecControl.dll Versión 1.0 Librería para el control de aplicaciones en

Anuncio
Icm_AplicEjecControl.dll
Icm_AplicEjecControl.dll
Versión 1.0
Librería para el control de aplicaciones en
ejecución.
Junio 2010
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página: 1
Icm_AplicEjecControl.dll
1
DESCRIPCIÓN
La librería es utilizada para comprobar si están en ejecución o no una serie de
procesos y la forma de actuar sobre ellos, cerrandolos o no.
Funciones de la dll:
ValidarAplicacionesAbiertas(procesos: string; controlUsuario, forzarCierre: boolean)
Los parámetros son los siguientes:
Procesos  Lista de procesos que se quieren controlar. Todos ellos deben ir
con “;” al final de su nombre incluyendo el último.
Por ejemplo: Outlook.exe;Impreofi.exe;winword.exe;
controlUsuario  true si queremos dar el control al usuario para decidir sobre
el cierre de las aplicaciones
forzarCierre  true si queremos que la librería fuerze el cierre de las
aplicaciones.
Las acciones se llevarán a cabo sobre las aplicaciones que estén ejecutandose
en ese momento que estén incluidas en la lista.
1.1 Pasos
1) Comprueba la lista de las aplicaciones que estan en ejecución a partir de
la lista de procesos que se pasa como parámetro a la funcion
“validarAplicacionesAbiertas” obteniendo una lista de procesos
existentes.
2) Comprueba si la lista de procesos existente contiene un elemento o mas:

Si tiene 1 elemento (proceso) comprueba si es el proceso
winword.exe u otro diferente realizando para cada caso unos
controles diferentes.

Si tiene mas de un proceso comprueba todos los procesos que no
sean winword.exe según unas pautas expecificas y si es winword.exe
con los controles que son específicos para este caso.
En todos los casos puedes evitar el cierre de las aplicaciones cancelando el
cierre pero en ese caso no se garantiza el correcto funcionamiento de la fusión.
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página: 2
Icm_AplicEjecControl.dll
En el caso de que los 2 parámetros forzarCierre y controlUsuario sean false no
se continua con la fusión y se suspende la ejecución del ActiveX.
2 FORMA DE INTEGRARLA.
Para integrar la dll hay que realizar las siguientes modificaciones (Utilizamos
IcmX_FusionWord como ejemplo)
2.1 Modificaciones en ActiveX.
1) Realizar la llamada a la función de la libreria. Puede hacerse de 2 formas
diferentes:
Cargando la libreria y su función.
function TForm1.cargarEjecutarLibreria(nombreDll, procesos: string;
FcontrolUsuario, FforzarCierre:boolean): boolean;
type
TDLLFunc = function( procesos: string; controlUsuario, forzarCierre: boolean):
boolean; stdcall;
const
fValidarAplicacionesAbiertas: TDLLFunc = nil;
var
LibHandle: THandle;
cancelarF: boolean;
begin
LibHandle := LoadLibrary(PChar(nombreDll));
try
if LibHandle < HINSTANCE_ERROR then
begin
raise Exception.Create('No se puede cargar Icm_AplicEjecControl.dll ...');
result := false;
end
else begin
try
@fValidarAplicacionesAbiertas := GetProcAddress(LibHandle,
PChar('validarAplicacionesAbiertas'));
if Assigned(fValidarAplicacionesAbiertas)
then result := fValidarAplicacionesAbiertas(procesos, FcontrolUsuario,
FForzarCierre, cancelarF);
if result = true
then ShowMessage('El control de aplicaciones ha terminado con exito')
else ShowMessage('El control de aplicaciones ha fallado');
except
on E: Exception do
begin
ShowMessage('Error: ' + E.Message);
result := false;
end;
end;
end;
finally
FreeLibrary(LibHandle);
end;
end;
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página: 3
Icm_AplicEjecControl.dll
Llamando la funcion usando external:
function comprobarAplicacionesProcesosAbiertos(procesos, controlUsuario, forzarCierre:
boolean): boolean; stdcall; external 'Icm_ControlAplic.dll';
De esta forma únicamente tendremos que llamar a la función cuando la
queramos utilizar.
2) Realizar las modificaciones en el IcmXFusionWord.inf para poder
generar el .cab
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página: 4
Icm_AplicEjecControl.dll
2.2 Modificaciones en aplicación Java.
Para configurar los parámetros que se le pasan a la libreria hay que hacerlo en
este caso en el fichero .conf del ejemplo Java de la siguiente forma:
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página: 5
Icm_AplicEjecControl.dll
Realizar los cambios en ActiveXBean.java
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página: 6
Icm_AplicEjecControl.dll
Realizar los cambios en AbreActiveX.java
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página: 7
Icm_AplicEjecControl.dll
Realizar los siguientes cambios en IcmXFusionDoc.jsp
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página: 8
Icm_AplicEjecControl.dll
NOTA:
Para la impresión masiva es necesario pasar:
ForzarCierre  true
ControlUsuario  false
Procesos  winword.exe;
de esta forma no se detendrá en todos los documentos para preguntar
que queremos hacer con los procesos abiertos. Tan sólo para la primera
tanda y para el primer documento deberá informar al usuario.
Área de Integración y Arquitectura de Aplicaciones
Dirección de Análisis y Mantenimiento de Aplicaciones y Desarrollos Institucionales
Subdirección General de Desarrollo, Tecnología e Infraestructuras
Página: 9
Descargar