问题标签 [mouse-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.
c# - 如何将带有鼠标/键挂钩数据的通知从 C# dll 发送到 wpf exe
我正在创建一个 C# WPF exe 和一个 C# DLL。DLL 中有一个名为 StartRecording 的函数。exe调用此函数。该函数在第三方应用程序(例如 MS Word)上安装低级鼠标和键盘挂钩。在钩子程序中,我收集与鼠标/键盘消息相关的详细信息,以及与用户交互的控件(使用 UI 自动化)的详细信息。
我想从 DLL 向 exe 发送一个通知,表明数据已被收集,并且在通知本身中,我想发送数据。做这个的最好方式是什么?我能想到的一种选择是将 WM_COPY_DATA 消息从 dll 发送到 exe。但是有没有更好的方法?有没有办法可以将字典从 dll 发送到 exe?
c - C编程鼠标钩程序
我希望在单击鼠标时出现消息框,如何实现?鼠标点击是否像键盘按下一样具有虚拟键代码?我是否还需要将 lparam 与 MouseHookStruct 一起使用,请帮助我使用回调函数。当我单击鼠标时没有任何反应。
c++ - C++:全局鼠标钩子并重置窗口的位置
现在,我正在开发应用程序来重置窗口的位置。需要注意的一件事是,我使用了全局鼠标挂钩来监听桌面鼠标事件。全局鼠标挂钩运行良好。我的问题是 SetWindowPos() 方法工作异常。以下是我的代码:
当我构建应用程序时,窗口进入桌面的左上角,但突然,它又回到了原来的位置。
你愿意帮我解决这个问题吗?
c++ - c++:使用全局鼠标钩子重新定位窗口
我正在尝试开发像桌面分隔器这样的应用程序。我使用了全局鼠标钩子(低级鼠标钩子),因为在将窗口拖动到特定位置后左键向上时,窗口位于特定位置并调整大小。首先,当左键向上时,我尝试将窗口重新定位到桌面屏幕的左角。我使用 SetWindowPos 方法重新定位和调整大小,但效果不佳。当我释放左按钮时,窗口位于特定位置,但它立即返回到原始位置。在调试应用程序时,它会很好地进入屏幕的左角。我不知道为什么会发生这种情况。以下是我的代码。
}
这是安装的全局鼠标钩子的一部分
我能做些什么?
vb.net - 如何在设置 MouseHook 时检测 mouseclick 事件?
我正在创建一个工具,它可以抓取屏幕上任何内容的颜色,无论是在表单内部还是在表单外部。用户将使用他们的鼠标光标通过单击来抓取屏幕上的任何像素。问题在于,根据他们点击的内容,它可能会点击一个按钮或选择并突出显示一个图标。为了解决这个问题,我使用了 SetWindowsHookEx() 方法来全局禁用 mouseclick 事件。这行得通。但现在的问题是我的应用程序无法检测到点击事件已经发生。我曾尝试在不同的位置和不同的时刻解开鼠标,但它要么禁用鼠标,要么重新启用鼠标,但仍会继续执行上面提到的不需要的点击。
在用户可以获取像素颜色期间,计时器正在运行。所以很明显,我别无选择,只能在“像素抓取模式”下保持鼠标脱钩,以便继续抓取像素颜色。我试过设置鼠标钩,然后马上解开它,但这也不起作用。这似乎是一个问题 22。当然,我有一个用于 ESC 和 ENTER 键的键盘事件作为停止计时器和解开鼠标的替代方法。用于“取消”操作的 ESC 键和用于获取像素颜色并停止计时器的 ENTER 键。但我希望鼠标点击执行相同的功能而不点击/激活其他任何东西。这是我的代码。
或者,我也考虑过用不同的方法来解决这个问题。在此像素颜色抓取模式下,鼠标光标悬停在辅助窗体上的图片框上。表单跟随鼠标光标并保持在表单的死点。它悬停的图片框具有 Lime 的背景色,这是表单的透明度键,从而使其透明,允许用户看到表单后面的屏幕并抓住鼠标光标指向的像素颜色。
因此,有了这一点,也许我可以以某种方式让它表现得好像它点击了图片框,而不是它背后的东西。但我也没有找到解决方案。我对您可能拥有的任何方法持开放态度。谢谢你。我曾考虑让图片框半透明,使其透明但不完全,因为它会阻止任何点击,但这会使它抓取的像素颜色不准确。我曾经做过一个应用程序,其中一个无边框表单在整个屏幕上最大化,它的不透明度调整为“屏幕亮度过滤器”并允许点击它,但这与我在这里尝试做的相反. 所以我想知道。
c# - 光标离开屏幕时如何获取鼠标移动信息
【请看文末更新】
我是一个老堆栈溢出用户(就像大多数开发人员一样,你知道,地球),但这是我在这里的第一个问题。
我正在尝试使用“空中鼠标”进行游戏(将其指向屏幕),但由于鼠标传感器是陀螺仪,因此我想尝试通过软件修复屏幕外移动的一些问题。
使用这款陀螺鼠标,当用户将手臂指向屏幕外时,光标会停在屏幕边界处,这没有问题。但是,当他将手臂向后移动时,无论离屏幕多远,光标都会立即在屏幕上移动。这会导致空中鼠标实际位置和光标之间存在巨大差异。
这可以通过对像素数量和方向的简单控制来解决,在屏幕外移动,并结合一些事件处理。如果我可以将在 -X、+X、-Y 和 +Y 中移动的“屏幕外”像素的数量相加,则可以防止/取消鼠标移动事件 - 或将光标设置到其先前的位置,在边缘屏幕 - 直到控件告诉我物理鼠标指向屏幕。就在那时,我会让光标自由移动。
也许这不是那么有用,但这是一个有趣的问题,看到这个工作会很有趣!
目前,基于这个伟大的项目,我只能说明鼠标何时离开屏幕,但无法控制它移动的距离和方向,以正确实现我正在尝试的内容。在我看来,这种信息对于我目前的 Windows 知识来说太低级了。
所以,要明确一点:当光标处于极限时,我如何在 C# 中(接受其他语言,但我必须学习很多;),获取任何类型的“增量位置”信息或移动方向屏幕?
恕我直言,我对使用不同类型的控制器以及“你不应该这样做”的答案不感兴趣。我有这个问题要解决,用这些元素,做这个工作会很棒!
更新:
好的,这是我到目前为止的进展。
为了获取原始鼠标数据并了解鼠标“离屏”移动,我必须使用一些 Windows API 函数注册我的应用程序,以接收 WM_INPUT 消息。
根据我发现的一个非常古老的代码,我能够获取鼠标原始数据并完全实现我想要的。除了此代码基于 WdnProc 回调这一事实,因此它仅在我的应用程序具有焦点时才有效。当焦点在其他地方时,我也需要它来工作 - 毕竟,我正在努力改善陀螺鼠标提供的指向,用于第三方游戏。
看来我应该使用挂钩(这里是一个很好的例子),但我不知道如何挂钩输入消息。试图合并上面两个链接的代码,但第一个需要传递给 WdnProc 的 message.LParam - 仅在挂钩鼠标事件时似乎不可用。
现在我已经脱离了我的联盟,无法取得一些真正的进步。有任何想法吗?
java - com.sun.jna.Native$1 未捕获异常
最近,我尝试通过jna获取鼠标信息,因为我的项目需要这个功能。但是。但是当我运行以下代码时出现异常。我有谷歌,但没有任何问题。我很困惑,请帮帮我~~
以下是错误:
如果您能帮我解决问题,我将不胜感激!!
c# - C# 应用程序中的全局鼠标钩子
我想创建一个应用程序,当用户单击第三方 Windows 应用程序的指定按钮时启动一些操作。我已经在这里阅读:C# 应用程序中的全局鼠标捕获,因此我能够检测应用程序何时启动或关闭。阻止我实现我想要的问题是我无法知道用户何时单击按钮。