סיכום

התיעוד עבור SetKeyboardState () מציין כהלכה שאין באפשרותך להשתמש ב-API זה כדי להחליף את מקשי ה-NUM LOCK, CAPS LOCK ו-SCROLL lock. באפשרותך להשתמש בkeybd_event () כדי להחליף את מקש NUM LOCK, CAPS LOCK ולגלול את מקשי הנעילה תחת Windows NT. אותה הטכניקה פועלת לצורך החלפת אותיות מובילים וגלילה לנעילה מתחת ל-Windows 95, אך היא לא תפעל עבור NUM LOCK.

מידע נוסף

התוכנית לדוגמה הבאה הופכת את נורית ה-NUM LOCK לפעילה אם היא מבוטלת. הפונקציה SetNumLock המוגדרת כאן מדמה הקשה על מקש NUM LOCK, תוך שימוש בkeybd_event () עם מפתח וירטואלי של VK_NUMLOCK. נדרש ערך בוליאני המציין אם האור אמור להיות כבוי (FALSE) או on (TRUE). ניתן להשתמש באותה שיטה עבור מקש CAPS LOCK (VK_CAPITAL) ובמקש SCROLL LOCK (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 );   }

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

גלה את יתרונות המנוי, עיין בקורסי הדרכה, למד כיצד לאבטח את המכשיר שלך ועוד.