我正在开发一个应用程序,用于将用户的眼球运动与光标移动进行映射,从而开发出一个免费的光标控制系统。
我正在使用Open CV库的.NET Wrapper for C#,即用于开发的Emgu CV。
我被困在我想要打开文件/文件夹的位置,以便当光标放在文件/文件夹上3至5秒时,文件/文件夹应该打开或者只是执行双重操作点击传统鼠标的事件。
我可以用什么来解决这个问题?
答案 0 :(得分:1)
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
}
答案 1 :(得分:1)
我想你需要分解它:
对于1,如果你想要自己定义的'悬停',我会看:capturing WM_MOUSEMOVE。例如,您可以容忍多少运动的阈值,并仍然认为它是“悬停”。或者,您可以使用操作系统定义的阈值并查找WM_MOUSEHOVER
对于2,SendInput应该让你到那里
我假设在这里,你实际上并不关心鼠标本身的含义。同样,根据鼠标下的内容,你不会做不同的行为。例如,当您将鼠标悬停在标题栏上时,以及将鼠标悬停在文件上时,都会发送双击。
项目上的This article构建了一个Spy ++风格的应用程序,应该有所帮助。
答案 2 :(得分:0)
您是否将眼控制映射到鼠标指针? MouseHover事件可能很有用:
http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mousehover.aspx
以及MouseEnter,MouseLeave等
如果你用眼睛控制一个单独的元素(即不是鼠标),那么我必须在WPF中做类似的事情。它最终归结为将控制坐标映射到鼠标位置,计算该控件边界内的时间,然后调用鼠标单击事件处理程序。