Exemplo n.º 1
0
    /// <summary>
    /// ウィンドウへのフォーカスが変化したときに呼ばれる
    /// </summary>
    /// <param name="focus"></param>
    private void OnApplicationFocus(bool focus)
    {
        if (focus)
        {
            // もしウィンドウハンドル取得に失敗していたら再取得
            if (!uniWin.IsActive)
            {
                FindMyWindow();
            }

            // アクティブウィンドウを監視して
            if (!isWindowChecked)
            {
                if (uniWin.CheckActiveWindow())
                {
                    isWindowChecked = true;                     // どうやら正しくウィンドウをつかめているよう
                }
                else
                {
                    // ウィンドウが違っているようなので、もう一度アクティブウィンドウを取得
                    uniWin.Reset();
                    uniWin.Dispose();
                    uniWin = new UniWinApi();
                    FindMyWindow();
                }
            }
        }
    }