如题……

解决方案 »

  1.   

    Num Lock键: VK_NUMLOCK (144) VOID keybd_event(          BYTE bVk,
        BYTE bScan,
        DWORD dwFlags,
        PTR dwExtraInfo
    );
    The keybd_event function synthesizes a keystroke. The system can use such a synthesized keystroke to generate a WM_KEYUP or WM_KEYDOWN message. The keyboard driver's interrupt handler calls the keybd_event function.ParametersbVk
    [in] Specifies a virtual-key code. The code must be a value in the range 1 to 254. For a complete list, see Virtual-Key Codes. 
    bScan
    This parameter is not used. 
    dwFlags
    [in] Specifies various aspects of function operation. This parameter can be one or more of the following values. 
    KEYEVENTF_EXTENDEDKEY
    If specified, the scan code was preceded by a prefix byte having the value 0xE0 (224).
    KEYEVENTF_KEYUP
    If specified, the key is being released. If not specified, the key is being depressed.
    dwExtraInfo
    [in] Specifies an additional value associated with the key stroke. 
    Return ValueThis function has no return value. 
      

  2.   

    http://msdn.microsoft.com/en-us/library/ms646304(VS.85).aspx
    #include <windows.h>   void SetNumLock( BOOL bState )
       {
          BYTE keyState[256];      GetKeyboardState((LPBYTE)&keyState);
          if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
              (!bState && (keyState[VK_NUMLOCK] & 1)) )
          {
          // Simulate a key press
             keybd_event( VK_NUMLOCK,
                          0x45,
                          KEYEVENTF_EXTENDEDKEY | 0,
                          0 );      // Simulate a key release
             keybd_event( VK_NUMLOCK,
                          0x45,
                          KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
                          0);
          }
       }   void main()
       {
          SetNumLock( TRUE );
       }