首页 > 解决方案 > 如何在我的应用程序中捕捉任何鼠标点击

问题描述

Delphi 10 在我的(windows-)应用程序中获得每次鼠标点击的最佳方法是什么?我实际上想实现触摸声音,但OnGesture只返回手势(惊喜),所以我想去任何点击。我不想捕获每个 VCL OnClick,我希望有一个整体的钩子/触发器/事件

标签: delphidelphi-10.3-rio

解决方案


@David Heffernan 是对的,
如果你想获取其他应用程序中的所有事件,你可以使用消息事件,你应该使用钩子。
这是通过 message( WM_LBUTTONDOWN WM_LBUTTONUP)
覆盖 application.OnMessage来实现的一些功能

application.OnMessage := yourOnMessage 

覆盖 WndProc(var message:TMessage);

procedure TForm1.WndProc(var message: TMessage);
begin
  inherited;
  if message.Msg = WM_LBUTTONDOWN then
    ShowMessage('down');

end;

只听 WM_LBUTTONDOWN

procedure Wmme(var message:TMessage);message WM_LBUTTONDOWN;
procedure TForm1.WndProc(var message: TMessage);
begin
  inherited;
  if message.Msg = WM_LBUTTONDOWN then
    ShowMessage('down');

end;


推荐阅读