Trucos Añadir un menú a otra aplicación (Hook de mensajes)

Documentación de la DLL "dscwpmsg.dll" (c) 2001 by J. Thuemmler, Delphin Software
Esta DLL es gratuita y no tiene garantía.

PROPÓSITO DE LA DLL

Instalar un hook para WH_CALLWNDPROC y/o WH_GETMESSAGE a nivel de thread o de todo el sistema.

Para usar esta dll, cópiala en la carpeta de tu proyecto, no en el directorio system(32).

CÓMO FUNCIONA

Cuando llamas a la función SetCWPMSGHook(), tanto para un thread como para todo el sistema, se instala un hook para los mensajes WH_CALLWNDPROC y/o WH_GETMESSAGE.

Si las funciones hook encuentran un mensaje, la DLL enviará una copia del mismo a una o dos funcione públicas en tu aplicación, con el siguiente prototipo :

Public Function Callback& (ByVal hwnd&, ByVal msg&, ByVal wParam&, ByVal lParam&)

Los parámetros son una copia del mensaje original
El hook WH_CALLWNDPROC monitoriza los mensajes enviados empleando SendMessage() a la ventana hwnd; el hook WH_GETMESSAGE monitoriza los mensajes recuperados de la cola de mensajes de la aplicación empleando GetMessage() o PeakMessage().

Puedes definir hasta 10 mensajes globales para ser descartados por los hooks, empleando la función SetGlobalMessage&().

Puedes definir hasta 10 identificadores de ventana y por cada uno hasta 10 mensajes para ser descartados, empleando las funciones SetMessageWindow&() y SetWindowMessage&().

En principio puedes usar esta DLL para monitorizar tu propia aplicación, pero esta tarea suele hacerse mejor usando tus propias llamadas a SetWindowsHookEx() e implementando tus propias funciones de hook porque en este caso obtendrías los mensajes originales y podrías modificarlos.

¡¡¡ ATENCIÓN !!!

Si usas mal esta DLL es fácil que tu sistema se caiga. Debes estar familiarizado con el API de Windows cuando uses los hooks. Aunque sólo obtienes una copia de los mensajes originales, debes evitar emplear mucho tiempo de proceso en las fucniones callback, sobre todo cuando instales el hook para todo el sistema.

FUNCIONES

SetCWPMSGHook

Declaración :
Declare Function SetCWPMSGHook& Lib "dscwpmsg" (ByVal Hook&, ByVal AdrCWP&, ByVal AdrMSG&)

Parámetros:


Valores de retorno
2 , si se instalan los dos hooks satisfactoriamente.
1 , si se instala un hook satisfactoriamente.
0 , en otro caso.

SetGlobalMessage

Declaración :
Declare Function SetGlobalMessage& Lib "dscwpmsg" (ByVal Msg&, ByVal wParam&)

Parámetros:
Valor de retorno
1 (True), si el número de mensajes es menor o igual que 10, 0 (false) en otro caso.

SetMessageWindow

Declaración :
Declare Function SetMessageWindow& Lib "dscwpmsg" (ByVal hwnd&)

Parámetros :
Valor de retorno
Un índice de 0 a 9 cuando el número de ventanas es menor o igual que 10, en otro caso -1.

SetWindowMessage

Declaración :

Declare Function SetWindowMessage& Lib "dscwpmsg" (ByVal Index&, ByVal messg&, ByVal wParam&)

Parámetros :
Valor de retorno
1 (true) si el número de mensajes para la ventana es menor o igual que 10, en otro caso 0 (false).


Delphin Software
Mail: delphinsoft@gmx.de
Phone: +49 07251 18671
Fax: +49 07251 989773

Traducción libre por José Rubí

Download dscwpmsg.zip  



Trucos Trucos

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com