Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.12.2014, 19:08
ApxaHGe1 ApxaHGe1 вне форума
Активный
 
Регистрация: 08.04.2008
Адрес: Нижний новгород
Сообщения: 311
Репутация: 38
По умолчанию Hook клавиатуры

Добрый день, есть приложение, написанное в делфи, оно свернуто, есть другое приложение, оно активно, мне нужно перехватить хажатие нескольких клавиш, а именно ctrl, chift, delete, insert

Так как хук для меня далекая тема, в интернете нашел код

Код:
var
 g_hhk: HHOOK;
 State : TKeyboardState;

function GetSupport(nCode: Integer; wParam: wParam; lParam: lParam ): LParam; stdcall;
var
wnd:HWND;
begin
wnd:=FindWindow(nil,'ActiveWindow');
GetKeyboardState(State);
if ((State[vk_Control] And 128) <> 0) then
begin
SendMessage(wnd, WM_KEYDOWN, VK_F1, 0);
SendMessage(wnd, WM_KEYUP, VK_F1, 0);
end;

if ((State[vk_SHIFT] And 128) <> 0) then
begin
SendMessage(wnd, WM_KEYDOWN, VK_F2, 0);
SendMessage(wnd, WM_KEYUP, VK_F2, 0);
end;

if ((State[vk_INSERT] And 128) <> 0) then
begin
SendMessage(wnd, WM_KEYDOWN, VK_F3, 0);
SendMessage(wnd, WM_KEYUP, VK_F3, 0);
end;

if ((State[vk_DELETE] And 128) <> 0) then
begin
SendMessage(wnd, WM_KEYDOWN, VK_F4, 0);
SendMessage(wnd, WM_KEYUP, VK_F4, 0);
end;

end;



exports
 GetSupport;
begin
end.

Код вроде рабочий, когда нажимаю нужные клавишы, идет посылка нажатий в другое окно, НО ЕСТЬ ОДНО НО!!!!
ни какие другие клавиши не работают, т.е. печатать какой то текст, я уже не могу в других окнах, помогите этого избежать

Вызываю код из DLL таким образом
Код:
button1.click
  hinstDLL := LoadLibrary('Support.dll');
  hkprcKeyboard := GetProcAddress(hinstDLL, 'GetSupport');
  SetWindowsHookEx(WH_KEYBOARD, hkprcKeyboard, hinstDLL, 0);

Последний раз редактировалось ApxaHGe1, 08.12.2014 в 19:10.
Ответить с цитированием
 


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:00.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025