How cant my application to Handle Function Keys that have already been assigned

Dotaz How cant my application to Handle Function Keys that have already been assigned

  • Thursday, August 09, 2012 6:24 PM
     
     

    I am writing a terminal application on a Windows CE 6.0 platform.  The hardware is mini-netbook.  The application is written in EVC++ using MFC.   I am trying to trap the function keys so that the terminal can output a correct string to the server.

    I tried trapping the function keys in the OnKeyUp and OnKeyDown events.   The results are the same regardless of which event i use,  F1, F2, F5, F8 and F10  all work properly.

    F3 pops up a Enter Network Password Dialog box,  F6,F7 control the brightness of the screen, Not sure what F4 and F9 do 

    So far I have tried the following to try and regain control of these keys:

    I tried to use AllKeys(1) at the beginning of my program but that had no effect.

    I also tried SHSetAppKeyWndAssoc.   I see that this function requires Aygshell.DLL,   my platform seems to have AYGSHELL1.DLL and AYGSHELL2.DLL.    I dont see any file named AYGSHELL.DLL 

    I also looked in the registry to see if there were any key mappings in HKLM\Microsoft\Shell\  but I did not find anything.

    does anyone know how I can process the rest of the Function Keys.    

    Thanks for the help

    Knk53


All Replies

  • Thursday, August 09, 2012 6:59 PM
     
     

      As a follow up,    The other function keys do trigger the OnKey Events when the CTRL button is held down.

    Must be a way to direct the actual (no modifier) key messages to my application.

    thanks

    Knk53

    Ps sorry about the typos in the heading

  • Friday, August 10, 2012 3:09 PM
     
     

    I have now tried using UnregisterFunc1 to unattached the keys F6 and F7 from the brightness function.

    I tired

     typedef bool (*UnregisterFunc1)(UINT,UINT);

    HMODULE coreDLL = LoadLibrary(TEXT("coredll.dll"));

    unregFunc1 = (UnregisterFunc1)GetrProcAddress(coreDLL,TEXT("UnregisterFunc1")):

    if(unregFunc1 == NULL)

      Messagebox("Get Proc Failed",NULL,MB_OK);

    bool regSuccess = (unregFunc1)(0,0x76);

    if(regSuccess == FALSE)

      Messagebox("unreg failed",NULL,MB_OK);

    this runs and i dont get any message boxes.   Unfortunately the function key still is

    controlling the brightness.

    Anyone have any ideas

    thanks in advance

    knk53

  • Tuesday, August 14, 2012 1:41 AM
     
     

    http://msdn.microsoft.com/en-us/library/ff621673


    Please not forget mark your answer, and unmark your disagreed point.