close

此函數RegisterShellHookWindow(m_hWnd);
是註冊全域的HOOK函數 

當有視窗開啟換關閉時會等等等......
自己的主程式就會接收到訊息
這時候只需override

DefWindowProc函數  就可以接收到訊息

不過最好之前還要加上一個步驟
msgShellHook = RegisterWindowMessage(L"SHELLHOOK");

先註冊自己的訊息

等等DefWindowProc 裡面需要用到

LRESULT CTestDlg::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
    // TODO: 在此加入特定的程式碼和 (或) 呼叫基底類別
    //添加:消息循環SWITCH語句
   
    if(message == msgShellHook){  //是否跟自己註冊的訊息一樣
        switch (wParam)
        {
            case HSHELL_WINDOWCREATED:
               //某視窗開啟
                break;

            case HSHELL_WINDOWDESTROYED:
                //某視窗關閉
                break;
        }
    }
    return CDialog::DefWindowProc(message, wParam, lParam);
}

00

arrow
arrow
    全站熱搜

    eric1300460 發表在 痞客邦 留言(0) 人氣()