| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 178 人关注过本帖
标题:帮忙看看这段代码 为什么进不去钩子回调函数??
收藏  订阅  推荐  打印
奥丁
Rank: 2
等级:注册会员
帖子:171
积分:1886
注册:2006-10-18
帮忙看看这段代码 为什么进不去钩子回调函数??


程序代码:
#include <windows.h>
#include <stdio.h>
#pragma comment <lib, "User32.lib">
#include <winuser.h>

    WNDPROC g_orgProc;
LRESULT CALLBACK NewWndProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
    switch(uMsg)
    {
    case WM_COMMAND:
        if ((wParam == 0x06) && (HIWORD(wParam) == BN_CLICKED) )
        {
            /*Add your own procedure*/
            return 0;
        }
        break;
    default:
        break;
    }
    return CallWindowProc(g_orgProc, hWnd, uMsg, wParam, lParam);
}

LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    WCHAR szText[256];
    WCHAR szWindowText[32];
    HWND hWnd, g_hWnd;
    bool bSetWindowLong;


    memset(szWindowText, NULL, sizeof(szWindowText));
    wcscpy(szWindowText, L"任务管理器警告");

    switch(nCode)
    {
    case HCBT_ACTIVATE:
        hWnd = (HWND)wParam;
        GetWindowText(hWnd,szText,256);
        if(wcscmp (szText, szWindowText) == 0)
        {
            if(!bSetWindowLong)
            {
                g_hWnd = hWnd;
                g_orgProc=(WNDPROC)SetWindowLong(hWnd,GWL_WNDPROC,(LONG)NewWndProc);
                bSetWindowLong = TRUE;
            }
        }
        break;
    case HCBT_DESTROYWND:
        hWnd = (HWND)wParam;
        GetWindowText(hWnd,szText,256);
        if(wcscmp (szText, szWindowText) == 0)
        {
            SetWindowLong(g_hWnd,GWL_WNDPROC,(LONG)g_orgProc);
            g_hWnd = NULL;
            bSetWindowLong = false;
        }
        break;
    }
    return CallNextHookEx(NULL, nCode, wParam, lParam);
}//End of the hook procedure





int main()
{
    HWND g_hInstance = ::FindWindow(NULL,  L"Windows 任务管理器");

    HHOOK g_cbtHook = SetWindowsHookEx(WH_CBT, (HOOKPROC)CBTProc, NULL, NULL);


}
搜索更多相关主题的帖子: 回调  函数  钩子  代码  
2008-8-22 13:29
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.047120 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved