请问各位高手如何屏蔽到系统里面的Caps lock键?

解决方案 »

  1.   

    在窗体上放一个timer1,初始:Timer1.Enabled = False
    以下代码可以让Caps Lock失去作用Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Public L
    Private Sub Form_Load()
        Me.KeyPreview = True
        Dim L As Long
        L = GetKeyState(vbKeyCapital)
        Timer1.Interval = 100
        Timer1.Enabled = True
    End SubPrivate Sub Timer1_Timer()
        If L <> GetKeyState(vbKeyCapital) Then
            keybd_event vbKeyCapital, 0, 0, 0
            keybd_event vbKeyCapital, 0, 2, 0
        End If
    End Sub
      

  2.   

    有一行错了,去掉dim L as long,改为
    Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
    Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
    Public L
    Private Sub Form_Load()
        Me.KeyPreview = True
        L = GetKeyState(vbKeyCapital)
        Timer1.Interval = 100
        Timer1.Enabled = True
    End SubPrivate Sub Timer1_Timer()
        If L <> GetKeyState(vbKeyCapital) Then
            keybd_event vbKeyCapital, 0, 0, 0
            keybd_event vbKeyCapital, 0, 2, 0
        End If
    End Sub
      

  3.   

    谢谢各位高手,结贴一定送分.这个好象是通过timer控件来控制的,有没有从根本上屏蔽到这个功能键的方法,比如有一个button,点一下就屏蔽,再点一下就开,另最小化后系统栏无图标怎么实现,只在任务栏出来.