Событие таймера двойного щелчка

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

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

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

Что я мог бы использовать, чтобы решить эту проблему?


person ykombinator    schedule 01.02.2012    source источник
comment
Эм, таймер? Что у вас есть до сих пор?   -  person Stu    schedule 01.02.2012
comment
Это всего лишь дополнительная функция, которую я хотел бы реализовать! У меня есть другие функции, такие как моргание, сопоставленное с левым и правым кликами!   -  person ykombinator    schedule 01.02.2012
comment
Вы хотите, чтобы это работало с проводником Windows? Значит, ваша программа должна уметь определять, находится ли курсор над чем-то, на что можно кликнуть?   -  person Blorgbeard    schedule 01.02.2012
comment
@Blorgbeard: я предполагаю, что под указателем мыши есть что-то «кликабельное»!   -  person ykombinator    schedule 02.02.2012


Ответы (3)


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

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

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

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

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

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

person Steven P    schedule 01.02.2012

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

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

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

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

person jpda    schedule 01.02.2012

person    schedule
comment
См. редактирование. Код для реализации довольно очевиден с помощью 2 кликов Google по теме. - person Mehdi LAMRANI; 02.02.2012
comment
о нет! Я предположил, что это какой-то метод.. вы знаете! Ну да, понял! Все равно, спасибо за помощь! - person ykombinator; 02.02.2012