我现在想点击一个按钮时屏蔽按键,不是直接用下面代码屏蔽
重在对话框类的PreTranslateMessage(MSG*   pMsg)这个虚函数   
  在其中加入如下代码BOOL   CTeeeDlg::PreTranslateMessage(MSG*   pMsg)     
  {   
        //   TODO:   Add   your   specialized   code   here   and/or   call   the   base   class   
        if   (pMsg->message   ==WM_KEYDOWN)   
        {   
            int   nVirtKey   =   (int)   wParam;           
            if   (nVirtKey==VK_RETURN)   
    {   
                    ......//如果是回车在这里做你要做的事情,或者什么也不作   
    return   TRUE;   
  }   
            if   (nVirtKey==VK_ESCAPE)   
  {   
  ......//如果是ESC在这里做你要做的事情,或者什么也不作   
  return   TRUE;   
  }   
    
          }   
        return   CDialog::PreTranslateMessage(pMsg);   
  }  请高手们帮帮解决下

解决方案 »

  1.   

    我这有一个DLL,可以直接使用,若需要,[email protected]
      

  2.   

    重载PreTranslateMessage只能屏蔽当前对话框窗口的按键想要屏蔽C+A+D,比较麻烦
    可以键盘驱动层捕获C+A+D,也可以采用远程线程注入技术,装载一个DLL到Winlogon进程,然后截获SAS窗口的窗口过程,接管WM_HOTKEY消息,以达到屏蔽Ctrl + Alt + Del之目的。
      

  3.   

    我这有个例子,点击按钮可以屏蔽,
    再点击另外一个又可以恢复。
    [email protected]