Özet

SetKeyboardState () belgeleri doğru şekilde, NUM LOCK, CAPS LOCK ve SCROLL LOCK tuşlarına geçiş yapmak için bu API 'yi kullanmıyorsunuz. Windows NT altında NUM LOCK, CAPS LOCK ve SCROLL LOCK tuşlarını değiştirmek için keybd_event () kullanabilirsiniz. Windows 95 'in altında CAPS LOCK ve SCROLL LOCK ile aynı tekniği de çalışır, ancak NUM LOCK için çalışmaz.

Ek Bilgi

Aşağıdaki örnek program, kapalıysa NUM LOCK ışığını açar. Burada tanımlanan SetNumLock işlevi, VK_NUMLOCK sanal anahtarı ile keybd_event () kullanarak NUM LOCK tuşuna basmayı taklit eder. Işığın kapatılıp kapatılmayacağını (FALSE) veya açık (doğru) olduğunu belirten bir Boole değeri alır. Aynı teknik, CAPS LOCK tuşu (VK_CAPITAL) ve SCROLL LOCK tuşu (VK_SCROLL) için de kullanılabilir.

Örnek kod

   /* Compile options needed:   */    #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 );   }

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.