El siguiente software muestra la forma de utilizar hooks de teclado para apagar el monitor (pulsando la tecla "Pause" en este caso). Éste se volverá a encender cuando se pulse una tecla o se mueva el ratón.
Lo que hace el programa es:
- Hacer una llamada a LoadLibrary para cargar la Dll (MonitorOffDll).
LibHandle:=LoadLibrary('MonitorOffDLL.dll')
- Llama a GetProcAddres para conseguir la dirección de la DLL.
HookProcAddress:=GetProcAddress(LibHandle, pchar(1) ); InitializeHook:=GetProcAddress(LibHandle,pchar(2) );
- Llama a SetWindowsHookEx especificando WH_KEYBOARD como tipo de hook y con la dirección obtenida en el punto anterior. El parámetro ThreadID se pone a cero para indicar que es un hook global.
CurrentHook:=SetWindowsHookEx(WH_KEYBOARD,HookProcAddress,LibHandle,0);
- Llama al procedimiento de inicialización del DLL para pasar el handle asignado al hook.
InitializeHook(CurrentHook, Extractfilepath(application.exename));
(Pruebas realizadas en Delphi 7)
Link:
http://www.delphiforfun.org/Programs/Download/MonitorOffSource.zip- Hacer una llamada a LoadLibrary para cargar la Dll (MonitorOffDll).
LibHandle:=LoadLibrary('MonitorOffDLL.dll')
- Llama a GetProcAddres para conseguir la dirección de la DLL.
HookProcAddress:=GetProcAddress(LibHandle, pchar(1) ); InitializeHook:=GetProcAddress(LibHandle,pchar(2) );
- Llama a SetWindowsHookEx especificando WH_KEYBOARD como tipo de hook y con la dirección obtenida en el punto anterior. El parámetro ThreadID se pone a cero para indicar que es un hook global.
CurrentHook:=SetWindowsHookEx(WH_KEYBOARD,HookProcAddress,LibHandle,0);
- Llama al procedimiento de inicialización del DLL para pasar el handle asignado al hook.
InitializeHook(CurrentHook, Extractfilepath(application.exename));
(Pruebas realizadas en Delphi 7)
Link:
No hay comentarios:
Publicar un comentario