gpt4 book ai didi

delphi - 使用 Delphi 是否有一种低开销的方法来 Hook 鼠标双击?

转载 作者:行者123 更新时间:2023-12-03 14:07:21 26 4
gpt4 key购买 nike

这是我想在 Delphi XE 中做的事情:
捕获另一个应用程序中的双击,这样当它发生并且鼠标下方的文本被突出显示时,这会根据突出显示的文本在我的应用程序中触发一系列事件。

我知道使用系统范围的鼠标 Hook 来执行此操作的方法,但是...由于我的应用程序和其他应用程序在许多情况下将托管在终端服务或 citrix 环境中,因此我不太愿意使用鼠标执行此操作 Hook ,因为我担心资源成本。 (我正在想象服务器托管数百个鼠标钩子(Hook),每个用户一个......不寒而栗)。我是不是太谨慎了?鼠标钩的性能和稳定性能打多少? TS或者citrix环境下呢?如果我的直觉是正确的并且多个钩子(Hook)的成本太高,还有其他方法吗?

我无权访问其他应用程序的源代码,并且在其中发现文本的第 3 方 Richedit 控件已被修改得面目全非,并且在发布时不响应 API。帮助?

最佳答案

如果不使用系统范围的鼠标 Hook AFAIK,这是不可能的。

您担心开销是正确的。每次窗口调用 PeekMessage 时都会调用鼠标钩子(Hook) (MouseProc)或 GetMessage并且有一条鼠标消息要检索,它将为每个运行的应用程序的每个窗口调用。即使您的钩子(Hook)只是使用 CallNextHookEx() 将事件传递给下一个处理程序, 会对系统产生影响。我怀疑在 TS 下运行的多个 session 会非常讨厌。

关于delphi - 使用 Delphi 是否有一种低开销的方法来 Hook 鼠标双击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10082776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com