<?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 hook</title>
	<atom:link href="http://www.hjgode.de/wp/tag/keyboard-hook/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>KeyToggle: get working function keys on you Windows Mobile device</title>
		<link>http://www.hjgode.de/wp/2009/06/30/keytoggle-get-working-function-keys-on-you-windows-mobile-device/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=keytoggle-get-working-function-keys-on-you-windows-mobile-device</link>
		<comments>http://www.hjgode.de/wp/2009/06/30/keytoggle-get-working-function-keys-on-you-windows-mobile-device/#comments</comments>
		<pubDate>Tue, 30 Jun 2009 07:58:53 +0000</pubDate>
		<dc:creator>josef</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[keyboard hook]]></category>
		<category><![CDATA[keytoggle]]></category>
		<category><![CDATA[toggle key]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=166</guid>
		<description><![CDATA[Using keyboard hooks to define special key functions]]></description>
			<content:encoded><![CDATA[<p>Consumer PDAs running Windows Mobile have either only some special keys (a rocker, home, back and action) or some have a qwertz keypad or a mobile phone like keypad. The industrial handhelds by ITC and other vendors of ruggedized handheld computers mostly have a number or alphanumeric (qwertz) keypad. Some of these ruggedized devices support also Function Keys. You may need function keys if you access aa application on a terminal server or use a terminal emulation like IBM 3270 or VT/ANSI.</p>
<p>If you dont have function keys on your keypad, you can use KeyToggle to get the number keys work as function keys.</p>
<p><span id="more-166"></span>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 (700) or the left LED will light yellow (CN3).</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><img class="alignnone size-full wp-image-167" title="keytoggle icon" src="http://www.hjgode.de/wp/wp-content/uploads/2009/06/keytoggle1.gif" alt="keytoggle icon" 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>
<p>Configuration is done by the registry.</p>
<h3>The registry values</h3>
<pre>REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Intermec\KeyToggle]
"Timeout"=dword:00000000
"autoFallback"=dword:00000001
"StickyKey"=dword:00000090</pre>
<p style="padding-left: 30px;">StickyKey:</p>
<p style="padding-left: 60px;">default &#8220;144&#8243;, decimal (VK_NUMLOCK)</p>
<p style="padding-left: 60px;">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. Another sample is VK_ADD (0x6B, 107).</p>
<p style="padding-left: 30px;">Timeout:</p>
<p style="padding-left: 60px;">default &#8220;3&#8243;, three seconds</p>
<p style="padding-left: 60px;">number of seconds the sticky key will remain active. If 0, the sticky key will not fallback automatically by time</p>
<p style="padding-left: 30px;">autoFallback:</p>
<p style="padding-left: 60px;">default &#8220;0&#8243;</p>
<p style="padding-left: 60px;">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</p>
<h3>Launch arguments</h3>
<p>Keytoggle only supports one argument: &#8220;-writereg&#8221;. This will create the registry keys used by keytoggle and fill them with the default values.</p>
<h2>Usage Sample Scenario</h2>
<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 (Device Resource Kit, see Dwonload link on right) and assign the Gold key to NUMLOCK.</p>
<p><img class="alignnone size-full wp-image-168" title="cpkbdmap" src="http://www.hjgode.de/wp/wp-content/uploads/2009/06/cpkbdmap1.gif" alt="cpkbdmap" width="240" height="320" /></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>(copied from www.hjgode.de/dev/iLock)</p>
<p><b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=23" title="Downloaded 316 times">KeyToggle</a> -  (Hits: 316, size: 168.04 KB) <b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=24" title="Downloaded 241 times">KeyToggle exe ARM v4 (WM2003, WinCE4.x)</a> -  (Hits: 241, size: 4.69 KB) <b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=25" title="Downloaded 424 times">KeyToggle exe ARM v4i (WM5/6, WinCE5.x)</a> -  (Hits: 424, size: 4.68 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%2F06%2F30%2Fkeytoggle-get-working-function-keys-on-you-windows-mobile-device%2F&amp;title=KeyToggle%3A+get+working+function+keys+on+you+Windows+Mobile+device" 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%2F30%2Fkeytoggle-get-working-function-keys-on-you-windows-mobile-device%2F&amp;title=KeyToggle%3A+get+working+function+keys+on+you+Windows+Mobile+device" 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%2F30%2Fkeytoggle-get-working-function-keys-on-you-windows-mobile-device%2F&amp;title=KeyToggle%3A+get+working+function+keys+on+you+Windows+Mobile+device" 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%2F30%2Fkeytoggle-get-working-function-keys-on-you-windows-mobile-device%2F&amp;T=KeyToggle%3A+get+working+function+keys+on+you+Windows+Mobile+device" 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%2F30%2Fkeytoggle-get-working-function-keys-on-you-windows-mobile-device%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%2F30%2Fkeytoggle-get-working-function-keys-on-you-windows-mobile-device%2F&amp;t=KeyToggle%3A+get+working+function+keys+on+you+Windows+Mobile+device" 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/30/keytoggle-get-working-function-keys-on-you-windows-mobile-device/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>

