ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้

สรุป

เอกสารประกอบสำหรับ 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 );   }

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

ขยายทักษะของคุณ
สำรวจการฝึกอบรม
รับฟีเจอร์ใหม่ก่อนใคร
เข้าร่วม Microsoft Insider

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพการแปลแค่ไหน

สิ่งที่ส่งผลกระทบต่อประสบการณ์ใช้งานของคุณ

มีคําติชมเพิ่มเติมใดๆ หรือไม่ (ไม่บังคับ)

ขอบคุณสำหรับคำติชมของคุณ

×