| Artículos | 01 ABR 1995

Ejecutor latente de programas Windows

Tags: Histórico
Utilidad orientada al gran público
César Alonso-Cortés y Cristina Ramos.

Reduzca el tiempo necesario para ejecutar programas Windows mediante una utilidad basada en hooks de teclado en Windows.

Desde el punto de vista del programador de aplicaciones, Windows es un entorno muy abierto, potente, y por lo tanto con infinitas posibilidades. Presentamos en este artículo una utilidad destinada al gran público, y que puede ahorrarnos bastante tiempo. Hace tiempo apareció en el mercado shareware un grupo de utilidades destinadas a la ejecución o arranque de programas Windows. Suele ocurrir que llenamos enseguida el administrador de programas de Windows, y entonces localizar iconos de programas para su ejecución, nos lleva más tiempo de lo normal. El objetivo es pues reducir este tiempo de arranque de procesos, y para ello se crearon utilidades del estilo de los smartpads, que no son más que ventanas con diversos botones, que al pulsarlos desencadenan aplicaciones Windows. Muchas aplicaciones comerciales como Norton Desktop o PC Tools incluyen herramientas smartpads para ejecutar aplicaciones y organizarlas más fácilmente en el Administrador de Programas de Windows.

Este tipo de programas suele tener un inconveniente principal: los grupos de iconos se superponen a menudo a las ventanas que estamos utilizando, reduciendo el campo de visión (sobre todo cuando el número de iconos es elevado). Lo cierto es que muy a menudo somos usuarios fieles de un conjunto determinado de aplicaciones Windows, muchas de las cuales ejecutamos frecuentemente a lo largo del día.

La utilidad presentada en este artículo emplea el concepto de hook de teclado en Windows para lograr un ejecutor, cargador o lanzador (launcher) de aplicaciones. No tiene el inconveniente del tipo de programas smartpad porque no existe más que la ventana de configuración, que no tiene por qué estar maximizada para que el programa realice su labor.

Primero aprenderemos el sencillo manejo de la utilidad que nos sirve de base para el artículo, y luego entraremos de lleno en los conceptos empleados para su programación, como son el tema de la compartición de memoria entre ejecutables y DLLs en Windows y los hooks de teclado.

Trabajar con el programa

A continuación veremos brevemente cómo utilizar el programa LAUNCHER.EXE y cómo sacarle el máximo provecho. Para instalarlo sólo es necesario añadir los ficheros LAUNCHER.EXE y HOO_LAUN.DLL en el PATH del DOS, y añadir el icono asociado al programa a algún grupo de programas _todos los ficheros mencionados se encuentran en el Disquete PC World de este mes. Sólo hay un parámetro para la línea de comandos, y es el nombre de fichero con los programas que se quieren activar desde el comienzo, si es que se quiere cargar alguno. Puede tener como es lógico varios iconos de LAUNCHER, cada uno asociado a distintos ficheros de datos de ejecución adaptados a contextos de trabajo diferentes.

Su empleo es muy sencillo. Supongamos por ejemplo que en la columna de la izquierda tenemos en uno de los campos la cadena XDO, y a la derecha de este campo se encuentra DOSPRMPT. PIF. Entonces, si pulsamos la secuencia de caracteres XDO desde cualquier programa Windows, se abrirá una ventana de DOS. Es decir, tres únicas pulsaciones de teclado nos están ahorrando buscar y acceder por ejemplo al grupo de programas Principal, y luego hacer doble clic sobre el icono del MS-DOS. Las tres pulsaciones empleadas para lograr el lanzamiento del programa, serán borradas. Es decir, suponga que abrió la ventana de DOS mientras editaba un documento. Si no elimináramos la secuencia de teclas de la activación, nos estropearía el documento, habría que borrarla a mano, y LAUNCHER perdería efectividad. Al haber borrado automático de la secuencia de activación, el programa se podrá decir que no interfiere con el resto de programas Windows. Cuando las líneas de comandos son largas y variadas, entones LAUNCHER aventajará a otras utilidades de su misma naturaleza.

