Конференция "WinAPI" » Перехват событий от мыши в любом месте экрана [D6, WinXP]
 
  • Bora © (26.08.09 17:13) [0]
    Как перехватить такие события, как нажатие или отпускание кнопок мыши и перемещение курсора, вне своей программы?
  • Bora © (26.08.09 17:28) [1]
    Нашел вот такой код:

    unit Unit1;

    interface

    uses
     Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
     Dialogs,Wintypes,Winprocs, StdCtrls, AppEvnts;

    type
     TForm1 = class(TForm)
     private
       { Private declarations }
     public
       { Public declarations }
     end;
     function SetHook:Boolean;
     function UnHookHook:Boolean;
     function HookProc(Code:integer; wParam: Word; lParam: Longint): Longint;

    var
     Form1: TForm1;
     HookedAlready:Boolean;
     ourHook:HHook;

    implementation

    {$R *.dfm}

    function SetHook:Boolean;
    begin
    if HookedAlready then exit;
    ourHook:=SetWindowsHookEx(WH_MOUSE,HookProc,HInstance,0);
    (*В ПРЕДЫДУЩЕЙ СТРОКЕ ВЫДАЕТ ОШИБКУ: incompatible types:"calling сonventions differ"*)
    HookedAlready:=True;
    end;

    function UnHookHook:Boolean;
    begin
    UnHookWindowsHookEx(ourHook);
    HookedAlready:=False;
    end;
  • TIF © (26.08.09 17:29) [2]
    Hooks - Хуки
  • Bora © (26.08.09 17:30) [3]
    что - хуки?
  • Bora © (26.08.09 17:32) [4]
    TIF, можно ли поподробнее или хотя бы разъясни на том примере, что я дал
  • TIF © (26.08.09 17:32) [5]
    > что - хуки?

    Ключевое слово для поиска в интернете

    Про хуки в MSDN:
    http://msdn.microsoft.com/en-us/library/ms997537.aspx
  • Bora © (26.08.09 17:36) [6]
    спасибо - буду читать. Но все равно посмотри, пожалуйста, почему там возникает ошибка в [1]?
  • TIF © (26.08.09 17:45) [7]
    Ещё статья в тему
    http://delphikingdom.com/asp/articles_forum.asp?ArticleID=548

    > почему там возникает ошибка в [1]?

    calling сonventions differ - различаются соглашения о вызовах

    About Calling conventions:
    http://www.swissdelphicenter.ch/torry/showcode.php?id=1233

    Соглашения о вызовах:
    http://podgoretsky.com/ftp/Docs/Delphi/D7/d7stp/Glava28/Index4.html
  • Сергей М. © (27.08.09 21:57) [8]

    > Нашел вот такой код


    Выкинь его, он принципиально не решает поставленной задачи, кр.того в этом виде попросту не будет работать.

    Следует ставить хук WH_MOUSE_LL.
 
Конференция "WinAPI" » Перехват событий от мыши в любом месте экрана [D6, WinXP]
Есть новые Нет новых   [134433   +25][b:0][p:0]