问题标签 [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 投票
5 回答
53524 浏览

c++ - 如何在 C/C++ 中挂钩 Windows 函数?

如果我有一个foo()windows在kernel32.dll中实现的函数并且它总是返回true,我可以让我的程序:“bar.exe”挂钩/绕行那个windows函数并让它为所有进程返回false吗?

因此,例如,如果我的 svchost 调用foo(),它将返回 false 而不是 true。当前运行的所有其他进程都应该执行相同的操作。

如果是这样,怎么做?我想我正在寻找一个系统范围的钩子或其他东西。

0 投票
2 回答
2590 浏览

c++ - 在 Hook Filter 函数中过滤 Windows 消息

我正在尝试使用 Windows 挂钩检索另一个应用程序的消息。我已经用 SetWindowsHookEx 设置了一个 WH_GETMESSAGE 钩子。这是通过 DLL 完成的。在我的 GetMsgProc 函数(每当目标应用程序收到消息时都应该调用它)中,我想根据消息的类型采取行动。但是我在使用这个 if 语句时遇到了麻烦。

由于某种原因,永远不会创建 MessageBox。我知道应用程序正在接收来自 Spy++ 的 WM_COMMAND 消息。如果我取出 IF 语句,MessageBox 会在接收各种消息时一遍又一遍地创建。

0 投票
22 回答
22733 浏览

svn - 分享常用/有用的 SVN 预提交钩子

SVN 有哪些常见和/或有用的预提交钩子?

0 投票
3 回答
1938 浏览

jquery - 使用 jQuery(或纯 JS)添加新的 DOM 元素

明确一点:我不是在问如何将现有的钩子放到新的 DOM 元素上。我知道 live() 函数和旧的 livequery 插件。我在问别的东西。

我想知道的是如何挂钩新 DOM 元素的创建。我问的原因是我正在创建一个无法控制第一方脚本的第三方用户 JS 脚本。这些第一方脚本(经过混淆处理)通过添加新的 DOM 元素定期更新页面。我想在添加这些元素后执行代码。

使用 $( '...' ).bind( 'ajaxSuccess', function() ..... ) 适用于一些添加,但不是全部。

0 投票
1 回答
2872 浏览

64-bit - 应用挂钩 :: x64 系统

在 64 位系统上挂钩 64 位和 32 位进程是否有某种秘密?

在我目前正在编写的应用程序中,我需要能够挂钩 64 位进程。挂钩 32 位进程在 64 位和 32 位系统上工作得很好,但是在尝试挂钩 64 位应用程序时不会收到任何消息。

在有人告诉我不应该做这样的事情之前,让我解释一下这对我来说是一件非常必要的事情。如果没有设置全局系统挂钩,我的应用程序将毫无用处/毫无意义。

此应用程序是用 C#/WPF 编写的,但是使用 C++ dll 来执行实际的挂钩。我已经尝试为 64 位系统编译 dll,尽管它仍然没有做它应该做的事情。当为 32 位系统编译和运行时,它完全可以正常工作。

*编辑:: 我说的是挂钩窗口消息 - WH_CBT & WH_SHELL 消息

0 投票
4 回答
6969 浏览

python - 如何在 Python 中将全局标记为已弃用?

我见过装饰器可以让您将函数标记为已弃用,以便在使用该函数时发出警告。我想对全局变量做同样的事情,但我想不出一种检测全局变量访问的方法。我知道 globals() 函数,我可以检查它的内容,但这只会告诉我是否定义了全局(如果该函数已被弃用而不是全部删除,它仍然会是)而不是如果它实际上被使用. 我能想到的最好的选择是这样的:

但除了如何让 DEPRECATED 完全像“3”一样的问题之外,我不确定 DEPRECATED 可以做什么来让您在每次访问它时都能检测到。我认为它可以做的最好的事情是遍历所有全局方法(因为 Python 中的所有内容都是一个对象,所以即使“3”也有方法,用于转换为字符串等)并将它们“装饰”以使其全部被弃用。但这并不理想。

有任何想法吗?有没有其他人解决过这个问题?

0 投票
1 回答
214 浏览

c++ - 在我的应用程序中挂钩

我应该怎么做才能实现类似钩子的系统?
这是我的设置:

我有这些静态库:

A 和 B 就像可以一起包含在同一个应用程序中的模块。问题是我在 A 中有一个想要向 B 公开的函数。我正在使用回调列表执行此操作……但我对这个想法不满意。所以我想我可以实现一个类似钩子的系统,就像 Win32API 一样,但我想听听专家的意见。

当然,我可以访问这两个源代码。

注意:我忘了提到我没有使用类,并且由于设计决定,我无法为该项目创建类或对象,因此此处不允许使用继承之类的东西。

0 投票
1 回答
1083 浏览

svn - 使用 SharpSvn 编写预提交挂钩。它是否缺少 svnlook propget?

我正在重写一个旧的颠覆预提交钩子。在我们公司,我们需要确保只有在提交前设置了属性 svn:needs-lock 时才允许提交二进制文件。

我开始编写钩子,看起来钩子的每个部分都有效,但是如果设置了属性,我找不到如何阅读。

我会假设,SvnLookClient 会有 SvnLookClient.GetProperty 方法,但我看到的唯一一个是 SvnLookClient.GetRevisionProperty。不幸的是 GetRevisionProperty 不允许传递有问题的文件。我在这里想念什么?

毕竟,svnlook propget 确实允许传递存储库、事务、属性名和存储库中的路径。

0 投票
1 回答
2344 浏览

c# - 程序红外接收器

我正在考虑为我的 HTPC 购买一个 IR 接收器。

我想知道我是否可以自己为我的 IR 接收器制作软件。

ir 接收器如何在 windows 上工作?

我的意思是,如果我安装了 IR 接收器驱动程序并按下遥控器上的一个键,会发生什么?我可以使用钩子在 c# 中按下按钮吗?如果我能抓住按下的按钮,玩起来会很有趣:)

0 投票
1 回答
2539 浏览

winapi - 带有 WH_MOUSE 的 SetWindowsHookEx 未捕获 HTCAPTION 区域上的鼠标移动

我尝试使用 SetWindowsHookEx 和 WH_MOUSE 来捕获鼠标移动事件。它可以在任何地方工作,但在 HTCAPTION 区域(至少在我的代码示例中)。我找不到对这种行为的任何引用,我试图将 windbg 放入另一个应用程序,该应用程序执行相同的操作来监视鼠标移动。使用的方法也是 WH_MOUSE,即使鼠标在标题区域上也会生成事件。因此,它应该工作,但它没有。

有任何想法吗 ?

编辑:我正在使用它来挂钩所有进程。我构建了一个单独的 dll,将消息转发到我的应用程序中的某个内部窗口。我使用 dwThreadId = 0。我也没有在标题区域单击鼠标。