none
Can I disable F6/F7 keys from Resizing Font and F10 key from displaying Internet Options in WinCE 7 IE browser? RRS feed

  • Question

  • I am trying to help somebody with a Motorola MC9200 device using the IE browser to a web application. The Web application uses JavaScript to capture Key events to determine the Function Keys F1-F10 and send a specific action to the application.

    This feature works find on desktop versions of IE 6 to IE11. However when I try to use the F keys in WinCE 7 IE browser I noticed that the F6, F7, and F10 keys are assigned to IE specific behavior. In looking at the KeyDown, KeyPress, and KeyUp events through JScript, I do see that the F6 and F7 keys generate keycodes on the KeyUp event and not the KeyDown. I am able to capture those events now. But unfortunately the Font still gets resized when the F7/F6 keys are pressed. Is there a way to disable that behavior?  

    However for the life of me, the F10 key does not generate any event at all. Why this behavior?

    Is there any setting in the registry for IE that can be set to pass all keys through the browser so it doesn't get intercepted?

    I am testing this on a VirtualPC with WinCE7 deployed on it with IE7 browser.

    Any tips/pointers in the right direction will be greatly appreciated. 

    Thanks,

    Mike

    Saturday, July 18, 2015 12:49 AM

Answers

All replies

  • Hi Mike,

    You can try trapping and remapping them like this project did back in Windows Mobile... http://www.hjgode.de/wp/2010/02/10/use-funckey-to-free-up-your-functionkeys-on-windows-mobile/ but it was based on an older version.

    Sincerely,

    IoTGirl

    Monday, July 20, 2015 9:05 PM
    Moderator
  • Am I understanding correctly that the IE control, not the "browser application" is capturing those keys? If the application EXE code is responsible, you can clone the code (it's provided in sample form), remove the F-key processing and generate a new browser application.

    If the IE control is responsible, you don't have that source. Nothing immediately comes to mind as a method to prevent the control from grabbing the keys, while still allowing it to pass them to JavaScript. That is, sub- or super-classing the IE control window might allow you to keep it from seeing those keys, but I don't see how JavaScript would receive them without the IE control's cooperation.

    You may be stuck adding other key-combinations specifically for Windows CE client machines (that is, Ctrl+F6 instead of F6 or something).

    Paul T.

    Tuesday, July 21, 2015 7:38 PM
  • Hi IoTGirl,

    Thanks for the information.  I was able to load that project into my VS2008 but I couldn't target it to my WindowsCE. There was no option for WindowsCe for this project.

    I am able to create a C# application and deploy it to a WinCe device but I couldn't do the same for a C++ project.

    Mike


    Mike

    Tuesday, July 21, 2015 7:45 PM
  • Hi Paul,

    Is there a difference in the Embedded OS for IE browser application and control?  Sorry for my ignorance as I am totally new to the WindowsCE environment. I just assumed it was the Internet Explorer Browser which is an application.  I am just using IE browser in WinCE.  The web application servers pure html content and javascripts.  Within IE browser I would like to press F7,F6, or F10 keys which I would intercept in the javascript to transmit a specific keycode to the web application.  However IE browser intercepts those F keys and does font resize or brings up the Internet option dialog box.

    Thanks for any tips/directions you can provide,

    Mike


    Mike

    Tuesday, July 21, 2015 7:51 PM
  • Hi Mike,

    That is pretty odd, you should be able to do a C++ SmartDevice project in VS 2008 in a very similar fashion to the C# app.  They use the same Core Connectivity connection to deploy & debug.

    Have you looked at the updates from Motorola / Zebra?  Do you have these applied? https://portal.motorolasolutions.com/Support/US-EN/Mobile+Networks+RFID+and+BarCode+Scanners/Mobile+Computers/Handheld+Computers/MC9200_US-EN

    PS: For hosting the Browser Control, you can take a look at https://msdn.microsoft.com/en-us/library/ms919013.aspx

    Sincerely,

    IoTGirl 


    Tuesday, July 21, 2015 8:07 PM
    Moderator
  • You will need to create a new project to target Windows CE.

    Create a new project targeting your SDK, then add the source code to your new project.


    Bruce Eitman (eMVP) Senior Engineer Bruce.Eitman AT Eurotech DOT com My BLOG http://geekswithblogs.net/bruceeitman Eurotech Inc. www.Eurotech.com

    Tuesday, July 21, 2015 8:49 PM
    Moderator
  • Paul asked you which you are using.  It seems that you are using the IE Application.  A control is something that you would put into an application that you are developing.  Maybe you are developing an app that shows HTML next to the view of the web page, to do this you would put a textbox and an WEB viewer control on your form.

    The source code for the IE application is available, but I suspect that you are not building the OS - I think that Motorola/Zebra does that for you.

    Many Windows Compact devices don't have much RAM or Storage, so the OS is made to be very small.  To do this, some features aren't implemented.  This may include the ability to turn off processing of the function keys in IE, but I don't really know.  Of course since many Windows Compact devices don't have function keys, it is odd that they included that...


    Bruce Eitman (eMVP) Senior Engineer Bruce.Eitman AT Eurotech DOT com My BLOG http://geekswithblogs.net/bruceeitman Eurotech Inc. www.Eurotech.com

    Tuesday, July 21, 2015 8:59 PM
    Moderator
  • Ah thanks for the clarification there Bruce!  I am using the IE Application and not a control therefor it seems like there isn't much I can do at this point from the IE Application view point. 

    You have given me an idea to create a simple web form and embed a web control into there. Do you know if the web control support java scripting?

    Unfortunately I don't have access to the MC9200 device. What I am trying to do is create an OS image onto a virtual PC and test the IE application functionality. However you are correct in that Motorola/Zebra are the ones creating the OS images for the device and hence there isn't much I can do about the IE application.

    Thanks,

    Mike


    Mike

    Tuesday, July 21, 2015 9:10 PM
  • Sorry that I wasn't more precise in my explanation. I am able to create a C++ SmartDevice project in VS2008. However I am not able to deploy the application onto a WinCE VM. I don't have the MC9200 device, so the next best thing that I could figure out is create a Virtual WinCE image and host it on VirtualPC.

    I can build the C++ project but I can't seem to target the application to my WinCE Virtual PC.  Only options that I get is the Winodws Mobile 5.0 Pocket PC, Pocket PC2003, SmartPhone 2003, and Win32. There is no WinCE for me to select in the Active solution platform.

    Mike


    Mike

    Tuesday, July 21, 2015 9:32 PM
  • Hi Mike,

    In order to target a device, you need an SDK or you need to use Platform Builder.  How did you create your Windows CE VM?

    Sincerely,

    IoTGirl

    Tuesday, July 21, 2015 10:41 PM
    Moderator
  • Hi IoTGirl,

    I am using the Platform Builder in VS2008 to create the OS Design and then I target the VM to load the image.

    Thanks,

    Mike


    Mike

    Tuesday, July 21, 2015 10:51 PM
  • Hi Mike,

    To make your life easier, make a new C++ subproject in your OS design and run it from there. 

    Sincerely,

    IoTGirl

    Tuesday, July 21, 2015 10:58 PM
    Moderator
  • Hi Mike,

    If you would rather go the Managed code route, You can take a look at https://social.msdn.microsoft.com/Forums/en-US/2cdaaf21-7484-4fe0-8160-7c6a15685066/web-browser?forum=Vsexpressvb.  While it is VB, it should easily convert to C#.

    Dim wb As New WebBrowser

    would be

    WebBrowser wb = new WebBrowser();

    Sincerely,

    IoTGirl

    Tuesday, July 21, 2015 11:04 PM
    Moderator
  • Thanks IoTGirl!

    I will check that out. 

    I really appreciate you and all the other people here taking the time and helping me out. I'll cross my fingers and  hope that I can find a work around for the IE browser application Fkeys.  

    Personally I think its somewhat lame that the F10 key is not transmitting event codes in the IE browser application where as the other Function keys are (F1 - F9)! Also how hard could it be to add a little extra logic into the browser option to turn off the default behavior associated with these Function keys.

    I suppose another work around would be to remap the Fkeys from F10 to SF10... Is that even possible?

     


    Mike

    Tuesday, July 21, 2015 11:13 PM
  • Creating a WinForm and adding the Webbrowser control to the form did the trick for the function keys!  I am able to detect all F Keys from F1-F10 and SF1-SF10!  That work around seemed to have done the trick.

    Thanks for the suggestions IoTGirl, Paul, and Bruce!

    Any tips on how to install said winform application onto a real WinCE device? Do I need to package it in some sort of format?  Any pointers will help!

    Thanks!!


    Mike

    • Marked as answer by Erasure Wednesday, July 22, 2015 5:54 PM
    Wednesday, July 22, 2015 5:20 AM
  • Hi Mike,

    Look at Cabwiz to build a proper installer package.  See https://msdn.microsoft.com/en-us/library/aa448616.aspx.

    As you are new to embedded, you might want to check out embedded101 and their ebook at http://www.embedded101.com/Compact-2013-eBook/Compact-2013-Ebook-Content/smid/894/ArticleID/56

    PS: Please mark an answer or helpful the solution you used.

    Sincerely,

    IoTGirl


    Wednesday, July 22, 2015 5:43 PM
    Moderator