Событие таймера двойного щелчка - PullRequest
4 голосов
/ 01 февраля 2012

Я занимаюсь разработкой приложения, которое отображает движения глаз пользователя с помощью движений курсора, и поэтому разрабатывает бесплатную систему управления курсором.

Я использую .NET Wrapper библиотеки Open CV для C #, т.е. Emgu CV для разработки.

Я застрял в точке, где я хочу открыть файл / папку, чтобы при наведении курсора на файл / папку, скажем, на 3–5 секунд, файл / папка открывался или просто выполнялсобытие двойного щелчка обычной мыши.

Что можно использовать для решения этой проблемы?

Ответы [ 3 ]

1 голос
/ 01 февраля 2012
    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 голос
/ 02 февраля 2012

Полагаю, вам нужно разбить его:

  1. Определить, когда мышь движется или зависает
  2. Отправить двойной клик

Для 1 я бы посмотрел на: захват WM_MOUSEMOVE , если вы хотите собственное определение «зависания». Например, имея больший порог того, сколько движений вы будете терпеть, и при этом считайте его «парящим». Или вы можете использовать определенный порог ОС и искать WM_MOUSEHOVER

Для 2 SendInput должен доставить вас туда

Полагаю, вам здесь все равно, что под мышкой само по себе. Например, вы не будете вести себя иначе, в зависимости от того, что находится под мышью. Например, вы бы отправили двойной щелчок при наведении курсора на заголовок, а также при наведении курсора на файл.

Эта статья о проекте создает приложение в стиле Spy ++, которое должно помочь.

0 голосов
/ 01 февраля 2012

Отображаете ли вы контроль глаз на указатель мыши? Событие MouseHover может быть полезным:

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.mousehover.aspx

А также MouseEnter, MouseLeave и т. Д.

Если вы управляете отдельным элементом (т. Е. Не мышью) глазами, тогда мне нужно было сделать нечто подобное в WPF. В конечном итоге все сводилось к сопоставлению координат элемента управления с местоположением мыши, подсчету времени в границах этого элемента управления и вызову обработчика события щелчка мыши.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...