WINDOWS2000下屏蔽掉CTRL+ALT+DEL?
好像不容易啊。:)

解决方案 »

  1.   

    这个问题可能没有答案,不过我听一个人说过,可以采用替换系统DLL的方法来做到。用Hook好像都不可以拦截Ctrl+Alt+Del的。
      

  2.   

    确实很难!
    同时对XXXX表示强烈的抗议!
    对你只能表示遗憾!
      

  3.   

    用低级钩子可以实现屏蔽这几个键
    HHOOK hhkLowLevelKybd;
    LRESULT CALLBACK LowLevelKeyboardProc(int nCode,WPARAM wParam, LPARAM lParam);
    LRESULT CALLBACK LowLevelKeyboardProc(int nCode,WPARAM wParam, LPARAM lParam)
    {//底层键盘钩子
      BOOL fEatKeystroke = FALSE;
      if (nCode == HC_ACTION)
      {
        switch (wParam)
        {
          case WM_KEYDOWN:
          case WM_SYSKEYDOWN:
          case WM_KEYUP:
          case WM_SYSKEYUP:
            PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;
            int x;
            x++;
            fEatKeystroke =
              ( (p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0) ) ||
              ( (p->vkCode == VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN) != 0) ) ||
              ( (p->vkCode == VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0) )||
              ( (p->vkCode ==91)) || //左Windows
              ( (p->vkCode ==92)) || //右Windows
              ( (p->vkCode ==93));   //右OnMouse
             break;
          }
       }
       return ( fEatKeystroke ? 1 : CallNextHookEx ( NULL, nCode, wParam, lParam ) );
    }
       hhkLowLevelKybd = SetWindowsHookEx(WH_KEYBOARD_LL,( HOOKPROC)LowLevelKeyboardProc, GetModuleHandle(NULL), 0);
      

  4.   

    真的可以吗?
    我似乎记得需要编写DLL,由系统调用,否则级别不够,无法屏蔽系统热键。
    DLL我倒是有,在NT下也实现了(2000应该同理),只是真的不能告诉你,因为所有权属于一个国际大公司,我只能自己偷偷使用。
    我也正在自己编写,好象有点难,资料也少,所以过来侃侃!