如何在 SCREEN 上获取鼠标 WM_MouseMove 消息?
现在我正在开发一个项目,需要我随时获取鼠标移动消息。 我的应用程序只有一个用于配置目的的小窗口,大多数时候它甚至不会出现在桌面上。我需要的是能够记录鼠标在桌面上的移动。这意味着人们在桌面上移动鼠标(应该是 explorer.exe,对吧?),我需要知道。
我该怎么做?使用 C# 或 C++。使用注入?全局挂钩?听说只有c++支持全局hook,对吧?
Now I'm working on a project which require me to get mouse moving message from all time.
My app only have a tiny windows for configuration purpose and it will not even appear on the desktop for most of the time. What I need is I need to be able to record mouse moving on desktop. meaning people moving their mouse on the desktop (which should be explorer.exe ,right?) and I need to know.
How do I do that? Using c# or C++. using inject? Global hook? I heard that only c++ supports global hook, right?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,你需要一个全局钩子,据我所知你应该使用 C 或 C++。
请参阅有关函数 SetWindowsHookEx() & 的文档公司(WH_MOUSE 钩子)。
但要小心!您必须在 DLL 中编写一个全局挂钩,并且它将被注入到每个带有窗口的进程中,因此您所做的任何坏事都可能导致会话中的任何其他程序崩溃(包括 explorer.exe、 devenv.exe 等)。
Yes, you need a global hook, and as far as I know you should use C or C++.
See the docs about function SetWindowsHookEx() & co. (WH_MOUSE hook).
But beware! You must write a global hook in a DLL, and it will get injected in every process with a window, so any bad thing you do will likely crash any other program in your session (including explorer.exe, devenv.exe, etc.).
您还可以使用
SetCapture
。尽管与钩子相比,它的功能有限,但请检查一下。You can also use
SetCapture
. Although it's capabilities are limited compared to a hook, check it out.