Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Хуки на C#, Проблемы с SetWindowsHookEx 
:(
    Опции темы
Nikius
Дата 22.11.2007, 13:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 21.9.2005
Где: Украина, Запорожь е

Репутация: нет
Всего: нет



Доброго времени суток! Поможете разобраться с проблемой?
Хочу поставить хук на активацию любого окна.

В dll написал:
Код

...
        public const int WH_CBT = 5;
        public const int HCBT_ACTIVATE = 5;

        private static IntPtr _hHook;
        public delegate IntPtr HookProc(int code, IntPtr wParam, IntPtr lParam);
        private static HookProc _hookProc = HookActivate;

        private static StreamWriter file;

...

        public static void SetHook()
        {
            _hHook = SetWindowsHookEx(WH_CBT, _hookProc, GetModuleHandle("LibForHook.dll"),  (IntPtr)0);
        }

        public static IntPtr HookActivate(int nCode, IntPtr wParam, IntPtr lParam)
        {
            file = new StreamWriter(new FileStream(FileName, System.IO.FileMode.Append));
           
            file.WriteLine(nCode); //Здесь узнаю, что мой хук не выдает nCode = 5
            
            if (nCode < 0)
            {
                return CallNextHookEx(_hHook, nCode, wParam, lParam);
            }

            if (nCode == HCBT_ACTIVATE)
            {
               ...
             }
            file.Close();
            return CallNextHookEx(_hHook, nCode, wParam, lParam);
         }
...


При переключении между окнами или запуске новых приложений ни разу не получил nCode = 5. Зато nCode = 6 (HCBT_CLICKSKIPPED) получаю постоянно, то есть хук хоть как-то но работает. Я делаю что-то не так? Тут ведь не где даже ошибиться.
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0390 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.