![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перехват событий от мыши в любом месте экрана [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;