2013-03-13 2 views
3

사용자가 마우스 위아래 (화면의 아무 곳이나)로 스크롤하면 감지하는 콘솔 응용 프로그램을 어떻게 만들 수 있는지 궁금합니다.콘솔 응용 프로그램에서 시스템 전체 스크롤링을 감지합니다.

내가 콘솔 응용 프로그램이되도록하려는 이유는 백그라운드에서 실행할 수 있기 때문입니다. 나는 지금 꽤 많이 검색했고 내가 필요한 것을 찾을 수없는 것 같습니다.

+3

이것은 _real question_ 없습니다. 너 뭐 해봤 니? 여기에 노력을 보여주세요. [FAQ]와 [ask]을 읽어주십시오. –

+0

시작할 수없는 것처럼 보입니다. 코드 조각을 검색해 보았습니다.하지만이 코드는 모두 창에 바인딩되거나 폼 응용 프로그램에서만 작동합니다. –

+0

콘솔 응용 프로그램은 백그라운드가 아닌 콘솔에서 실행됩니다. 어쩌면 Windows 서비스를 원할 수도 있습니다. 그러나 "마우스 휠 감지"는 키로깅에 위험 할 정도로 가까 ... – Corak

답변

1

이 항목을 읽을 수 있습니다 :

Mouse Wheel Event (C#)

당신이 자신의 컨트롤이있는 경우, 수있는 설정 같은 것을 아주 쉽게 디자이너 축복하는, 또는 동적으로 코드입니다. 그러나 이벤트를 수신 할 수 있도록 마우스는 컨트롤의 맨 위에 있어야합니다. 따라서 귀하의 경우에는 메시지 필터에 등록해야합니다. 당신이 그곳에있는 일을 많이하지 않도록 조심하십시오. 이 곳에서 많이로 할 경우에, 전체 응용 프로그램을 느려질 수 있습니다 :

public bool PreFilterMessage(ref Message m) 

할 수도 있습니다 설정 중 하나 폼을 표시하지 않고 윈도우 폼 프로젝트. 다음은 Windows Forms 프로젝트의 program.cs 코드입니다.

static class Program 
{ 
    /// <summary> 
    /// The main entry point for the application. 
    /// </summary> 
    [STAThread] 
    static void Main() 
    { 
     Application.EnableVisualStyles(); 
     Application.SetCompatibleTextRenderingDefault(false); 
     Application.Run(new WindowlessApplicationContext()); 

    } 
} 

/// <summary> 
/// The window less application context. 
/// </summary> 
internal class WindowlessApplicationContext : ApplicationContext 
{ 
    /// <summary> 
    /// Standard constructor. 
    /// </summary> 
    public WindowlessApplicationContext() 
    { 
     try 
     { 
      //Your code 

     } 
     // you mayy add catch here 
     finally 
     { 
      //Close process 
      Environment.Exit(0); 
     } 
    } 
} 
+0

대단히 고마워요! :) 숨겨진 Windows 양식은 멋진 추가 기능입니다! 나는 이것이 내가 필요한 것이라고 생각한다. –

+0

안녕하세요. 내가 제공 한 링크를 확인할 수 있습니다. 구현이 매우 쉬워야합니다. 사용자가 스크롤하면 다음에서 어떤 것을 호출 할 수 있습니다. if (m.Msg == 0x20a) – Patrick

관련 문제