delphi - 如何在我的应用程序中捕捉任何鼠标点击
问题描述
Delphi 10 在我的(windows-)应用程序中获得每次鼠标点击的最佳方法是什么?我实际上想实现触摸声音,但OnGesture
只返回手势(惊喜),所以我想去任何点击。我不想捕获每个 VCL OnClick
,我希望有一个整体的钩子/触发器/事件
解决方案
@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;
推荐阅读
- pine-script - TradeView 中的策略测试器:数量和退货问题
- ruby-on-rails - 使用 select2 和 Capybara 运行 Cucumber 测试选择一个选项
- javascript - In Mocha can I assert that a request times out?
- ios - 如何在设计器中的自定义按钮控件上显示图像
- sql - 无键删除重复项
- c++ - 使用 Google Test 时重定向 stdout 会导致设置 errno
- php - 使值复选框出现
- r - 维护从R中的字符串中提取模式的顺序
- linux - 在另一个终端窗口中打开一个新会话而不阻塞调用终端
- swift - 获取在 ViewController 类中启动应用程序的文件名?