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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2011, 15:33   #1
serebrus
Новичок
Джуниор
 
Регистрация: 24.12.2011
Сообщений: 2
По умолчанию "Блокировка" мыши

Привет форумчане.

Нужная программа находится функцией FindWindow. Как можно блокировать нажатие (правой) кнопки мыши именно для этой программы (окна)?
serebrus вне форума Ответить с цитированием
Старый 24.12.2011, 15:46   #2
NetSpace
Участник клуба
 
Аватар для NetSpace
 
Регистрация: 03.06.2009
Сообщений: 1,792
По умолчанию

смысл таков (как-то пытался сделать): в таймере отлавливал сообщения от кнопок и от мыши и возвращал 0, и координаты проверял, чтоб мышь была над этой формой. работало как-то дёргано под 7, а под ХЗ вообще через раз. приходилось прогу перезапускать. психанул и удалил проект. но там кода строчек 25 было - не шибко трудный.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
NetSpace вне форума Ответить с цитированием
Старый 24.12.2011, 19:10   #3
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

попробуй хукнуть
counter вне форума Ответить с цитированием
Старый 25.12.2011, 11:04   #4
serebrus
Новичок
Джуниор
 
Регистрация: 24.12.2011
Сообщений: 2
По умолчанию

counter, а можно в примере объяснить? а то я раньше вообще не работал ХУКами.
serebrus вне форума Ответить с цитированием
Старый 25.12.2011, 12:22   #5
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

хук лучше устанавливать из dll, т.е. вам надо написать dll, в которой будет примерно такой код:

Код:
HHOOK hHook;

extern "C"
HHOOK SetMyHook(bool enable)
{
      if(enable)
      {
         hHook=SetWindowsHookEx(WH_MOUSE,MouseProc,hDll,NULL); 
         return hHook;
      }
      else
      { 
          return UnhookWindowsHookEx(hHook);
      }
}


LRESULT CALLBACK MouseProc(int code, WPARAM wParam, LPARAM lParam)
{
    MOUSEHOOKSTRUCT *pMouse=(MOUSEHOOKSTRUCT*)lParam;
    if(code<0)
         return CallNextHookEx(hHook,code,wParam,lParam);
    else
    {
         if(pMouse->hWnd==/*ваш дескриптор*/)
         {
              if(wParam==WM_RBUTTONDOWN)
                     return 0;
         }
    }
    return CallNextHookEx(hHook,code,wParam,lParam);
}
из вашей программы установить или снять хук

Код:
HOOKPROC hHookProc; 
HINSTANCE hinstDLL; 
HHOOK hHook; 
 
hinstDLL = LoadLibrary("*.dll"); 
hHookProc = (HOOKPROC)GetProcAddress(hinstDLL, "SetMyHook"); 
hHook = hHookProc(true); // установить, если снять то false
http://vsokovikov.narod.ru/New_MSDN_...dowshookex.htm

PS. Это примерный код, я его не тестировал)

Последний раз редактировалось counter; 25.12.2011 в 12:28.
counter вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
Блокировка доступа к сайту ("детский интернет") Виктор Николаевич Свободное общение 10 19.10.2011 22:50
Как обойти "преобразование типа из "string" в "float" невозможно" lexluter1988 Помощь студентам 1 07.08.2010 12:23
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" aleksei78 Microsoft Office Excel 13 25.08.2009 12:04