Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.09.2011, 08:06   #1
DeFace
Пользователь
 
Аватар для DeFace
 
Регистрация: 27.09.2008
Сообщений: 60
По умолчанию Проблема с установкой хука

Доброе утро всем!!! Нарисовалась такая проблема. Написал маленькую программку которая перехватывает нажатия клавиш. Но SetWindowsHookEx возвращает 0 (GetLastError тоже 0), но хук устанавливается. Только снять его нельзя потому, что нет дискриптора.
Код установки хука:
Код:
HHOOK setHook()
{
	HHOOK hHook;
	memset(&hHook, 0, sizeof(hHook));
	//HOOKPROC hookProc;

	// ссылка на функцию обработки хуков
	LRESULT (*hookProc)(int, WPARAM,LPARAM);

	if(!flagHook)
	{
		// загружаем hookDll.dll
		if(!(hLibrary = LoadLibrary("hookDll.dll")))
		{
			MessageBox(NULL, "LoadLibrary", "ERROR", MB_OK);
			return false;
		}
		// получаем адресс hookFunc()
		if(!(hookProc = (LRESULT (*)(int, WPARAM, LPARAM))GetProcAddress(hLibrary, "_hookFunc@12")))
		{
			MessageBox(NULL, "GetProcAddress hookFunc", "ERROR", MB_OK);
			return false;
		}
		// устанавливаем хук
		hHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)hookProc, hLibrary, NULL);
		if(!hHook)
		{
			MessageBox(NULL, "SetWindowsHook", "ERROR", MB_OK);				// debug
			return false;
		}
		else
		{
			DWORD i = GetLastError();
			MessageBox(NULL, "Hook is set", "Ok", MB_OK);				// debug
			return hHook;
		}
	}
	return false;
}
код обработчика хука из Dll:
Код:
LRESULT CALLBACK hookFunc(int nCode, WPARAM wParam, LPARAM lParam)
{
	UINT uScanCode = MapVirtualKey(wParam,0);				
	BYTE KeyState[256];		
	WORD BufChar;		 
	UINT uFlags=0;		

	if(nCode == HC_ACTION && !(lParam & 0x80000000))
	{
		Beep (1000,200);
	}

	return 0;
}
DeFace вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблема с установкой feesta Помощь студентам 0 10.04.2011 03:56
Проблема с установкой Костян Пират Операционные системы общие вопросы 6 11.02.2011 12:54
проблема с установкой Lord777 Общие вопросы Delphi 10 28.04.2009 11:40
проблема с установкой xp Алёнка2 Помощь студентам 10 09.06.2008 11:14
Проблема с установкой Rozalinda Общие вопросы Delphi 2 25.03.2007 22:18