<?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; keyboard remapping</title>
	<atom:link href="http://www.hjgode.de/wp/tag/keyboard-remapping/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>DirectKeyUI, a tool to manage direct keys on ITC devices</title>
		<link>http://www.hjgode.de/wp/2009/07/14/directkeyui-a-tool-to-manage-direct-keys-on-itc-devices/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=directkeyui-a-tool-to-manage-direct-keys-on-itc-devices</link>
		<comments>http://www.hjgode.de/wp/2009/07/14/directkeyui-a-tool-to-manage-direct-keys-on-itc-devices/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 07:34:30 +0000</pubDate>
		<dc:creator>josef</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[700 color]]></category>
		<category><![CDATA[CK3]]></category>
		<category><![CDATA[CN3]]></category>
		<category><![CDATA[CV30]]></category>
		<category><![CDATA[DirectKeyUI]]></category>
		<category><![CDATA[ITC]]></category>
		<category><![CDATA[keyboard remapping]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=81</guid>
		<description><![CDATA[Remap keyboard direct keys of ITC devices]]></description>
			<content:encoded><![CDATA[<p>Although ITC offers a nice keyboard remapper (part of the device resource kit) there is no tool to remap the &#8216;direct&#8217; keys. Direct keys are for example the blue side buttons on a CN3(e), the PTT key on a CK3 or the front keys of a CV30. To remap those keys you need to change the registry. As fiddling with the registry is not always easy, I did this small tool: DirectKeyUI</p>
<h2>New (14. july 2009):</h2>
<ul>
<li>Added ArmV4 version as needed to use the tool on 700 color devices<br />
Although the tool is mainly targetting ITC WM5 devices it is also usefull to map keys on ITC WM2003 devices as the 700 color series. The remapper for the WM2003 devices does not offer all possibly mappings and so DirectKeyUI may be usefull for you.</li>
<li>Added source code as of 29. june 2009</li>
<li>Fixed some bugs in v1.2</li>
</ul>
<p><span id="more-81"></span><img class="alignnone size-medium wp-image-82" title="directkeyui1" src="http://www.hjgode.de/wp/wp-content/uploads/2009/06/directkeyui1-225x300.gif" alt="directkeyui1" width="225" height="300" /></p>
<p>After you started the tool, you select the plane and then the key to reassign. Please note, that not all values are mapped to keys. For example the first and last two entries near &#8216;Select Key&#8217; are not of use on CN3&#8242;s.</p>
<p><img class="alignnone size-medium wp-image-83" title="directkeyui2" src="http://www.hjgode.de/wp/wp-content/uploads/2009/06/directkeyui2-225x300.gif" alt="directkeyui2" width="225" height="300" /></p>
<p>Here I selected the third key entry, which is the upper left blue side key on the CN3 I tested here. Then I select VK_F22 as the new VK value.</p>
<p><img class="alignnone size-medium wp-image-84" title="directkeyui3" src="http://www.hjgode.de/wp/wp-content/uploads/2009/06/directkeyui3-225x300.gif" alt="directkeyui3" width="225" height="300" /></p>
<p>You have to save each change immediately, if you like to have it applied.</p>
<p>As F22 is mapped to Lock function, the device is now locked immediately, if you press the upper button on the left side of the CN3.</p>
<p>Now start playing with the tool. You can assign VK values, events, multi keys and app button to any of the direct keys. Please do not use undefined values as 0&#215;02, 0&#215;04, 0&#215;06 and -undef- as Key Type.</p>
<p>This is for testing and/or demo purpose only. Watch your step when playing with the tool.</p>
<p><b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=7" title="Downloaded 281 times">DirectKeyUI Windows Mobile 5/6 Executable</a> -  (Hits: 281, size: 72.19 KB)<br />
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=30" title="Downloaded 212 times">DirectKeyUI Windows Mobile 2003/5/6 CE4,5 VS2005 Source v1.2</a> -  (Hits: 212, size: 170.25 KB)<br />
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=31" title="Downloaded 182 times">DirectKeyUI Windows CE4/5 - Mobile 5/6 Executable, v1.2</a> -  (Hits: 182, size: 72.05 KB)<br />
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=32" title="Downloaded 179 times">DirectKeyUI Windows CE4 - Mobile 2003 Executable, v1.2</a> -  (Hits: 179, size: 73.56 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%2F2009%2F07%2F14%2Fdirectkeyui-a-tool-to-manage-direct-keys-on-itc-devices%2F&amp;title=DirectKeyUI%2C+a+tool+to+manage+direct+keys+on+ITC+devices" 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%2F07%2F14%2Fdirectkeyui-a-tool-to-manage-direct-keys-on-itc-devices%2F&amp;title=DirectKeyUI%2C+a+tool+to+manage+direct+keys+on+ITC+devices" 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%2F07%2F14%2Fdirectkeyui-a-tool-to-manage-direct-keys-on-itc-devices%2F&amp;title=DirectKeyUI%2C+a+tool+to+manage+direct+keys+on+ITC+devices" 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%2F07%2F14%2Fdirectkeyui-a-tool-to-manage-direct-keys-on-itc-devices%2F&amp;T=DirectKeyUI%2C+a+tool+to+manage+direct+keys+on+ITC+devices" 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%2F07%2F14%2Fdirectkeyui-a-tool-to-manage-direct-keys-on-itc-devices%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%2F07%2F14%2Fdirectkeyui-a-tool-to-manage-direct-keys-on-itc-devices%2F&amp;t=DirectKeyUI%2C+a+tool+to+manage+direct+keys+on+ITC+devices" 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/07/14/directkeyui-a-tool-to-manage-direct-keys-on-itc-devices/feed/</wfw:commentRss>
		<slash:comments>0</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>
	</channel>
</rss>

