我需要制作一个小型系统托盘应用程序,它可以监视系统范围内的光标位置,并根据光标句柄ID显示或隐藏屏幕键盘。例如,如果光标位于IE中的文本框(位置等于IBeam),则弹出键盘。 我有系统托盘应用程序(无形应用程序)的代码,但无法找到一种方法来监视系统。任何有关监视系统光标位置的功能的帮助都是受欢迎的。感谢。
答案 0 :(得分:0)
要成为事件驱动,您需要使用SetWindowsHookEx
。你不能直接通过.NET来做,但必须注入一个DLL。这是一个MSDN article on making a mouse hook。这是使用System.Runtime.InteropServices
导入user32.dll完成的。 MSDN文章提供了有关从C#调用SetWindowsHookEx
,CallNextHookEx
和UnhookWindowsHookEx
的分步说明。 CodeProject还有一篇关于making system-wide hooks in .NET的文章。
答案 1 :(得分:0)
监控系统光标位置:
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();
}