Гость
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Затуп с хуком SetWindowsHookEx / 2 сообщений из 2, страница 1 из 1
11.01.2022, 15:22
    #40125791
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Затуп с хуком SetWindowsHookEx
Делаю хук, но он, судя по всему, не вызывается, хотя установка проходит без ошибок.

Прога
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
program CustomKBApp;

{$R *.res}

uses
  Windows,
  System.SysUtils;

var
  hHookLib: HMODULE;
  HookProc: TFNHookProc;
  hHook: Windows.HHOOK;
begin
  hHookLib := LoadLibrary('CustomKBHookLib.dll');
  if hHookLib = 0 then
    Exit;
  @HookProc := GetProcAddress(hHookLib, 'HookProc');
  if not Assigned(@HookProc) then
    Exit;
  hHook := SetWindowsHookEx(WH_KEYBOARD_LL, @HookProc, hHookLib, 0);
  if hHook = 0 then
    Exit;

OutputDebugString('hook installed');
Sleep(20000);

  UnhookWindowsHookEx(hHook);
OutputDebugString('hook removed');
  FreeLibrary(hHookLib);
end.



DLL
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
library CustomKBHookLib;

uses
  Windows, Messages, 
  System.SysUtils;

{$R *.res}

function HookProc(code: Integer; wparam: WPARAM; lparam: LPARAM): LRESULT stdcall;
begin
  OutputDebugString('hook');
  Result := CallNextHookEx(0, code, wParam, lParam);
end;

exports
  HookProc;

begin
end.



В мониторинге сообщения только от проги:
[4696] hook installed
[4696] hook removed

хотя нажатия на клавиши заметно подтормаживают. С разрядностями игрался (пробовал и 32, и 64). В ProcessExplorer в списке DLL у процессов моя HookLib нигде не видна. Что-то никак не могу взять в толк, где проблема. XE2, W7
...
Рейтинг: 0 / 0
11.01.2022, 15:40
    #40125800
Fr0sT-Brutal
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Затуп с хуком SetWindowsHookEx
Хм. А из гуевого приложения установка работает. Выходит, вызывающий процесс должен крутить цикл. Попробовал вместо Sleep вставить "while GetMessage(msg, 0, 0, 0) do;" - пустой, т.к. и окон-то никаких нет. Сработало.
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Затуп с хуком SetWindowsHookEx / 2 сообщений из 2, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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