RoRo
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Это компилировалось в CBuilder 6.0 Содержимое dll //------------------------------------------------------------------------------ #include <windows.h> #include "HookDump.h" #pragma hdrstop HHOOK hHook; HANDLE hFile; #pragma argsused int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved) { return 1; } LRESULT CALLBACK My_GetMessage( int nCode, WPARAM wParam, LPARAM lParam ) { int LengthWindowText=0; unsigned long LengthWrite; char WindowText[256]; HWND WindowHWND=0; if(nCode < 0) return CallNextHookEx( hHook, nCode, wParam, lParam ); if(nCode == HC_ACTION) { WindowHWND = GetFocus(); LengthWindowText = GetWindowTextLength(WindowHWND); GetWindowText(WindowHWND,WindowText,256); WriteFile(hFile,WindowText,10,&LengthWrite,NULL); } } return CallNextHookEx( hHook, nCode, wParam, lParam ); } // Процедура установки ловушки void SetHook(HINSTANCE dll) { if (hHook == NULL){ hFile = CreateFile("hook1.txt", GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0); int q = GetLastError(); hHook = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)My_GetMessage,dll, 0); if (!hHook) { MessageBox(0,"Ошибка в SetHook -> SetWindowsHookEx.","Error", MB_OK); return; } } } // Процедура удаления ловушки void RemoveHook(void) { CloseHandle(hFile); UnhookWindowsHookEx(hHook); } //----------------------------------------------------------------------------- Код exe, который вызывает dll фрагмент //---------------------------------------------------------------------------- . . . dll = LoadLibrary("HookDump.dll"); if (dll) { SetHookDLL = (HookSet*) GetProcAddress(dll,"_SetHook"); if (SetHookDLL) SetHookDLL(dll); else ShowMessage(GetLastError()); RemoveHookDLL = (Hook*) GetProcAddress(dll,"_RemoveHook"); if (!RemoveHookDLL) ShowMessage(GetLastError()); } else { ShowMessage(GetLastError()); ShowMessage("Модуль DLL не загружен DLL"); } | Всего записей: 170 | Зарегистр. 03-01-2002 | Отправлено: 04:11 25-08-2002 | Исправлено: RoRo, 14:13 29-08-2002 |
|