我有一个小视频应用程序,我想给类似vlc的功能。由此,我的意思是让某个元素消失并出现在鼠标移动或鼠标不移动的位置。我对如何做到这一点有一个粗略的概念,但我没有ideea如何检测鼠标是否在移动。我想过使用GetPosition函数,但这只会给我鼠标的位置,不会让我知道光标是否在移动。我想用一个计时器在鼠标停止移动后的2-3秒内倒计时,然后淡出控制系统或使其崩溃。我无法每隔1毫秒检查一次位置变量的值。有没有其他方法可以做到这一点?如何检测鼠标是否在WPF/C#中的窗口范围内移动?
回答
你可以使用挂钩功能,所以你会通知当鼠标移动时,我使用this免费开源库。
如何使用它:
using Gma.UserActivityMonitor.GlobalEventProvider;
GlobalEventProvider _globalEventProvider1 = new Gma.UserActivityMonitor.GlobalEventProvider();
this.globalEventProvider1.MouseMove += HookMouseMove;//to listen to mouse move
捕获鼠标。如果用户实际在其他地方点击,则释放捕获。然后你可以使用标准的WPF鼠标移动事件。
myElement.MouseMove += (my MouseMove handler)
Mouse.Capture(myElement);
我不认为捕捉鼠标是必要的,即使鼠标移动到某个其他元素上,如“MediaElement”等,PreviewMouseMove仍然会到达“Window”。或者还有其他一些情况我不考虑在这里吗? –
如果你没有完成应用程序,它不会。我使用捕获,因为例如用户从应用程序中拖出一个选择。 –
好的,你说得对。在这种情况下,我认为你也可以在'Window'上使用'MouseEnter' /'MouseLeave'事件。 –
- 1. 如何检测鼠标是否落在可可窗口之外?
- 2. 如何测试鼠标是否在指定窗口内?
- 3. 检查鼠标光标是否在坐标数组范围内
- 4. 检测鼠标是否在5秒内移动的功能
- 5. 在Skype视频窗口中检测鼠标移动和点击
- 6. 如何检测mouseup被触发时鼠标是否在移动?
- 7. 检查鼠标是否在公差范围内时出错
- 8. 检测鼠标点击可移动范围瓦片
- 9. 如何检测鼠标是否移动到左侧或右侧?
- 10. WPF - 如何检测鼠标是否停止移动
- 11. 如何检查鼠标是否在Chrome的通知窗口?
- 12. 如何检测鼠标是否移动到某个窗口的JavaScript/Jquery坐标上?
- 13. 检测用户是否在WPF中移动了窗口
- 14. 如何检测人造鼠标移动?
- 15. gmail如何检测鼠标移动?
- 16. 如何在鼠标左键按下时检测鼠标移动?
- 17. WPF检测鼠标移动?
- 18. MouseHook检测鼠标移动
- 19. 如何检查鼠标是否在WPF中移动2分钟?
- 20. 如何在Jquery中检测“鼠标滚轮滚动”和“窗口手动滚动”
- 21. 如何检测对象是否在“使用”范围内?
- 22. 如何检测鼠标是否为真?
- 23. 如何隐藏在gvim窗口中移动鼠标指针
- 24. 如何模拟鼠标同时在多个窗口中移动?
- 25. 如何在后台窗口中移动鼠标?
- 26. 如何检测窗口是否闪烁
- 27. 在鼠标悬停,检测元素是否在窗口的右边缘,并将元素移动 - jQuery
- 28. 检测鼠标离开pygtk窗口
- 29. jQuery/Javascript检查鼠标是否在窗口中
- 30. 检测鼠标何时不移动
感谢您的链接和库。会尝试一下,让你知道,但我不想用钩子,除非作为最后的手段。 – lorddarq
我将使用这个开源库。这似乎是2的方式。 – lorddarq
是的,它值得。但是请注意,如果您只想为应用程序挂钩而不是整个系统,则应该将使用WH_MOUSE_LL的行更改为WH_MOUSE,将WH_KEYBOARD_LL更改为WH_KEYBOARD,我记得它们只是一对图书馆中的线条。 –