监视系统范围的光标位置

本文关键字:光标 位置 范围 系统 监视 | 更新日期: 2023-09-27 18:31:52

>我需要制作一个小型的系统托盘应用程序,该应用程序监视整个系统的光标位置,并根据光标手柄ID显示或隐藏屏幕键盘。 例如,如果光标位于IE中的文本框(位置等于IBeam)中,则会弹出键盘。我有系统托盘应用程序(无形应用程序)的代码,但找不到使其监视系统的方法。欢迎任何有关监视系统光标位置的功能的帮助。谢谢。

监视系统范围的光标位置

监视系统光标位置:

            private void Pos()
            {
                for (; ; )
                {
                    Thread.Sleep(10);
                    Point position = Cursor.Position;
//You can use these to pass to your system tray or whereever you need it.
                    somePublicXVar = position.X; 
                    somePublicYVar = position.Y; 
                }
            }
            public void PointPosition()
            {
                Thread pointThread = new Thread(new ThreadStart(Pos));
                pointThread.Start();
            }

要成为事件驱动型,您需要使用 SetWindowsHookEx . 不能直接通过 .NET 执行此操作,但必须注入 DLL。 这是一篇关于制作鼠标钩子的 MSDN 文章。 这是使用 System.Runtime.InteropServices 导入 user32.dll 来完成的。 MSDN 文章提供了从 C# 调用SetWindowsHookExCallNextHookExUnhookWindowsHookEx的分步说明。 CodeProject 还有一篇关于在 .NET 中创建系统范围的钩子的文章。