2009-10-02 2 views
1

다음과 같은 문제가 있습니다. Windows에서 내 응용 프로그램 창이 전경 창인지 여부를 알 수 있어야합니다. Windows XP에서 C#, .NET Framework 3.5를 사용하고 있습니다. 사실 Form.ActiveFormnull 또는 객체 참조 내 응용 프로그램 창이 전경 창인지 알 수있는 방법

  • 선택하면

    1. 사용 PInvoke를, GetForeGroundWindow 및 내 양식의 HWND에 반환 된 HWND를 비교 한 후 내가 무엇을해야 할 두 가지 방법의

      을 생각할 수

    방법 1은 괜찮은 것 같지만, 내가하지 않으면 pinvoke를 사용하지 않을 것입니다. 나는 그것이 잘 작동하는 것으로 보이지만 방법 2에 대해 완전히 확신하지는 않는다.

    어떤 방법을 사용해야합니까? 다른 방법이 있습니까?

  • 답변

    3

    ActiveForm은 응용 프로그램마다 다릅니다.

    양식이 전체 운영체제의 활성 양식인지 여부를 알고 싶다면 API가 필요하고 hWnd를 비교하십시오.

    [System.Runtime.InteropServices.DllImport("user32.dll")]  
    public static extern IntPtr GetForegroundWindow(); 
    
    +0

    예 -'ActiveForm' 당신의 범위 내에서 작동 "응용 프로그램" –

    +0

    이 ActiveForm을 넓은 구체적이고 GetForeGroundWindow OS 응용 프로그램이 것을 나에게 발생하지 않았다. 내가 ActiveForm을 사용하여 끝난 것 같아요. –

    관련 문제