powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с SetWindowsHookEx
14 сообщений из 14, страница 1 из 1
Проблема с SetWindowsHookEx
    #39588670
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не работает, сволочь!
Скармливаю корректные данные в вызов, но упорно возвращает 0!
Windows 7(10) x64, пробовал в VS 2013/2015
Поиск в интернете ничего не дал.
Кто сталкивался? Как вылечить?
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39588695
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,
Права максимальные в манифесте?
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39588799
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
букварьReturn value
Type:
Type: HHOOK
If the function succeeds, the return value is the handle to the hook procedure.
If the function fails, the return value is NULL. To get extended error information, call GetLastError .
( SetWindowsHookEx function (Windows) )
- и что показывает GetLastError? (в C# можно вызвать Marshal.GetLastWin32Error, указав в DllImport SetLastError=true).
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39588856
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныбукварьReturn value
Type:
Type: HHOOK
If the function succeeds, the return value is the handle to the hook procedure.
If the function fails, the return value is NULL. To get extended error information, call GetLastError .
( SetWindowsHookEx function (Windows) )
- и что показывает GetLastError? (в C# можно вызвать Marshal.GetLastWin32Error, указав в DllImport SetLastError=true).

Marshal.GetLastWin32Error -так и есть в коде. Текст ошибки - некорректный хендл окна.
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39588882
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Как вылечить?
в топку c#

на winapi перепишите
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39588904
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008Marshal.GetLastWin32Error -так и есть в коде. Текст ошибки - некорректный хендл окна.
Ну, тогда ошибка в строке 83.
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39589200
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры ПавловныSQL2008Marshal.GetLastWin32Error -так и есть в коде. Текст ошибки - некорректный хендл окна.
Ну, тогда ошибка в строке 83.
Понимаю вашу иронию...
Вот кусок кода
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
       private void InstallHook()
        {
            if (Handle != 0) throw new Exception("Hook is already installed");

            int htype = 0;

            switch (HookType)
            {
                case HookTypes.Mouse:
                    htype = WinApi.WH_MOUSE_LL;
                    break;
                case HookTypes.Keyboard:
                    htype = WinApi.WH_KEYBOARD_LL;
                    break;
                default:
                    throw new Exception("HookType is not supported");
            } 
            _HookProc = new HookProcCallBack(HookProc);

            _hHook = WinApi.SetWindowsHookEx(htype, _HookProc, Marshal.GetHINSTANCE(Assembly.GetExecutingAssembly().GetModules()[0]), 0);
            
            if (Handle == 0) throw new Win32Exception(Marshal.GetLastWin32Error());
        }
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39589204
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибка такая
авторERROR_NO_TOKEN
1008 (0x3F0)
An attempt was made to reference a token that does not exist.
Похоже чего-то не хватает...
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39589212
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Среди передаваемых параметров нет пустых и нулевых.
Даже не знаю в какую сторону копать.
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39589274
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008,
Ну дак хэндл окна оттрассируйте.
Его видно и снаружи кода в утилитах.
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39589321
Дмитрий77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилSQL2008Как вылечить?
в топку c#
на winapi перепишите
А кто мешает ему писать на c# на winapi, что собственно он и делает.
Я ж пишу сколько лет на vb6/.Net на WinApi.

SQL2008,
я когда-то еще в vb6 пытался чего-то с этой ф-цией делать, но забил,
оно вроде работало, но показалось неудобным,
кажется в связи с необх. послать свое сообщение окну, не помню, в качестве альтернативы остановился на WM_CopyData. но могу чего-то путать.

Все API прекрасно работают из .Net при правильных навыках. Перечитывайте доки на API, пробуйте.
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39589328
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77но показалось неудобным,нулевое кольцо безопасности. И отписываться надо.
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39589352
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий77 Все API прекрасно работают из .Net при правильных навыках. Перечитывайте доки на API, пробуйте.
Все верно, просмотрел уже кучу примеров.
Пишут, что нужно делать так, как делаю я.
Но не работает.
Думаю, что забью на это и поищу другой путь.
Такие косяки на этапе разработки... А что будет у клиента в промышленной эксплуатации?
...
Рейтинг: 0 / 0
Проблема с SetWindowsHookEx
    #39589362
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ларчик открывался просто
Код: c#
1.
            _hHook = WinApi.SetWindowsHookEx(htype, _HookProc, System.Diagnostics.Process.GetCurrentProcess().MainModule.BaseAddress, 0);


и все заработало.
Всем спасибо!
Тема закрыта.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с SetWindowsHookEx
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]