สรุป

เอกสารประกอบสำหรับ SetKeyboardState () ได้อย่างถูกต้องระบุว่าคุณไม่สามารถใช้ API นี้เพื่อสลับ NUM LOCK, CAPS lock และปุ่มล็อกการเลื่อน คุณสามารถใช้ keybd_event () เมื่อต้องการสลับ NUM LOCK, CAPS LOCK และปุ่มเลื่อนล็อกภายใต้ Windows NT เทคนิคเดียวกันทำงานสำหรับสลับ CAPS lock และ SCROLL LOCK ภายใต้ Windows ๙๕แต่จะไม่ทำงานสำหรับ NUM LOCK

ข้อมูลเพิ่มเติม

โปรแกรมตัวอย่างต่อไปนี้จะเปิดใช้งานไฟ NUM LOCK ถ้าปิดอยู่ ฟังก์ชัน SetNumLock ที่กำหนดไว้ที่นี่จะจำลองการกดแป้น NUM LOCK โดยใช้ keybd_event () ที่มีคีย์เสมือนของ VK_NUMLOCK โดยใช้ค่าบูลีนที่ระบุว่าควรปิดไฟ (FALSE) หรือเปิด (TRUE) คุณสามารถใช้เทคนิคเดียวกันสำหรับแป้น CAPS LOCK (VK_CAPITAL) และปุ่มเลื่อนล็อก (VK_SCROLL)

โค้ดตัวอย่าง

   /* 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 );   }

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