问题标签 [setwindowshookex]
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.
winapi - 使用 WH_GETMESSAGE 调用 setwindowshookex 不适用于注入器以外的任何进程
我之前问过一个关于类似问题的问题,但我相信这次情况有所不同。
我有一个具有标准钩子、取消钩子和 msgProc 函数的 DLL。我在我的主应用程序中加载这个 DLL,然后调用“hook”,如下所示:
问题是,如果我将其设为全局,threadID = 0,则 msgHook 仅捕获加载库的进程的窗口接收到的消息,而不捕获其他任何消息,即使它应该是全局挂钩。
如果我提供某个其他窗口的 threadID,那么我根本不会收到消息。
可能是什么原因?
windows - 挂钩特定进程的注册表访问的简单方法
有没有一种简单的方法来挂钩我的代码执行的进程的注册表访问?我知道SetWindowsHookEx
和朋友,但它太复杂了......我仍然希望有一种简单的LD_PRELOAD
方法Unix
......
windows - 为什么 Windows 挂钩不会收到某些消息?
Microsoft 不建议将 DirectInput 用于键盘和鼠标输入。因此,我编写了一个输入管理器类,它使用 SetWindowsHookEx 挂钩到 WndProc 和 GetMsg。我相信钩子设置得当,尽管它们看起来是各种问题的原因。
我的 WndProc 和 GetMsg 挂钩都不会收到实际 WndProc 正在接收的任何消息。我的输入管理器从未收到它需要的 WM_INPUT、WM_BUTTON 、 WM_MOUSEWHEEL 和 WM_KEY* 消息。
是什么赋予了?
部分标题:
部分来源:
我不包括消息处理程序的代码,因为它由 149 行组成,其中大部分是消息类型的开关。WndProc 中收到的消息值与我的回调中的不同。
c# - Window hooks in c#
Im trying to hook up to other windows from csharp. Im using SetWindowsHookEx
, but no luck with converting it fom c++ t c#.
I found this thread here
but it wasnt solved. The problem is that SetWindowsHookEx returns 0.
It includes best code samle i found:
Any help, advices?
c++ - 用于 64 位操作系统的系统范围挂钩
我想在 64 位操作系统上执行系统范围的挂钩(使用 SetWindowHook)。
我知道 64 位进程(= proc64)只能加载 64 位 dll(= dll64),而 32 位进程(= proc32)只能加载 32 位 dll(= dll32)。
目前我计划调用 SetWindowHook 两次,一次使用 dll32,一次使用 dll64,预计 proc64s 将加载 dll64,proc32s 将加载 dll32(而 proc64s 的 dll32 和 proc32s 的 dll64 将失败)。
这是正确的方法,还是有“更正确”的方法?
谢谢!:-)
c - Hook keyboard from injected DLL using KeyboardProc / SetWindowsHookEx
Note: I am working in plain C. Not C++, not C#.
I am working on a mod. I've already written a working DLL-injector, as well as the DLL to be injected. Everything is going well, apart from the userinput.
I want to be able to use hotkeys, so I tried to setup a keyboardhook using SetWindowsHookEx. The following is my callback function:
And this is how I set it up:
As far as I can tell, the hook gets setup well (I used to have a problem with an invalid parameter, but fixed that by using GetCurrentThreadID). It returns a handle which is not NULL.
But whenever I press a key, there is no output.
To further clarify: The code above is from the injected DLL. So it effectively 'belongs' to the game process. I have allocated a console using AllocConsole, to print debug messages to.
What am I doing wrong?
EDIT: To clarify (even more): the listed code is from the injected DLL. It is not the approach I use to inject the DLL - I wrote a seperate (working!) program to do just that.
It surprises some that I use printf(), since that wouldn't show up, considering I call it from inside the host process. Yes, I do call it from inside the host process, but that is not an issue, because I have already allocated a working console. I used an approach very similar to the one mentioned here
EDIT2: I am not asking why printf() isn't working (because it is), I am asking why this keyboardhook isn't working.
c++ - 挂钩 Win32 窗口创建/调整大小/查询大小
我正在尝试“拉伸”现有应用程序。
目标是在不更改该应用程序代码的情况下使现有应用程序变得更大。
一个缺点是拉伸的应用程序不会“注意到”它,因此如果应用程序查询创建的窗口大小,它将看到原始大小而不是调整后的大小。
我设法使用以下方法调整窗口大小SetWindowsHookEx
:
和:
我面临的问题是我无法让拉伸的应用程序看到原始大小。
例如,如果创建 .NET 表单:
稍后查询大小:
我想要width
并height
成为100
而200
不是调整大小的值。我找不到查询现有窗口大小的正确钩子。
挂钩窗口大小查询的正确方法是什么?
winapi - 拦截按下 Caps Lock 的最佳方法
在 Windows 上拦截 Caps Lock 按钮以制作像 Launchy 这样的程序的最佳方法是什么?
目前,我正在使用SetWindowsHookEx设置一个低级挂钩,但这对我来说有点太低级了,因为我不想拦截其他试图激活低级别的程序。我正在寻找最高级别的拦截,它仍然可以阻止打开 Caps Lock 本身......有更好的建议吗?
winapi - 如何检查 SetWindowsHookEx 挂钩是否仍在工作?(Win7错误解决方法)
我正在用 MS VisualC++ 编写程序。我设置了一个键盘挂钩hHook = SetWindowsHookEx(13,MyProc,GetModuleHandle(NULL),0);
。
Win7 中有一个我可以重现的错误,它禁用了我的钩子。当这个错误发生时,hHook
仍然是TRUE
,但UnhookWindowsHookEx(hHook)
返回FALSE
。
但是,我只想在它被禁用时重新启动钩子,所以我不能使用UnhookWindowsHookEx
.
如何检查钩子是否仍然有效?类似的东西GetHookStatus(hHook)
。
我发现这个 Win7 错误是由一些超时或“垃圾收集”引起的,但我更容易检查钩子状态并在需要时重新启动。我不是专业人士,只是将编码作为一种爱好,主要是出于个人需求。
谢谢你。
visual-c++ - WM_PAINT Hook 使用 SetWindowsHookEx
这是我的代码
我正在尝试获取 WM_PAINT 事件...目前我正在尝试捕获所有事件。我在哪里失踪?