Set WshShell = CreateObject ("WScript.Shell") 
WshShell.SendKeys "{NUMLOCK}" 这两断代码是运行NUMLOCK键的 
能给我加个判断 当NUMLOCK 键亮的时候就执行 当NUMLOCK 不亮时就不执行
完整的应该怎么写?

解决方案 »

  1.   

    Private   Declare   Function   GetKeyboardState   Lib   "user32"   (pbKeyState   As   Byte)   As   Long     
        
      Dim   b(0   To   254)   As   Byte     
        
      GetKeyboardState   b(0)     
      If   b(vbKeyNumlock)   Then     
              '   Numlock   On   
      End   If     
      If   b(vbKeyCapital)   Then     
              '   Capslock   on   
      End   If     
      

  2.   

    下面的代码可以帮助你来判断 NUMLOCK 键是否开启'首先在模块顶部声明 API 函数
    Private Declare Function GetKeyboardState Lib "user32" (pbKeyState As Byte) As Long'使用下面的函数来进行判断
    Private Function IsNumLockPress() As Boolean
        Dim keys(0 To 255) As Byte
        
        GetKeyboardState keys(0)
        IsNumLockPress = keys(&H90)
    End Function