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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.02.2011, 01:19   #1
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию Keyboard/Mouse hook - Win7 x86

Доброго времени суток уважаемые специалисты, возникли маленькие затруднения. Я вообщем перехватываю scroll кнопочку, все перехватил, все работает отлично (относительно) но вот на win7 x86 при попытке прокрутки колесика, программа вылетает без какой либо ошибки.
п.с. Весь мой код находится в .dll, .dll подгружаю динамически в процесс.
И что самое странное, если я запускаю программу в ольке (Run'ом), все работает отлично, никто никуда не вылетает.
Буду благодарен за любой совет.

Код:
BOOL MouseSetHook(BOOL set_or_remove)
{
 if(set_or_remove == TRUE)
 {
  if (MouseHook == NULL)
  {
   MouseHook = SetWindowsHookEx(WH_MOUSE, MouseProc, hInstance, GetCurrentThreadId());
			
   if(!MouseHook)
    return FALSE; 
   }
  } 
  else
  { 
   return UnhookWindowsHookEx(MouseHook);
  }
 return TRUE;
}
Код:
LRESULT CALLBACK MouseProc(int code, WPARAM wParam, LPARAM lParam)
{
 MOUSEHOOKSTRUCTEX* mhs = (MOUSEHOOKSTRUCTEX*)lParam;
 
 // мои какие-нить действия
	
 return CallNextHookEx(MouseHook, code, wParam, lParam);
}
coNsept вне форума Ответить с цитированием
Старый 21.02.2011, 14:30   #2
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Никто не сталкивался с таким?
coNsept вне форума Ответить с цитированием
Старый 21.02.2011, 16:48   #3
Sam Gold
Форумчанин
 
Аватар для Sam Gold
 
Регистрация: 26.03.2010
Сообщений: 538
По умолчанию

Так функция установки хука из dll должна быть оформлена как
Код:
extern "C" __declspec(dllexport) BOOL MouseSetHook(BOOL set_or_remove)
Единственный способ стать умнее - играть с более умным противником.
Sam Gold вне форума Ответить с цитированием
Старый 21.02.2011, 20:05   #4
coNsept
Форумчанин
 
Аватар для coNsept
 
Регистрация: 14.12.2009
Сообщений: 716
По умолчанию

Вообщем я уже задействовал все события мышки: колесо, перемещение, левая/правая кнопка.
Сейчас даже при перемещение курсора программа вылетела.
coNsept вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
keyboard.h Aндрей Общие вопросы C/C++ 4 30.05.2010 13:10
devil mouse Drive Общие вопросы C/C++ 2 01.12.2008 23:25
Mouse Roll ax4start Софт 0 31.10.2008 09:50
Mouse самовольничает! Altera Компьютерное железо 13 06.04.2008 19:26
дрова KeyRus или KeyBoard vicdon Паскаль, Turbo Pascal, PascalABC.NET 2 05.11.2007 20:32