none
F13 F14 F15 F16 Keys in Windows CE 6.0 RRS feed

  • Question

  • My general question is:

    Does Windows CE 6.0 do anything special with the F13, F14, F15, or F16 Keys? If they do , where might I find that source code? I have reason to belive that these 4 keys are getting used, or converted to some other values.

    My reason is that those 4 keys do not react properly when I press them.

    We use a SprinTek(http://www.sprintek.com/) USB FlexMatrix keyboard encoder on our custom keyboard. Once programmed and the chip is plugged into the USB port on my PC and I run the Sprintek FlexMatrix Tester. All the keys, including the F3, F14, F15, and F16 keys display in a virtual test keyboard on the PC(runng the FlexMatric Tester program), that lights up whatever key is getting pressed as interpreted from the FlexMatrix encoder. When I press the F13 key, the F13 key in the virtual keyboard tester lights up as do all function Keys F1-F16. Everything seems to indicate that the F13, F14, F15, and F16 keys are just fine.

    But when I then plug the FlexMatrix encoder into the USB port on our WindewCE 6.0 device, I get no reaction when I press the F13, F14, F15, or F16 keys.

    For example, I have a program that just pops up a message box when I press any of the F1 to F16 keys, that just states that the specific function key was pressed. It was written to just verify the function keys on our custom USB based keyboard react correctly.

    Here is a snippet of the code(pretty simple)

    case WM_KEYDOWN:
    switch (wParam)
    {
    case VK_F1:
     MessageBox(NULL, _T("F1 Pressed"), _T("WM_KEYDOWN"), MB_OK);
     break;
    case VK_F2:
     MessageBox(NULL, _T("F2 Pressed"), _T("WM_KEYDOWN"), MB_OK);
     break;
    .
    .
    etc.
    .
    .
    case VK_F12:
     MessageBox(NULL, _T("F12 Pressed"), _T("WM_KEYDOWN"), MB_OK);
     break;
    case VK_F13:
     MessageBox(NULL, _T("F13 Pressed"), _T("WM_KEYDOWN"), MB_OK);
     break;
    case VK_F14:
     MessageBox(NULL, _T("F14 Pressed"), _T("WM_KEYDOWN"), MB_OK);
     break;
    case VK_F15:
     MessageBox(NULL, _T("F15 Pressed"), _T("WM_KEYDOWN"), MB_OK);
     break;
    case VK_F16:
     MessageBox(NULL, _T("F16 Pressed"), _T("WM_KEYDOWN"), MB_OK);
     break;
    }
    break;

    Pretty simple test.  But I get no responce when I press the F13, F14, F15, or F16 keys.

    But I also have reason to beleive that the F13, F14, F15, and F16 keys are generating something. We have another program that allows you to program a key to perform a certian function, like launch an application. For example, if I program the F9 key to launch a program when pressed, I see as part of programming sequence a dialog box generating a '[S] F9' entry when I press the F9 key.  For F10, I see the entry '[S] F10]'.  But for F13 I see a '[S] 0xf9', or I see a '[S] 0xf5' for F14, or '[S] 0xf3' for F15, and nothing when I press the F16 key. So it seem these keys are generating some kinf od charaters, but not it see as the F13, F14, F15, or F16 keycodes.

    What convinces me more that the FlexMatrix encoder chip is generating the correct keycodes for F13, F14,F15, and F16 is because when I created a just a 'regular' Win32 C++ program in VS2005 and inserted the same snippiet of code as above and with the FlexMatrix encoder plugged into the USB port on my PC, the program pops up the message boxes when I press the F13, F14, F15, and F16 keys.  So it seems that these 4 function keys are somehow getting changed to a different set of values.

     

    • Edited by Chulk Ches Monday, March 11, 2013 11:12 PM Bad grammer stuff
    Monday, March 11, 2013 11:09 PM

All replies

  • Certainly it is related with the keypad driver.

    The driver is either sending some other key instead of F13, F14 and so on or the driver is not able to scan the key and send the virtual key code to the application 

    --- Misbah


    Senior Design Engineer T.E.S Electroni Solutions (Bangalore-India) www.tes-dst.com email-misbah.khan@tes-dst.com

    Tuesday, March 12, 2013 6:51 AM