问题标签 [hook]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2361 浏览

c# - 在“DropDownList”模式下使用 .Net ComboBox 属性 SelectionStart 和 SelectionLength 导致的奇怪行为

我们有一个示例应用程序,其中包含“DropDownList”模式下的组合框的此类处理程序:

上面的代码行为不同,具体取决于应用程序是否加载了 CALLWNDPROC 挂钩。如果应用程序中有一个 CALLWNDPROC 钩子——只要组合框失去焦点,上面的代码就会抛出异常。没有钩子 - 该代码不会抛出。

这些是异常描述中的几行:

问题是:安装钩子后出现这种不同行为的原因可能是什么?

PS1:我不是 C# 开发人员,但在我看来,文本选择的概念不适用于 DropDownList 组合框(因为它们没有文本框),对吗?

PS2:安装钩子的应用程序和钩子DLL是用C++编写的。钩子函数很简单:

0 投票
1 回答
890 浏览

winapi - 挂钩时覆盖窗口未正确绘制

要求是在另一个应用程序窗口的一侧绘制我的信息。照顾 z 顺序等等挂钩 WH_GETMESSAGE 和绘制 WM_PAINT 似乎不错。

然而,一些 WM_PAINT 用于我关注的窗口区域,但其他 WM_PAINT 用于完全不同的东西,如上下文菜单或按钮。

示例记事本与在记事本屏幕中写入“Hello”的覆盖物挂钩。这工作正常。但是,当右键单击记事本时,上下文菜单会被 Hello 覆盖。基本上上下文菜单被破坏了。

有没有一种优雅的方法来确定 WM_PAINT 是上下文菜单?

仅测试绘图更新区域是不够的,因为上下文菜单可以在任何地方并包含我关注的区域。

0 投票
3 回答
375 浏览

c# - 在 Windows 中捕获 http/https 请求

是否可以在 Windows 中捕获用于过滤的 http/https 请求?

0 投票
4 回答
757 浏览

c++ - 我的 C 程序为钩子提供了回调函数。我怎样才能让它活着,不笨拙?

目前,我正在生成一个带有操作系统库函数 (Windows.h) 的消息框,它神奇地使我的程序保持活动状态并响应对回调函数的调用。

可以使用什么替代方法让程序永远运行下去?

捕获 'Ctrl-c' 或 SIGINT 并随后调用 RemoveHook() 以进行干净退出会很好,但不是必需的。

0 投票
2 回答
6559 浏览

c# - 如何添加系统“windows hook”以便在创建/激活窗口时收到通知?

尝试了很多东西,但在我的任务栏被核弹和桌面 UI 上的其他超自然效果的情况下,我无法让它始终如一地工作。

首先尝试使用开放库http://mwinapi.sourceforge.net/。虽然它作为一个 OO 层可以很好地用于枚举窗口和其他东西。它不能正确地做钩子

下一站是Dino E. 在 .Net 框架中的 Windows Hooks 上的帖子。当我理解文本并试图让它发挥作用时,我最终编写了自己的类型。

我的目的是让这个应用程序运行并让它能够在运行时记录所有创建的窗口。唤起所有的眼球...

更新:由于显然您不能在 .Net / 托管代码中编写全局窗口挂钩(除了一些低级鼠标或键盘挂钩) ,因此被剪掉了

所以我切换到C++。仍然所有 WinAPI 调用都返回有效句柄,但我没有看到我的过滤器函数被调用 - 似乎没有收到任何通知。仍然不起作用...有人可以发现错误。

客户端 exe 像这样调用 Hook_DLL

0 投票
3 回答
344 浏览

winapi - 抑制对对话框的击键

我为我无法控制的对话框添加了一个键盘钩子(它在封闭源代码的库中运行自己的 DialogProc 函数)。我能够捕捉击键,但击键总是发送到对话框中。这会导致错误哔声以及一些奇怪的行为。

安装挂钩:

钩子函数:

释放钩子:

有没有办法阻止击键被发送到对话框中具有焦点的控件?

0 投票
3 回答
1094 浏览

c# - 创建一个应用程序的钩子?

这是我需要的。

我试图编写一个应用程序来接管另一个应用程序并拦截其中发生的某些事情。这个想法是监视应用程序并在发生某些事情时采取行动。

经过一些研究,我发现来自 Ms Research 的 Detours 2.1 会对我有所帮助,但我很难找到如何使用它并将它集成到我的编程领域(即 .NET)中。

有谁知道我如何在不必挖掘 c\c++ 书籍的情况下做到这一点。

谢谢大家

0 投票
3 回答
2116 浏览

c++ - SetWindowsHookEx - Dll 注入错过了前几次调用

我正在尝试使用 SetWindowsHookEx 来捕获对 java.dll 中 API 的调用。

所以我创建了另一个 dll,并使用 setwindowsHookEx 注入到所有其他进程中

g_hHook = SetWindowsHookEx(WH_CALLWNDPROC, JLoadSetFunc, g_hHookDll, 0)

问题如下:

在尝试捕获来自进程的调用时,我注意到在对挂钩函数的几次调用已经执行后,我的 dll 被附加到该进程。

所以问题是我的挂钩机制错过了挂钩 API 的前几次调用。

请对此问题提出建议或评论以指导我。我被这个卡住了。

0 投票
3 回答
3984 浏览

c++ - 可以禁用使用 SetWindowsHookEx 运行时制作的挂钩吗?

如果一个名为 SetWindowsHookEx 的应用程序(例如我的,或在外部进程中),我可以解开挂钩吗?请记住,不是我把钩子放在首位,所以我没有任何变量或指向原始钩子的指针。

0 投票
2 回答
1723 浏览

c - 为什么 WH_MOUSE 钩子不再是全局的了?

我在一个监视鼠标手势的 DLL 中有这个全局鼠标钩子设置。

一切正常,但为 WH_MOUSE_LL 设置了一个钩子,这是一个低级钩子,不​​需要在外部可注入 DLL 中。

一旦我切换到更合适的那个会说 - WH_MOUSE 鼠标钩,一切都崩溃了。一旦我在我的主应用程序(安装钩子的那个)之外单击,钩子就会损坏 - ::UnhookWindowsHookEx 将失败。

我只发现这个人在专家交流中说

“没办法,至少在Windows XP + SVP2下WH_MOUSE不会全球化,你必须改用WH_MOUSE_LL。”

我正确设置了钩子:在使用共享数据部分的 DLL 中,从钩子过程中发布而不发送消息。

为什么这发生了变化?为什么没有记录?有人遇到过这个吗?谢谢!

顺便说一句:我对流行的StrokeIt应用程序进行了一些逆向工程,它使用了 WH_GETMESSAGE 和 WH_MOUSE 钩子的组合,并且仍然可以在 XP/Vista 上运行......