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

Delphi Sources



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

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 05.11.2010, 12:44
Kompuklumba Kompuklumba вне форума
Прохожий
 
Регистрация: 01.11.2010
Сообщения: 5
Репутация: 10
По умолчанию после удаления hook вешается ОС

Загружаю ловушку при запуске программы, отрабатывает она нормально, закрываю приложение и по событию OnClose пытаюсь отключить ловушку. Получается что вешается вся ось... где касяк понять не могу, вот текст библиотеки.
Код:
library DynHelp;

uses
  ShareMem,
  SysUtils,
  Classes,
  StdCtrls,
  AppEvnts,
  ComCtrls,
  Forms,
  Windows,
  Controls,
  Messages;

var
  CMemo: TCustomMemo;
  HandleHook: HHOOK = 0;
{$R *.res}

  //процедура на ловушку
  procedure Hook(Code: integer; wParam: integer; lParam: integer); stdcall;
  begin
    CallNextHookEx(HandleHook, Code, wParam, lParam);
    if Code = HC_ACTION then
      if TMSg(Pointer(lParam)^).message = WM_LBUTTONDOWN then
        if (TMSg(Pointer(lParam)^).wParam and MK_CONTROL) = MK_CONTROL then
        begin                               
          MessageBox(TMSg(Pointer(lParam)^).hwnd, PChar(IntToStr(lParam)),
              '!!!', mb_iconhand);
        end;

  end;

  procedure DynHelpConnection(CustomMemo: TCustomMemo; ThreadID: Cardinal);
      stdcall; export;
  begin
    if (CustomMemo.ClassName = 'TMemo') then
    begin
      CMemo := CustomMemo;
      HandleHook := SetWindowsHookEx(WH_GETMESSAGE, @Hook, HInstance, 0);
    end;
  end;

  procedure DynHelpDisconnection; stdcall; export;
  begin
    UnhookWindowsHookEx(HandleHook);
    HandleHook := 0;
    CMemo := nil;
  end;

exports
  DynHelpConnection,
  DynHelpDisconnection;

begin
end.
Ответить с цитированием
 


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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