Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2008, 15:39   #1
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию Глобальный хук на мышь не глобальный О_о

Простейшая библиотечка

Код:
library hook;

uses
    Windows,  Messages;

Const 
    WM_READY = WM_USER + 13;

var
    MyHook: HHook = 0;
    Wnd: Hwnd = 0;
    ParentWnd: HWND;

function HookProc(code, wParam, lParam : integer) : LResult; stdcall;
begin
  if Code < 0 then
  begin
    result := CallNextHookEx(MyHook, Code, wParam, lParam);
    exit;
  end;

  If wParam=WM_LBUTTONDBLCLK then
  begin
      PostMessage(ParentWnd, WM_READY, Wnd, 0);
  end;

  Result:=CallNextHookEx(MyHook,Code,wParam,lParam);
end;

procedure Run(State:Boolean; parent:HWND) export; stdcall;
begin
    if State=true then
      MyHook := SetWindowsHookEx(WH_MOUSE,@HookProc,HInstance,0)
    else
      begin
        UnhookWindowsHookEx(MyHook) ;
        MyHook := 0;
      end;
  ParentWnd:=parent;
end;

exports Run;

begin
end.
Задолбался уже Хук получается не глобальный Я чего-то не заметил?

---
И через WH_GETMESSAGE работает только в моём приложении Ничё не понимаю
Код:
function HookProc(code, wParam, lParam : integer) : LResult; stdcall;
Begin
   CallNextHookEx(MyHook, code, wParam, lparam);
   if code=HC_ACTION then
      begin
         if TMsg(pointer(lParam)^).message=WM_LBUTTONDBLCLK then 
         PostMessage(ParentWnd, WM_READY, Wnd, 0);
      end;
end;
...
MyHook := SetWindowsHookEx(WH_GETMESSAGE,@HookProc,HInstance,0)
И перезагружался уже... Такое может быть, если в системе криво установлена чья-та другая ловушка?
пыщь

Последний раз редактировалось JTG; 05.06.2008 в 16:13.
JTG вне форума Ответить с цитированием
Старый 05.06.2008, 16:51   #2
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Странно... Это GetCurrentProcessId так говорит?
B_N вне форума Ответить с цитированием
Старый 05.06.2008, 17:27   #3
JTG
я получил эту роль
Старожил
 
Аватар для JTG
 
Регистрация: 25.05.2007
Сообщений: 3,694
По умолчанию

GetCurrentProcessId? Не знаю, а причём тут это?

Сделал уже на любимом FASM ))) И как маньяк минимизации уложился в полтора килобайта вместе с релоками и отдельной секцией .BSS с аттрибутом shareable, чтоб уж точно по всем правилам
пыщь
JTG вне форума Ответить с цитированием
Старый 05.06.2008, 17:41   #4
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

Цитата:
Сообщение от JTG Посмотреть сообщение
GetCurrentProcessId? Не знаю, а причём тут это?
Ну на всякий случай... Чтобы убедиться, что "работает только в моём приложении"...
http://www.programmersforum.ru/showthread.php?t=16709

Кстати, особого криминала и я не заметил, разве что не понял, почему ParentWnd приходит параметром...

Цитата:
Сообщение от JTG Посмотреть сообщение
Сделал уже на любимом FASM ))) И как маньяк минимизации уложился в полтора килобайта вместе с релоками и отдельной секцией .BSS с аттрибутом shareable, чтоб уж точно по всем правилам
Ну это же доолгооо. ) И потом, всё равно смэпает в 64k минимум.
B_N вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мышь Михаил Юрьевич Общие вопросы Delphi 8 09.06.2008 11:23
Клава&мышь MAcK Win Api 5 23.08.2007 15:33
Мышь kl45gp Общие вопросы Delphi 7 16.06.2007 22:47
глобальный поиск по винтам Simply-Art Общие вопросы Delphi 5 27.11.2006 17:02
глобальный хук & событие отжатия клавиши Nowichok Общие вопросы Delphi 9 24.11.2006 17:51