首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

HOOK格式化提示框,该如何处理

2014-01-23 
HOOK格式化提示框请问在vc环境下用钩子函数(HOOK)如何勾住“磁盘未格式化”提示框?提示:千万不要跟我说是我

HOOK格式化提示框
请问在vc环境下用钩子函数(HOOK)如何勾住“磁盘未格式化”提示框?
提示:千万不要跟我说是我的卡坏了,不然我会抓狂的!只要回答问题就可以了!
[解决办法]

SetWindowsHookEx(WH_CALLWNDPROC , (HOOKPROC)CallWndProc , g_hModDll, dwThreadID );

LRESULT CALLBACK CallWndProc( int nCode,       // hook code
                              WPARAM wParam,   // depends on hook code
                              LPARAM lParam    // depends on hook code
                              )
{
    if( 0 > nCode ) 
        return CallNextHookEx( g_hHk_WNDPROC, nCode, wParam, lParam ); 

    if ( HC_ACTION == nCode )
    {
        CWPSTRUCT* lpCWPSTRUCT=(CWPSTRUCT*)lParam;
        HWND hWnd = lpCWPSTRUCT->hwnd;
        
        char szWindowName[512] = { 0 };
        ::GetWindowText( hWnd, szWindowName, 512 );

        switch ( lpCWPSTRUCT->message )
        {
        case WM_CREATE:
            {
                // 判断子窗口的字符串                
                SendMessage( hWnd, WM_CLOSE, NULL, NULL );

                break;
            }
        default:
            break;
        }
    }

    return CallNextHookEx( g_hHk_WNDPROC , nCode , wParam , lParam );
}

热点排行