Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Глобальный хук и WM_KEYUP 
:(
    Опции темы
Centurion
Дата 11.2.2013, 07:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.7.2006

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



Здравствуйте! Пожалуйста помогите разобраться в коде данной функции, не могу его переделать чтоб хук реагировал только при отпускании (KeyUP) клавиши:

Код

function KeyHookFunc(Code, VirtualKey, KeyStroke: integer): LRESULT; stdcall;
var
  msgl: PEVENTMSG;
begin
  Result:=0;
  if Code=HC_NOREMOVE then Exit;
  Result:=CallNextHookEx(hK,Code,VirtualKey,KeyStroke);
  if Code<0 then Exit;
  if (Code=HC_ACTION) then
  begin
    msgl := Pointer(KeyStroke);     // Без этих двух строчек функция работает
    if msgl.message = WM_KEYUP then // идеальною, но надо чтоб хук реагировал только
    begin                           // на отпускание клавиш. П О М О Г И Т Е !
      if((KeyStroke and (1 shl 30))<>0) then
      if not IsWindow(hA) then
      begin
        hM:=OpenFileMapping(FILE_MAP_WRITE,False,'MyHookMap');
        Hr:=MapViewOfFile(hM,FILE_MAP_WRITE,0,0,0);
        if Hr<>nil then
          hA:=Hr.AppHnd;
      end;
      if ((KeyStroke and (1 shl 30))<>0) then
      begin
        SendMessage(hA, WM_USER+2008, VirtualKey ,  KeyStroke {GetFocus});
      end;
    end;
  end;
end;

PM MAIL   Вверх
Centurion
Дата 11.2.2013, 09:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 18
Регистрация: 27.7.2006

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



Всем спасибо! Разобрался! условие 
Код

    if (KeyStroke and $80000000 <> 0) then

было разгадкой!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: WinAPI и системное программирование"
Snowybartram
MetalFanbems
PoseidonRrader
Riply

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Delphi обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • 99% ответов по WinAPI можно найти в MSDN Library, оставшиеся 1% здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема »


 




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


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

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