2012-02-01 4 views
4

커서 움직임으로 사용자의 눈 움직임을 매핑하는 응용 프로그램을 개발 중이므로 커서없는 커서 제어 시스템을 개발할 수 있습니다.두 번 클릭 타이머 이벤트

저는 C# 용 Open CV 라이브러리의 .NET Wrapper (개발 용 Emgu CV)를 사용하고 있습니다.

커서가 파일/폴더 위에 3 ~ 5 초 정도 올려 져있을 때 파일/폴더를 열거 나 더블을 수행해야하는 것과 같은 파일/폴더를 열고 싶습니다. 일반 마우스의 클릭 이벤트.

이 문제를 해결하기 위해 내가 무엇을 사용할 수 있습니까?

+1

음, 타이머? 지금까지 뭐라구? – Stu

+0

이것은 구현하고자하는 선택 기능입니다. 왼쪽 및 오른쪽 클릭에 매핑 된 깜박임과 같은 다른 기능이 있습니다! – ykombinator

+2

Windows 탐색기에서이 기능을 사용 하시겠습니까? 따라서 커서가 커서를 움직일 수 있는지 여부를 알 수 있어야합니다. – Blorgbeard

답변

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 
    } 
+0

'OpenFileOrFolder()'메소드가 무엇인지 궁금합니다. – ykombinator

+1

편집을 참조하십시오. 구현할 코드는 주제에 대한 두 번의 Google 클릭으로 매우 분명합니다. –

+0

오, 안돼! 나는 그것을 어떤 방법으로 생각했다. 그래, 나는 그것을 얻었다! 어쨌든 도와 줘서 고마워! – ykombinator

0

눈 컨트롤을 마우스 포인터에 매핑하고 있습니까? MouseHover 이벤트는 유용 할 수 있습니다뿐만 아니라

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

등 MouseEnter,하는 MouseLeave,

이 눈에 별도의 요소 (즉,하지 마우스)를 제어하는 ​​경우, 나는이 WPF에서 비슷한 것을해야했습니다. 궁극적으로 제어 좌표를 마우스 위치에 매핑하고 해당 컨트롤 범위 내에서 시간을 계산 한 다음 마우스 클릭 이벤트 핸들러를 호출합니다.

1

나는 당신이 그것을 파괴해야 할 것 같아요 : 마우스 이동 또는

  • 1의 더블 클릭을 보내기 놓을 때

    1. 가 감지, 내가 찾고있을 것 at : capturing WM_MOUSEMOVE '호버링'에 대한 자신 만의 정의가 필요한 경우 예를 들어, 얼마만큼의 움직임을 허용하는지 더 큰 임계 값을 가지면서도 '호버'라고 생각할 수 있습니다. 또는, 당신은 OS 정의 된 임계 값을 사용하고 2의 WM_MOUSEHOVER

      를 찾을 수 SendInput가 당신을 얻을해야

      내가 여기에 있으리라 믿고있어, 실제로 당 자체 마우스에서 무엇을 걱정하지 않는다. 에서와 마찬가지로 마우스 밑에있는 내용에 따라 다른 행동을 취하지 않을 것입니다. 예를 들어, 제목 표시 줄 위로 마우스를 올리거나 파일 위로 마우스를 가져 가면 두 번 클릭 할 수 있습니다.

      This article on project는 도움이 될 Spy ++ 스타일 앱을 만듭니다.

    관련 문제