Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перехват событий от мыши в любом месте экрана [D6, WinXP]


Bora ©   (2009-08-26 17:13:00) 

Как перехватить такие события, как нажатие или отпускание кнопок мыши и перемещение курсора, вне своей программы?


Сергей М.   (2009-08-27 21:57:00) [1]


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


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

Следует ставить хук WH_MOUSE_LL.


TIF   (2009-08-26 17:45:00) [2]

Ещё статья в тему
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


Bora   (2009-08-26 17:36:00) [3]

спасибо - буду читать. Но все равно посмотри, пожалуйста, почему там возникает ошибка в [1]?


Bora   (2009-08-26 17:32:00) [4]

TIF, можно ли поподробнее или хотя бы разъясни на том примере, что я дал


TIF   (2009-08-26 17:32:00) [5]

> что - хуки?

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

Про хуки в MSDN:
http://msdn.microsoft.com/en-us/library/ms997537.aspx


Bora   (2009-08-26 17:30:00) [6]

что - хуки?


TIF   (2009-08-26 17:29:00) [7]

Hooks - Хуки


Bora   (2009-08-26 17:28:00) [8]

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

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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо