我正在开发一个应用程序,将用户的眼球运动与光标移动映射,从而开发免提光标控制系统。
我正在使用 Open CV 库的 .NET Wrapper for C# 即 Emgu CV 进行开发。
我被困在我想打开文件/文件夹的地方,这样当光标放在文件/文件夹上 3 到 5 秒时,文件/文件夹应该打开或只执行双击事件传统鼠标。
我可以用什么来解决这个问题?
我正在开发一个应用程序,将用户的眼球运动与光标移动映射,从而开发免提光标控制系统。
我正在使用 Open CV 库的 .NET Wrapper for C# 即 Emgu CV 进行开发。
我被困在我想打开文件/文件夹的地方,这样当光标放在文件/文件夹上 3 到 5 秒时,文件/文件夹应该打开或只执行双击事件传统鼠标。
我可以用什么来解决这个问题?
我想你需要分解它:
对于 1,我会关注:如果您想要自己定义“悬停”,则捕获 WM_MOUSEMOVE 。例如,对您可以容忍的运动量有一个更大的阈值,并且仍然将其视为“悬停”。或者,您可以使用操作系统定义的阈值并查找WM_MOUSEHOVER
对于 2,SendInput应该可以带您到那里
我在这里假设,您实际上并不关心鼠标本身下面有什么。例如,您不会根据鼠标下的内容做出不同的行为。例如,当您将鼠标悬停在标题栏上以及悬停在文件上时,您会发送双击。
这篇关于项目的文章构建了一个 Spy++ 风格的应用程序,应该会有所帮助。
Timer timer = new System.Timers.Timer(5000);//5 seconds
timer.Elapsed += new ElapsedEventHandler(timer_Elapsed);
private void form_MouseHover(object sender, System.EventArgs e)
{
timer.Start();
}
private void form_MouseLeave(object sender, System.EventArgs e)
{
timer.Stop();
}
void timer_Elapsed(object sender, ElapsedEventArgs e)
{
timer.Stop();
OpenFileOrFolder();//Edit : implement your file / folder opening logic here
}
您是否将眼睛控制映射到鼠标指针?MouseHover 事件可能很有用:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mousehover.aspx
以及 MouseEnter、MouseLeave 等。
如果您用眼睛控制一个单独的元素(即,不是鼠标),那么我必须在 WPF 中做类似的事情。它最终归结为将控件坐标映射到鼠标位置,计算该控件范围内的时间,然后调用鼠标单击事件处理程序。