<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Windows CE Programming &#187; function keys</title>
	<atom:link href="http://www.hjgode.de/wp/tag/function-keys/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.hjgode.de/wp</link>
	<description>Windows Mobile Development and usage</description>
	<lastBuildDate>Fri, 03 Feb 2012 08:53:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<!--CodeProjectFeeder channel--><category>CodeProject</category><generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>KeyToggleStart: Yet another usage for keyboard hook</title>
		<link>http://www.hjgode.de/wp/2011/09/08/keytogglestart-yet-another-usage-for-keyboard-hook/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=keytogglestart-yet-another-usage-for-keyboard-hook</link>
		<comments>http://www.hjgode.de/wp/2011/09/08/keytogglestart-yet-another-usage-for-keyboard-hook/#comments</comments>
		<pubDate>Thu, 08 Sep 2011 10:56:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Keyboard]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Utilities]]></category>
		<category><![CDATA[function keys]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=1204</guid>
		<description><![CDATA[Hello Windows Mobile Users recently the following was requested: How can I start an application by just hitting some keys in sequence? The answer: Just use a keyboard hook. So I started to code this hook tool based on my KeyToggleBoot2 code. There was not too much to change. The new tool is called KeyToggleStart [...]]]></description>
			<content:encoded><![CDATA[<p>Hello Windows Mobile Users</p>
<p>recently the following was requested:</p>
<p>How can I start an application by just hitting some keys in sequence?</p>
<p>The answer: Just use a keyboard hook.</p>
<p>So I started to code this hook tool based on my KeyToggleBoot2 code. There was not too much to change. The new tool is called KeyToggleStart and it is configured by the registry:</p>
<pre>            REGEDIT4

            [HKEY_LOCAL_MACHINE\Software\Intermec\KeyToggleStart]
            "ForbiddenKeys"=hex:\
                  72 73 00
            ;max 10 keys!
            "KeySeq"="123"
            "Timeout"=dword:00000003
            "LEDid"=dword:00000001
            "Exe"="\\Windows\\iexplore.exe"
            "Arg"=""</pre>
<h2>Reg keys meaning:</h2>
<p><strong>Forbiddenkeys</strong> is just an addon feature: key codes entered in this list will not be processed any more by your Windows Mobile device. For example, to disable the use of the F3(VK_TTALK) and F4 (VK_TEND) keys you have to enter a binary list of 0&#215;72,0&#215;73,0&#215;00 (the zero is needed to terminate the list).</p>
<p><strong>KeySeq</strong> list the char sequence you want to use to start an application. For example if this is the string &#8220;123&#8243;, everytime you enter 123 in sequence within the given time, the application defined will be started.</p>
<p><strong>TimeOut</strong> is the time in seconds you have to enter the sequence. So do not use a long key sequence as &#8220;starteiexplorenow&#8221; and a short timeout (except you are a very fast type writer). The timeout is started with the first char matching and ends after the time or when you enter a non-matching char of the sequence.</p>
<p>With <strong>LEDid</strong> you can specify a LED index number. LED&#8217;s on Windows Mobile are controlled by an index number, each LED has one or more ID assigned to it. So, with LEDid you can control, which LED will lit, when the matching process is running. You can even find an ID to control a vibration motor, if your Windows Mobile device is equipped with one.</p>
<p>The <strong>Exe</strong> registry string value is used to specify which application will be started when the key sequence is matched.</p>
<p>If the application you want have to be started needs some arguments, you can enter these using the <strong>Arg</strong> registry value.</p>
<p>When you start the KeyToggleStart tool, you will not see any window except for a notification symbol on your Start/Home screen of the device.</p>
<p><a href="http://www.hjgode.de/wp/2011/09/08/keytogglestart-yet-another-usage-for-keyboard-hook/keytogglestart/" rel="attachment wp-att-1205"><img class="alignnone size-medium wp-image-1205" title="KeyToggleStart" src="http://www.hjgode.de/wp/wp-content/uploads/2011/09/KeyToggleStart-225x300.png" alt="" width="225" height="300" /></a></p>
<p>If you tap this icon (redirection sign) you have the chance to end the hook tool.</p>
<p><span id="more-1204"></span>The code itself is nothing special. Only the sequence matching code is a little bit special. As the chars in the sequence do not match keystrokes in a ont-to-one manner, I have to check the shift state of the keyboard and if the current char of the seqeunce is a char needing a shift. For example: the asterisk char (&#8220;*&#8221;) is a combination of the &#8220;8&#8243; key plus the Shift key. So, if you have the &#8220;*&#8221; in the char sequence, the code has to check for the &#8220;8&#8243; key and if the keyboard is in shift state:</p>
<pre lang="cpp">// The command below tells the OS that this EXE has an export function so we can use the global hook without a DLL
__declspec(dllexport) LRESULT CALLBACK g_LLKeyboardHookCallback(
   int nCode,      // The hook code
   WPARAM wParam,  // The window message (WM_KEYUP, WM_KEYDOWN, etc.)
   LPARAM lParam   // A pointer to a struct with information about the pressed key
)
{
    /*    typedef struct {
        DWORD vkCode;
        DWORD scanCode;
        DWORD flags;
        DWORD time;
        ULONG_PTR dwExtraInfo;
    } KBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;*/

    // Get out of hooks ASAP; no modal dialogs or CPU-intensive processes!
    // UI code really should be elsewhere, but this is just a test/prototype app
    // In my limited testing, HC_ACTION is the only value nCode is ever set to in CE
    static int iActOn = HC_ACTION;
    static bool isShifted=false;

#ifdef DEBUG
    static TCHAR str[MAX_PATH];
#endif

    PKBDLLHOOKSTRUCT pkbhData = (PKBDLLHOOKSTRUCT)lParam;
    //DWORD vKey;
    if (nCode == iActOn)
    {
        //only process unflagged keys
        if (pkbhData-&gt;flags != 0x00)
            return CallNextHookEx(g_hInstalledLLKBDhook, nCode, wParam, lParam);
        //check vkCode against forbidden key list
        if(pForbiddenKeyList!=NULL)
        {
            BOOL bForbidden=false;
            int j=0;
            do{
                if(pForbiddenKeyList[j]==(BYTE)pkbhData-&gt;vkCode)
                {
                    bForbidden=true;
                    DEBUGMSG(1, (L"suppressing forbidden key: 0x%0x\n",pkbhData-&gt;vkCode));
                    continue;
                }
                j++;
            }while(!bForbidden &amp;&amp; pForbiddenKeyList[j]!=0x00);
            if(bForbidden){
                return true;
            }
        }

        SHORT sShifted = GetAsyncKeyState(VK_SHIFT);
        if((sShifted &amp; 0x800) == 0x800)
            isShifted = true;
        else
            isShifted = false;

        //check and toggle for Shft Key
        //do not process shift key
        if (pkbhData-&gt;vkCode == VK_SHIFT){
            DEBUGMSG(1, (L"Ignoring VK_SHIFT\n"));
            return CallNextHookEx(g_hInstalledLLKBDhook, nCode, wParam, lParam);
        }

        //################################################################
        //check if the actual key is a match key including the shift state
        if ((byte)pkbhData-&gt;vkCode == (byte)szVKeySeq[iMatched]){
            DEBUGMSG(1 , (L"==== char match\n"));
            if (bCharShiftSeq[iMatched] == isShifted){
                DEBUGMSG(1 , (L"==== shift match\n"));
            }
            else{
                DEBUGMSG(1 , (L"==== shift not match\n"));
            }
        }

        if( wParam == WM_KEYUP ){
            DEBUGMSG(1, (L"---&gt; szVKeySeq[iMatched] = 0x%02x\n", (byte)szVKeySeq[iMatched]));

            if ( ((byte)pkbhData-&gt;vkCode == (byte)szVKeySeq[iMatched]) &amp;&amp; (isShifted == bCharShiftSeq[iMatched]) ) {

                //the first match?
                if(iMatched==0){
                    //start the timer and lit the LED
                    LedOn(LEDid,1);
                    tID=SetTimer(NULL, 0, matchTimeout, (TIMERPROC)Timer2Proc);
                }
                iMatched++;

                DEBUGMSG(1, (L"iMatched is now=%i\n", iMatched));
                //are all keys matched
                if (iMatched == iKeyCount){
                    //show modeless dialog
                    DEBUGMSG(1, (L"FULL MATCH, starting ...\n"));
                    PostMessage(g_hWnd, WM_SHOWMYDIALOG, 0, 0);
                    //reset match pos and stop timer
                    DEBUGMSG(1, (L"FULL MATCH: Reset matching\n"));
                    LedOn(LEDid,0);
                    iMatched=0; //reset match pos
                    KillTimer(NULL, tID);
                    //return CallNextHookEx(g_hInstalledLLKBDhook, nCode, wParam, lParam);
                }
                //return -1; //do not forward key?
            }
            else
            {
                KillTimer(NULL, tID);
                LedOn(LEDid,0);
                iMatched=0; //reset match pos
                DEBUGMSG(1, (L"FULL MATCH missed. Reseting matching\n"));
            }
        } //if wParam == WM_KEY..
    }
    return CallNextHookEx(g_hInstalledLLKBDhook, nCode, wParam, lParam);
}</pre>
<p>Enjoy the code</p>
<p>Download VS2008 Source code for Windows Mobile 6.5.3 SDK<br />
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=143" title="Downloaded 92 times">KeyToggleStart</a> -  (Hits: 92, size: 30.06 kB)</p>
<p>Download KeyToggleStart executable (Windows Mobile 6)<br />
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=144" title="Downloaded 78 times">KeyToggleStart WM6 Executable</a> -  (Hits: 78, size: 12.38 kB)</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2011%2F09%2F08%2Fkeytogglestart-yet-another-usage-for-keyboard-hook%2F&amp;title=KeyToggleStart%3A+Yet+another+usage+for+keyboard+hook" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2011%2F09%2F08%2Fkeytogglestart-yet-another-usage-for-keyboard-hook%2F&amp;title=KeyToggleStart%3A+Yet+another+usage+for+keyboard+hook" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2011%2F09%2F08%2Fkeytogglestart-yet-another-usage-for-keyboard-hook%2F&amp;title=KeyToggleStart%3A+Yet+another+usage+for+keyboard+hook" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2011%2F09%2F08%2Fkeytogglestart-yet-another-usage-for-keyboard-hook%2F&amp;T=KeyToggleStart%3A+Yet+another+usage+for+keyboard+hook" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2011%2F09%2F08%2Fkeytogglestart-yet-another-usage-for-keyboard-hook%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2011%2F09%2F08%2Fkeytogglestart-yet-another-usage-for-keyboard-hook%2F&amp;t=KeyToggleStart%3A+Yet+another+usage+for+keyboard+hook" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.hjgode.de/wp/2011/09/08/keytogglestart-yet-another-usage-for-keyboard-hook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile Development: Hooking the keyboard &#8211; KeyToggle</title>
		<link>http://www.hjgode.de/wp/2010/07/16/mobile-development-hooking-the-keyboard-keytoggle/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mobile-development-hooking-the-keyboard-keytoggle</link>
		<comments>http://www.hjgode.de/wp/2010/07/16/mobile-development-hooking-the-keyboard-keytoggle/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 04:02:33 +0000</pubDate>
		<dc:creator>josef</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Int*rm*c]]></category>
		<category><![CDATA[Keyboard]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[function keys]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[keyboard]]></category>
		<category><![CDATA[simulate keys]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=675</guid>
		<description><![CDATA[Using keyboard hook to remap keys to function keys on windows mobile.]]></description>
			<content:encoded><![CDATA[<p><strong>KeyToggle</strong></p>
<p>Extend your keyboard to get function keys by pressing numbers.</p>
<p>With keytoggle you can define a &#8216;sticky&#8217; key that will change the beahviour of the number keys. As long as the sticky key is &#8216;active&#8217;, number keys from 1 to 0 will produce the function keys F1 to F10. If sticky key is active, the left LED will light in green.</p>
<p>To start keytoggle just tap it or let it start by a link in StartUp. If keytoggle is loaded, you can see a small yellow arrow sign in the taskbar.</p>
<p><a rel="attachment wp-att-676" href="http://www.hjgode.de/wp/2010/07/16/mobile-development-hooking-the-keyboard-keytoggle/keytoggle-3/"><img class="alignnone size-full wp-image-676" title="keytoggle" src="http://www.hjgode.de/wp/wp-content/uploads/2010/07/keytoggle.gif" alt="" width="23" height="24" /></a></p>
<p>If you tap this symbol, you are asked, if you want to unload the app. If the registry does not have values defined for keytoggle, it will use default values. If you try to launch keytoggle a second time you will get a message box. Only one instance of keytoggle can run at a time.</p>
<p>Using the registry you can define the behaviour of the sticky key. In example, you can have the sticky key remain active until it is pressed again, let it &#8216;go off&#8217; or &#8216;fallback&#8217; after a period of time or let it fallback after a number key has been pressed. If the sticky key is pressed again, it will always fallback.</p>
<p><span id="more-675"></span>REGEDIT4<br />
 [HKEY<em>LOCAL</em>MACHINE\SOFTWARE\Intermec\KeyToggle]<br />
 &#8220;Timeout&#8221;=dword:00000000<br />
 &#8220;autoFallback&#8221;=dword:00000001<br />
 &#8220;StickyKey&#8221;=dword:00000090</p>
<p>The values:</p>
<pre><code>  StickyKey:
  default "144", decimal (VK_NUMLOCK)
  the VK_ value of the sticky key. Here you define, what you will have as the sticky key. VK_ values are defined as in winuser.h. In example the VK_ value for the NumLock key is 0x90 (144 decimal, see VK_NUMLOCK). The sticky key will be consumed by keytoggle and is not visible to the system any more. That means, that you should choose key value that you do not need in any app you use.

  Timeout:
  default "3", three seconds
  number of seconds the sticky key will remain active. If 0, the sticky key will not fallback automatically by time

  autoFallback:
  default "0"
  if 0 the sticky key will not fallback after pressing a number key. If 1 the sticky key will fallback after a number key is pressed
</code></pre>
<p><strong>Launch arguments</strong></p>
<pre><code>  Keytoggle only supports one argument: "-writereg". This will create the registry keys used by keytoggle and fill them with the default values.
</code></pre>
<p><strong>Usage Sample Scenario</strong></p>
<p>You have a ITC Color device  with a numeric keyboard but no function keys. You need the function keys to be able to use a web application within iBrowse. With keytoggle you can now for example use the Gold key as sticky key. You have to download the device reource kit to get a keyboard remapper tool from the ITC site and assign the Gold key to NUMLOCK.</p>
<p><a rel="attachment wp-att-677" href="http://www.hjgode.de/wp/2010/07/16/mobile-development-hooking-the-keyboard-keytoggle/cpkbdmap-3/"><img class="alignnone size-medium wp-image-677" title="cpkbdmap" src="http://www.hjgode.de/wp/wp-content/uploads/2010/07/cpkbdmap-225x300.gif" alt="" width="225" height="300" /></a></p>
<p>With this remapping and keytoggle running you will to get a function keystroke simulated if you press the Gold key and then a number key.</p>
<p>Download installer: <b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=107" title="Downloaded 195 times">KeyToggle Installer CAB</a> -  (Hits: 195, size: 5.19 kB)</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F07%2F16%2Fmobile-development-hooking-the-keyboard-keytoggle%2F&amp;title=Mobile+Development%3A+Hooking+the+keyboard+%26%238211%3B+KeyToggle" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F07%2F16%2Fmobile-development-hooking-the-keyboard-keytoggle%2F&amp;title=Mobile+Development%3A+Hooking+the+keyboard+%26%238211%3B+KeyToggle" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F07%2F16%2Fmobile-development-hooking-the-keyboard-keytoggle%2F&amp;title=Mobile+Development%3A+Hooking+the+keyboard+%26%238211%3B+KeyToggle" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F07%2F16%2Fmobile-development-hooking-the-keyboard-keytoggle%2F&amp;T=Mobile+Development%3A+Hooking+the+keyboard+%26%238211%3B+KeyToggle" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F07%2F16%2Fmobile-development-hooking-the-keyboard-keytoggle%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F07%2F16%2Fmobile-development-hooking-the-keyboard-keytoggle%2F&amp;t=Mobile+Development%3A+Hooking+the+keyboard+%26%238211%3B+KeyToggle" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.hjgode.de/wp/2010/07/16/mobile-development-hooking-the-keyboard-keytoggle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Use FuncKey to free up your FunctionKeys on Windows Mobile</title>
		<link>http://www.hjgode.de/wp/2010/02/10/use-funckey-to-free-up-your-functionkeys-on-windows-mobile/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=use-funckey-to-free-up-your-functionkeys-on-windows-mobile</link>
		<comments>http://www.hjgode.de/wp/2010/02/10/use-funckey-to-free-up-your-functionkeys-on-windows-mobile/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 22:24:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Keyboard]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[AllKeys]]></category>
		<category><![CDATA[downloads]]></category>
		<category><![CDATA[FuncKeys]]></category>
		<category><![CDATA[function keys]]></category>
		<category><![CDATA[GXOpenInput]]></category>
		<category><![CDATA[kiosk mode]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=20</guid>
		<description><![CDATA[A toolset to free FunctionKeys on your Windows Mobile device]]></description>
			<content:encoded><![CDATA[<p>Hello</p>
<p style="text-align: right;">Updated on 10. feb 2010</p>
<p>I finished a toolset to free the function keys on windows mobile devices. That means a tool set that will give you back the function keys. Instead of F3 launching the phone app, you can free the F3 key and use it in your app.</p>
<p><span id="more-20"></span></p>
<p><img title="FuncKeys1.jpg" src="http://community.intermec.com/t5/image/serverpage/image-id/83i4E8528B315AD6935/image-size/original?v=mpbl-1&amp;px=-1" border="0" alt="FuncKeys1.jpg" align="center" /> <img title="FuncKeys0.jpg" src="http://community.intermec.com/t5/image/serverpage/image-id/84i60D6B7FD34772A90/image-size/original?v=mpbl-1&amp;px=-1" border="0" alt="FuncKeys0.jpg" align="center" /></p>
<p>The tool set consists of three files:</p>
<ul>
<li>FuncKeysCPL a control panel applet that will launch the second tool FuncKeys.</li>
<li>FuncKeys will enable you to define the function keys to free up.</li>
<li>FuncKeysUnReg, the tool that will apply your settings during startup of the device.</li>
</ul>
<p>For some more information see the html help inside FuncKeys (use the [?] button).</p>
<p>The only disadvantage with the tool is that it cannot free VK_LWIN as GXOpenInput() or <a title="Post about AllKeys()" href="http://www.hjgode.de/wp/2009/05/09/gapi-gxopeninput-and-gxcloseinput-will-be-removed-for-windows-mobile-65/" target="_self">AllKeys()</a> can do.</p>
<p>regards</p>
<p>Josef<br />
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=1" title="Downloaded 422 times">FuncKeys</a> - Control the function of Function Keys on Windows Mobile devices (embedded Visual C++ 4.0 Source included) (Hits: 422, size: 721.86 KB)</p>
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=51" title="Downloaded 277 times">FuncKey ArmV4i installer cab</a> -  (Hits: 277, size: 205.06 KB)
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F02%2F10%2Fuse-funckey-to-free-up-your-functionkeys-on-windows-mobile%2F&amp;title=Use+FuncKey+to+free+up+your+FunctionKeys+on+Windows+Mobile" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F02%2F10%2Fuse-funckey-to-free-up-your-functionkeys-on-windows-mobile%2F&amp;title=Use+FuncKey+to+free+up+your+FunctionKeys+on+Windows+Mobile" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F02%2F10%2Fuse-funckey-to-free-up-your-functionkeys-on-windows-mobile%2F&amp;title=Use+FuncKey+to+free+up+your+FunctionKeys+on+Windows+Mobile" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F02%2F10%2Fuse-funckey-to-free-up-your-functionkeys-on-windows-mobile%2F&amp;T=Use+FuncKey+to+free+up+your+FunctionKeys+on+Windows+Mobile" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F02%2F10%2Fuse-funckey-to-free-up-your-functionkeys-on-windows-mobile%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2010%2F02%2F10%2Fuse-funckey-to-free-up-your-functionkeys-on-windows-mobile%2F&amp;t=Use+FuncKey+to+free+up+your+FunctionKeys+on+Windows+Mobile" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.hjgode.de/wp/2010/02/10/use-funckey-to-free-up-your-functionkeys-on-windows-mobile/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Toggle keyboard using keyboard hook</title>
		<link>http://www.hjgode.de/wp/2009/06/17/toggle-keyboard-using-keyboard-hook/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=toggle-keyboard-using-keyboard-hook</link>
		<comments>http://www.hjgode.de/wp/2009/06/17/toggle-keyboard-using-keyboard-hook/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 10:29:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Utilities]]></category>
		<category><![CDATA[function keys]]></category>
		<category><![CDATA[keyboard hook]]></category>
		<category><![CDATA[keyboard remapping]]></category>
		<category><![CDATA[Windows Mobile 2003]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=134</guid>
		<description><![CDATA[With keytoggle you can define a 'sticky' key that will change the behaviour of the number keys]]></description>
			<content:encoded><![CDATA[<p>This is transfered from <a href="http://www.hjgode.de/dev/iLock/index.html#keytoggle" target="_blank">my static page</a>:</p>
<h2>KeyToggle</h2>
<p><span style="font-weight: bold; font-style: italic;">Using function keys  by pressing numbers. Written for ITC 700 color running windows mobile 2003.<br />
</span></p>
<p><span style="font-weight: bold; font-style: italic;"><strong>Note: </strong></span><span style="font-weight: bold; font-style: italic;">Updated KeyToggle.exe and </span><span style="font-weight: bold; font-style: italic;">download</span><span style="font-weight: bold; font-style: italic;"> cab:<br />
</span><b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=14" title="Downloaded 190 times">KeyToggle</a> -  (Hits: 190, size: 14.95 KB)</p>
<p><span style="font-weight: bold; font-style: italic;">There was a bug, so the  sticky key still produced wm_keydown messages. Fixed version is v2.1.1.0.</span></p>
<p>With keytoggle you can define a &#8216;sticky&#8217; key that will change the behaviour  of the number keys. As long as the sticky key is &#8216;active&#8217;, number  keys from 1 to 0 will produce the function keys F1 to F10. If sticky key is  active, the left LED will light in green.</p>
<p><span id="more-134"></span>To start keytoggle just tap it or let it start by a link in StartUp. If keytoggle  is loaded, you can see a small yellow arrow sign in the taskbar or on today screen.</p>
<p><img class="alignnone size-full wp-image-137" title="keytoggle" src="http://www.hjgode.de/wp/wp-content/uploads/2009/06/keytoggle.gif" alt="keytoggle" width="23" height="24" /></p>
<p>If you tap this symbol, you are asked, if you want to unload the app. If  the registry does not have values defined for keytoggle, it will use default  values. If you try to launch keytoggle a second time you will get a message  box. Only one instance of keytoggle can run at a time.</p>
<p>Using the registry you can define the behaviour of the sticky key. In example,  you can have the sticky key remain active until it is pressed again, let it  &#8216;go off&#8217; or &#8216;fallback&#8217; after a period of time or let it fallback after a number  key has been pressed. If the sticky key is pressed again, it will always fallback.</p>
<pre>REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Intermec\KeyToggle]
"Timeout"=dword:00000000
"autoFallback"=dword:00000001
"StickyKey"=dword:00000090</pre>
<h4><span style="font-weight: bold;"><strong>The values:</strong></span></h4>
<ul>StickyKey:<br />
default &#8220;144&#8243;, decimal (VK_NUMLOCK)<br />
the      VK_ value of the sticky key. Here you define, what you will have as the      sticky key. VK_ values are defined as in winuser.h. In example the VK_ value      for the NumLock key is 0&#215;90 (144 decimal, see VK_NUMLOCK). The sticky key      will be consumed by keytoggle and is not visible to the system any more.      That means, that you should choose key value that you do not need in any      app you use.Timeout:<br />
default &#8220;3&#8243;, three seconds<br />
number of seconds      the sticky key will remain active. If 0, the sticky key will not fallback automatically      by time</p>
<p>autoFallback:<br />
default &#8220;0&#8243;<br />
if 0 the sticky key will      not fallback after pressing a number key. If 1 the sticky key will fallback      after a number key is pressed</ul>
<h4><strong>Launch arguments</strong></h4>
<ul>Keytoggle only supports one argument: &#8220;-writereg&#8221;. This will      create the registry keys used by keytoggle and fill them with the default      values.</ul>
<h4>The central code inside KeyToggle</h4>
<pre lang="c">// The command below tells the OS that this EXE has an export function so we can use the global hook without a DLL
__declspec(dllexport) LRESULT CALLBACK g_LLKeyboardHookCallback(
   int nCode,      // The hook code
   WPARAM wParam,  // The window message (WM_KEYUP, WM_KEYDOWN, etc.)
   LPARAM lParam   // A pointer to a struct with information about the pressed key
)
{
	/*	typedef struct {
	    DWORD vkCode;
	    DWORD scanCode;
	    DWORD flags;
	    DWORD time;
	    ULONG_PTR dwExtraInfo;
	} KBDLLHOOKSTRUCT, *PKBDLLHOOKSTRUCT;*/

	// Get out of hooks ASAP; no modal dialogs or CPU-intensive processes!
	// UI code really should be elsewhere, but this is just a test/prototype app
	// In my limited testing, HC_ACTION is the only value nCode is ever set to in CE
	static int iActOn = HC_ACTION;
	TCHAR str[MAX_PATH];
	PKBDLLHOOKSTRUCT pkbhData = (PKBDLLHOOKSTRUCT)lParam;
	DWORD vKey;
	if (nCode == iActOn)
	{
#ifdef DEBUG
			wsprintf(str, L"vkCode=\t0x%0x \n", pkbhData-&gt;vkCode);
			DEBUGMSG(true,(str));
			wsprintf(str, L"scanCode=\t0x%0x \n", pkbhData-&gt;scanCode);
			DEBUGMSG(true,(str));
			wsprintf(str, L"flags=\t0x%0x \n", pkbhData-&gt;flags);
			DEBUGMSG(true,(str));
			wsprintf(str, L"isStickyOn is=\t0x%0x \n", isStickyOn);
			DEBUGMSG(true,(str));
#endif
		//only process unflagged keys
		if (pkbhData-&gt;flags != 0x00)
			return CallNextHookEx(g_hInstalledLLKBDhook, nCode, wParam, lParam);

		//only process these types
		if ((wParam == WM_KEYUP) || (wParam == WM_KEYDOWN) || (wParam == WM_CHAR))
		{
			//dont care about sticky key down. v2.1.1
			if  (
				(pkbhData-&gt;vkCode == vkSticky) &amp;&amp;
				(wParam == WM_KEYDOWN)
				)
			{
				return -1;
			}

			//if num active change numeric keys to function keys
			//if sticky key set isStickyOn to active and start a timer to reset num after 3 seconds
			if  (
				(pkbhData-&gt;vkCode == vkSticky) &amp;&amp;
				(isStickyOn==false) &amp;&amp;
				(wParam == WM_KEYUP)
				)
			{
				LedOn(LEDid,1);
				isStickyOn=true;
				//start a timer
				if (stickyTimeout!=0)
					tID=SetTimer(NULL, 0, stickyTimeout, (TIMERPROC)Timer2Proc);
				return -1;
			}
			//if isStickyOn and sticky key is again pressed, toggle isStickyOn to OFF
			if ((pkbhData-&gt;vkCode == vkSticky) &amp;&amp; (isStickyOn==true) &amp;&amp; (wParam == WM_KEYUP))
			{
				LedOn(LEDid,0);
				isStickyOn=false;
				//start a timer
				if (stickyTimeout!=0)
					KillTimer(NULL, tID);
				return -1;
			}

			if ((isStickyOn==true) &amp;&amp; (pkbhData-&gt;vkCode &gt;= 0x30) &amp;&amp; (pkbhData-&gt;vkCode &lt;= 0x39)) 			{ 				//number key pressed and isStickyOn is active 				//get the pressed key 				vKey=pkbhData-&gt;vkCode;
				switch (vKey)
				{
					case 0x30: //0-&gt;F10
						vKey=VK_F10;
						break;
					default:
						vKey+=0x3F;//1 is 0x31, convert to F1 is 0x70
						break;
				}

				//create a new key event
				if (wParam == WM_KEYDOWN)
					keybd_event((byte)vKey, 0, KEYEVENTF_SILENT, 0); //key_down
				if (wParam == WM_KEYUP)
					keybd_event((byte)vKey, 0, KEYEVENTF_KEYUP |  KEYEVENTF_SILENT, 0); //key_up
				wsprintf(str, L"old Key=0x%0x -&gt; new vkCode=\t0x%0x \n", pkbhData-&gt;vkCode, vKey);
				DEBUGMSG(true,(str));
				if ((autoFallback==1) &amp;&amp; (wParam == WM_KEYUP)) //if autofallback
				{
					LedOn(LEDid,0);
					isStickyOn=false;
					if (stickyTimeout!=0)
						KillTimer(NULL, tID);
				}
				return -1;
			}
		}
	}
	return CallNextHookEx(g_hInstalledLLKBDhook, nCode, wParam, lParam);
}</pre>
<h4>Usage Sample Scenario</h4>
<p>You have a ITC 700 Color device. This has a alphanumeric keyboard but no  function keys. You need the function keys to be able to use a web application  within iBrowse. With keytoggle you can now for example use the Gold key as sticky  key. You have to download the keyboard remapper tool cpkbdmap.cab from the ITC  site (keyboard remapping tool is part of ITC device Resource Kit) and assign  the Gold key to NUMLOCK.</p>
<p><img class="alignnone size-medium wp-image-136" title="cpkbdmap" src="http://www.hjgode.de/wp/wp-content/uploads/2009/06/cpkbdmap-225x300.gif" alt="cpkbdmap" width="225" height="300" /></p>
<p>With this remapping and keytoggle running you will to get a function keystroke  simulated if you press the Gold key and then a number key.</p>
<p>Source Code (eVC4, WM2003)</p>
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=15" title="Downloaded 160 times">KeyToggle source code</a> -  (Hits: 160, size: 163.14 KB)
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2009%2F06%2F17%2Ftoggle-keyboard-using-keyboard-hook%2F&amp;title=Toggle+keyboard+using+keyboard+hook" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2009%2F06%2F17%2Ftoggle-keyboard-using-keyboard-hook%2F&amp;title=Toggle+keyboard+using+keyboard+hook" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2009%2F06%2F17%2Ftoggle-keyboard-using-keyboard-hook%2F&amp;title=Toggle+keyboard+using+keyboard+hook" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2009%2F06%2F17%2Ftoggle-keyboard-using-keyboard-hook%2F&amp;T=Toggle+keyboard+using+keyboard+hook" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2009%2F06%2F17%2Ftoggle-keyboard-using-keyboard-hook%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2009%2F06%2F17%2Ftoggle-keyboard-using-keyboard-hook%2F&amp;t=Toggle+keyboard+using+keyboard+hook" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.hjgode.de/wp/2009/06/17/toggle-keyboard-using-keyboard-hook/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Started a poll: Is Windows Mobile the right OS choice for an commercial used handheld?</title>
		<link>http://www.hjgode.de/wp/2009/05/10/started-a-poll-is-windows-mobile-the-right-os-choice-for-an-commercial-used-handheld/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=started-a-poll-is-windows-mobile-the-right-os-choice-for-an-commercial-used-handheld</link>
		<comments>http://www.hjgode.de/wp/2009/05/10/started-a-poll-is-windows-mobile-the-right-os-choice-for-an-commercial-used-handheld/#comments</comments>
		<pubDate>Sun, 10 May 2009 15:06:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Polls]]></category>
		<category><![CDATA[function keys]]></category>
		<category><![CDATA[poll]]></category>
		<category><![CDATA[windows ce]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=16</guid>
		<description><![CDATA[Please vote, if you like Windows Mobile or Windows CE on commercial devices from a developers point of view.]]></description>
			<content:encoded><![CDATA[<p>Started a poll: Is Windows Mobile the right OS choice for an commercial used handheld?</p>
<p>Do you think windows mobile is the right choice for a commercial used handheld?</p>
<p>Having windows mobile OS on a barcode scanner data retrieval system has a lots of disadvantages. There may be unwanted popups and it is hard to lock the user in the application. Windows CE is shrinked down, but no one will miss outlook and other PIM of windows mobile on a data retrieval system.</p>
<p>When I am talking about industrial/commercial used handhelds, I am talking about <a title="Intermec Computers" href="http://www.intermec.com/products/computers/index.aspx" target="_blank">such</a> devices.</p>
<p>Windows Mobile offers a rich set of functions, but from a support and developing view, it is harder to lock down the user in the application they have to use to enter data. There is an strange function key mapping and every time a popup may appear, where the user can get out of the main app back to the OS.</p>
<p>Windows CE is much easier to support and it is easier to lock down the user. It also has a smaller footprint and the application has more memory: no outlook and other mostly unused apps in the background. For browser type applications, the browser is more compatible to desktop browser than the Mobile Internet Explorer.</p>
<p>What do you think?</p>
<p>Some companies for ruggedized handhelds offer both OS types for there devices, some not.</p>
<p>Please vote at right sidebar.</p>
<!-- Social Bookmarks BEGIN -->
<div class="social_bookmark">
<a><strong><em>Bookmark It</em></strong></a>
<br />
<div class="d">
<br />
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://del.icio.us/post?url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2009%2F05%2F10%2Fstarted-a-poll-is-windows-mobile-the-right-os-choice-for-an-commercial-used-handheld%2F&amp;title=Started+a+poll%3A+Is+Windows+Mobile+the+right+OS+choice+for+an+commercial+used+handheld%3F" rel="nofollow" title="Add to&nbsp;Del.icio.us"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/delicious.png" title="Add to&nbsp;Del.icio.us" alt="Add to&nbsp;Del.icio.us" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2009%2F05%2F10%2Fstarted-a-poll-is-windows-mobile-the-right-os-choice-for-an-commercial-used-handheld%2F&amp;title=Started+a+poll%3A+Is+Windows+Mobile+the+right+OS+choice+for+an+commercial+used+handheld%3F" rel="nofollow" title="Add to&nbsp;digg"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/digg.png" title="Add to&nbsp;digg" alt="Add to&nbsp;digg" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2009%2F05%2F10%2Fstarted-a-poll-is-windows-mobile-the-right-os-choice-for-an-commercial-used-handheld%2F&amp;title=Started+a+poll%3A+Is+Windows+Mobile+the+right+OS+choice+for+an+commercial+used+handheld%3F" rel="nofollow" title="Add to&nbsp;Google Bookmarks"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/google.png" title="Add to&nbsp;Google Bookmarks" alt="Add to&nbsp;Google Bookmarks" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.netscape.com/submit/?U=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2009%2F05%2F10%2Fstarted-a-poll-is-windows-mobile-the-right-os-choice-for-an-commercial-used-handheld%2F&amp;T=Started+a+poll%3A+Is+Windows+Mobile+the+right+OS+choice+for+an+commercial+used+handheld%3F" rel="nofollow" title="Add to&nbsp;Netscape"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/netscape.png" title="Add to&nbsp;Netscape" alt="Add to&nbsp;Netscape" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://www.technorati.com/faves?add=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2009%2F05%2F10%2Fstarted-a-poll-is-windows-mobile-the-right-os-choice-for-an-commercial-used-handheld%2F" rel="nofollow" title="Add to&nbsp;Technorati"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/technorati.png" title="Add to&nbsp;Technorati" alt="Add to&nbsp;Technorati" /></a>
<a onclick="window.open(this.href, '_blank', 'scrollbars=yes,menubar=no,height=600,width=750,resizable=yes,toolbar=no,location=no,status=no'); return false;" href="http://myweb2.search.yahoo.com/myresults/bookmarklet?u=http%3A%2F%2Fwww.hjgode.de%2Fwp%2F2009%2F05%2F10%2Fstarted-a-poll-is-windows-mobile-the-right-os-choice-for-an-commercial-used-handheld%2F&amp;t=Started+a+poll%3A+Is+Windows+Mobile+the+right+OS+choice+for+an+commercial+used+handheld%3F" rel="nofollow" title="Add to&nbsp;Yahoo My Web"><img class="social_img" src="http://www.hjgode.de/wp/wp-content/plugins/social-bookmarks0/images/yahoo.png" title="Add to&nbsp;Yahoo My Web" alt="Add to&nbsp;Yahoo My Web" /></a>
<br />
</div>
</div>
<!-- Social Bookmarks END -->
]]></content:encoded>
			<wfw:commentRss>http://www.hjgode.de/wp/2009/05/10/started-a-poll-is-windows-mobile-the-right-os-choice-for-an-commercial-used-handheld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

