当播放AVI格式时,如何屏蔽键盘事件??就是我在播放的时候,按下键盘上的按键时,不停止播放??但是不要屏蔽ALT+Shift+P这组.因为我是用这组快捷键来播放.谢谢

解决方案 »

  1.   

    你在哪里播放?屏蔽按键使用全局键盘HOOK就可以,在里面把你想要的键放出来,其它就屏蔽.
      

  2.   


    Private Sub Form_KeyPress(KeyAscii As Integer)
    KeyAscii = 0
    End Sub
    Private Sub Form_Load()
    Form1.KeyPreview = True
    End Sub全部键盘按键都无效了
      

  3.   

    你要留有用按键的话就这样Private Sub Form_Load()
    Form1.KeyPreview = True
    End Sub
    Private Sub Form_KeyPress(KeyAscii As Integer)
    If KeyAscii <> 97 Then
    KeyAscii = 0
    End If
    End Sub这样就只有A键才有效了
    其他的都无效
    根据你的情况自己改下吧
      

  4.   

    铁血浪子,你好,你上面的代码我试过了,除了A键,其它的都能屏蔽,但是怎样才能实现屏蔽ALT+SHIFT+P这组快捷键呢,麻烦你啦, 非常谢谢!
      

  5.   

    如果我没记错,几年前研究过...应该是唯有全局HOOK拦截可以做到. 期待更加有效的方法或变通的方法.
      

  6.   

    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    if shift<>3 and  keycode<>80 then
    shift=0
    keycode=0
    end if
    End Sub
    Private Sub Form_Load()
    Form1.KeyPreview = True
    End Sub
    你要什么全局么就所有窗体都写下这个代码,不要说你有n个窗体
      

  7.   

    不知道你说的屏蔽键盘是本窗体/进程还是计算机全局?
    如果只是本窗体的话,上面有几位的代码就可以的了如果是全局,上面的就不行的了,因为上面的代码只是从本进程窗口消息队列中取的,对全局毫无意义一种简单的方法就是用全局KEYBAOARD HOOK,
    还有DIRECT INPUT也可以,
    不知道你要的性能怎么样,要求高的话写个filter也可以
      

  8.   

    你这个需求瞒怪的,一般播放器不会有样的要求,
    给你个我以前写的c++例子HHOOK hhook;
    LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);//SetWindowsHookEx最后一参数可以选择本线程还是全局
    hhook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)LowLevelKeyboardProc, hInstance, 0) ;LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)
    {
        KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam; 
        if (pkbhs->vkCode == VK_A)
        {    }
        .....
    }UnhookWindowsHookEx(hhook) ;