Si no nos acordamos de la secuencia de activación necesaria, podemos acceder a la pantalla principal del programa mediante Alt-Tab y entonces emplear el botón Ejecución. También se podría lanzar el proceso haciendo doble clic sobre el elemento de la lista que nos interese. Lógicamente, deberemos escoger secuencias de activación raras, es decir, que no se den de forma normal en el empleo de Windows, para evitar disparos innecesarios. Para ello, por ejemplo, basta seleccionar nombres que empiecen por X.

En la figura 1 puede ver el aspecto de la pantalla principal del programa LAUNCHER. La caja de lista contiene en la columna de la izquierda la secuencia de teclas que desencadenarán la ejecución de la línea que se encuentre a su derecha. Como puede comprobar, puede haber un gran conjunto de comandos de ejecución con sus secuencias de activación asociadas. En la parte inferior de la ventana podrá ver diversos botones para Actualizar, Añadir, y Borrar, líneas de activación y botones para Cargar y Grabar ficheros de datos de activaciones. En la zona derecha hay dos botones: uno para seleccionar el tipo de ejecución, llamado Tipo, y el otro para ejecutar el elemento de la lista que se encuentre remarcado, denominado Ejecutar.

. Añadir una línea de ejecución: Es muy sencillo añadir una nueva línea de ejecución. Para ello no hay más que rellenar el contenido de los dos campos de entrada llamados Disparador y Programa a ejecutar, y luego teclear Alt-A, o hacer clic de ratón sobre el botón Añadir.

. Borrar una línea de ejecución: Para borrar una definición, se resaltará mediante el ratón y luego se pulsará el botón Borrar, o se pulsará Alt-B.

. Editar una Línea de comandos: Si se quiere editar o modificar una de las líneas, no tendrá mas que resaltarla, editarla en los dos campos de entrada y a continuación pulsar la secuencia Alt-C o hacer clic de ratón sobre el botón Actualizar.

. Ejecutar línea de comandos: Para ejecutar una de las líneas de comandos existente, se podrá por un lado pulsar desde cualquier programa Windows la secuencia de teclas de activación, o bien se resaltará la fila de datos que nos interese y luego se hará doble clic de ratón sobre la línea deseada, y por último se podrá pulsar el botón Ejecutar cuando se encuentre remarcada en la lista la opción adecuada. Ya sabe que un programa Windows puede ejecutarse de varias formas diferentes que son minimizado, maximizado, normal, y escondido. Pulsando repetidamente Tipo, podrá, para la línea de proceso resaltada, seleccionar el tipo de ejecución que tendrá. Cada tipo de ejecución tiene asociado un dibujo diferente. Cada vez que resalte una opción, aparecerá a la izquierda el tipo de ejecución asociada, que por defecto es la Normal. En el modo normal, es la propia aplicación la que selecciona el tamaño de la ventana de arranque.

Hooks de Windows

Un hook de Windows es una rutina a la que llama Windows antes de procesar determinados mensajes, eventos o interrupciones. Se trata de algo análogo a los programas residentes (TSR) bajo DOS. Las cosas que se pueden lograr son similares, aunque la potencia y posibilidades de los hooks de Windows es mucho mayor que la de los TSRs de DOS. Gracias a Dios, también los hooks son más fáciles de programar.

Hay dos funciones básicas de Windows 3.1 para establecer o liberar hooks. Estas son SetWindowsHookEx y UnhookWindowsHookEx (véase figura 2). La función SetWindowsHookEx instala una nueva rutina de HOOK dentro de la cadena de hooks que ya existan. Veamos sus distintos parámetros con más detalle. idHook especifica el tipo de HOOK a instalar (véase recuadro independiente dedicado al tipo de hook. hkprc es la dirección del HOOK a instalar para esa instancia de programa. hinst contiene la instancia del módulo que contiene la función de HOOK. Y htask identifica la tarea para la cual será instalado el HOOK. Si este parámetro es NULL, el HOOK a instalar tendrá un campo de acción glob

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información