<?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; kiosk mode</title>
	<atom:link href="http://www.hjgode.de/wp/tag/kiosk-mode/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>Windows Mobile: Disable Low Battery Warning</title>
		<link>http://www.hjgode.de/wp/2011/03/05/windows-mobile-disable-low-battery-warning/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows-mobile-disable-low-battery-warning</link>
		<comments>http://www.hjgode.de/wp/2011/03/05/windows-mobile-disable-low-battery-warning/#comments</comments>
		<pubDate>Sat, 05 Mar 2011 17:35:09 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[kiosk mode]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[change]]></category>
		<category><![CDATA[disable]]></category>
		<category><![CDATA[Low battery]]></category>
		<category><![CDATA[registry]]></category>
		<category><![CDATA[warning]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=1062</guid>
		<description><![CDATA[Although I dont recommend this, it may be usefull if your kiosk mode app watches and manages the battery level: you can disable the low battery warning. Sometimes such hacks are hard to find, now there is one more location in internet. In the registry find the key [HKEY_CURRENT_USER\ControlPanel\Notifications\{A877D663-239C-47a7-9304-0D347F580408}] This is the entry responsible for [...]]]></description>
			<content:encoded><![CDATA[<p>Although I dont recommend this, it may be usefull if your kiosk mode app watches and manages the battery level: you can disable the low battery warning. Sometimes such hacks are hard to find, now there is one more location in internet.</p>
<p>In the registry find the key</p>
<pre>[HKEY_CURRENT_USER\ControlPanel\Notifications\{A877D663-239C-47a7-9304-0D347F580408}]</pre>
<p>This is the entry responsible for low battery warnings</p>
<p>Add a new REG_SZ key: &#8220;Default&#8221; with for example the text &#8220;Low Battery Warning&#8221;</p>
<pre>"Default"="Low Battery Warning"</pre>
<p>This entry is used to display the notification in the list of notifications in Start-Settings-Sounds&amp;Notifications. To disable the notification itself it is not really necessary, but easier to control.</p>
<p>The Options entry in the registry defines which options your selected in Start-Settings-Sounds&amp;Notifications, for example play a sound or display a user notification. Set Options to REG_DWORD=0&#215;00 and there will be no notification when the battery goes down to 10% (depends on the device) and lower.</p>
<p>Here is the change in full:</p>
<pre>REGEDIT4
[HKEY_CURRENT_USER\ControlPanel\Notifications\{A877D663-239C-47a7-9304-0D347F580408}]
"Options"=dword:00000000
"Default"="LowBattWarning"</pre>
<p><strong>You need to reboot the device after the change!</strong></p>
<p>Only a small tipp</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%2F03%2F05%2Fwindows-mobile-disable-low-battery-warning%2F&amp;title=Windows+Mobile%3A+Disable+Low+Battery+Warning" 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%2F03%2F05%2Fwindows-mobile-disable-low-battery-warning%2F&amp;title=Windows+Mobile%3A+Disable+Low+Battery+Warning" 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%2F03%2F05%2Fwindows-mobile-disable-low-battery-warning%2F&amp;title=Windows+Mobile%3A+Disable+Low+Battery+Warning" 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%2F03%2F05%2Fwindows-mobile-disable-low-battery-warning%2F&amp;T=Windows+Mobile%3A+Disable+Low+Battery+Warning" 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%2F03%2F05%2Fwindows-mobile-disable-low-battery-warning%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%2F03%2F05%2Fwindows-mobile-disable-low-battery-warning%2F&amp;t=Windows+Mobile%3A+Disable+Low+Battery+Warning" 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/03/05/windows-mobile-disable-low-battery-warning/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mobile Development: Disable Windows Mobile 6.5 Start and Close Button</title>
		<link>http://www.hjgode.de/wp/2010/11/18/mobile-development-disable-windows-mobile-6-5-start-and-close-button/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mobile-development-disable-windows-mobile-6-5-start-and-close-button</link>
		<comments>http://www.hjgode.de/wp/2010/11/18/mobile-development-disable-windows-mobile-6-5-start-and-close-button/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 13:03:47 +0000</pubDate>
		<dc:creator>josef</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[kiosk mode]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[Utilities]]></category>
		<category><![CDATA[6.5.3]]></category>
		<category><![CDATA[Close Button]]></category>
		<category><![CDATA[DotNet]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[sender-as-rectangle-windows-ce]]></category>
		<category><![CDATA[Start Button]]></category>
		<category><![CDATA[Subclassing]]></category>
		<category><![CDATA[taskbar]]></category>
		<category><![CDATA[windows mobile]]></category>
		<category><![CDATA[WM65]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=888</guid>
		<description><![CDATA[Windows Mobile 6.5.3. Class to subclass menu toolbar to disable Start and Close button clicks.]]></description>
			<content:encoded><![CDATA[<p>Hello</p>
<p>here is one other way to write a kios mode .NET application using a technique called SubClassing. The idea was born by a comment of redwolf2222 on this blog about how to <a href="http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/">Hide Start and Close buttons on Windows Mobile 6.5 devices</a>. Redwolf2222 also provided a code snippet. Unfortunately it was incomplete and so I wrote my own class.</p>
<p><strong>Disable clicks on Start and Close button</strong></p>
<p>The demo project shows one dialog with two check boxes and you can easily test the function. If &#8220;StartButton Disabled&#8221; or &#8220;Close Button disabled&#8221; is checked, you cannot &#8216;click&#8217; the corresponding button any more:</p>
<p><a rel="attachment wp-att-889" href="http://www.hjgode.de/wp/2010/11/18/mobile-development-disable-windows-mobile-6-5-start-and-close-button/startbuttoncontrolwm65_2/"><img class="alignnone size-medium wp-image-889" title="StartButtonControlWM65" src="http://www.hjgode.de/wp/wp-content/uploads/2010/11/StartButtonControlWM65_2-225x300.gif" alt="" width="225" height="300" /></a></p>
<p>You still &#8216;click&#8217; the buttons but the subclassed window will not &#8216;execute&#8217; your click. The buttons are part of the toolbar32 window which is a child of the menu_worker window. So first we have to follow the window tree.</p>
<p><strong>Find the right window</strong></p>
<pre escaped="true" line="1" lang="csharp">/// &lt;summary&gt;
/// SubClassing: Install the wndproc hook
/// &lt;/summary&gt;
/// &lt;returns&gt;&lt;/returns&gt;
private bool hookWindow()
{
    //find taskbar
    IntPtr hWndTaskbar = FindWindow("HHTaskbar", IntPtr.Zero);
    if (hWndTaskbar == IntPtr.Zero)
        return false;
    //enable the taskbar, not realy necessary
    EnableWindow(hWndTaskbar, true);
    //already installed?
    if (oldWndProc == IntPtr.Zero)
    {
        //find the menu_worker window
        IntPtr hwndMenu_Worker = FindWindow("menu_worker", IntPtr.Zero);
        if (hwndMenu_Worker != IntPtr.Zero)
        {
            //get the child window which has the buttons on it
            IntPtr hwndToolbar = GetWindow(hwndMenu_Worker, GetWindow_Cmd.GW_CHILD);
            if (hwndToolbar != IntPtr.Zero)
            {
                _mHwnd = hwndToolbar;       //store to remember
                SubclassHWnd(hwndToolbar);  //subclass the wndproc
            }
        }
    }
    return true;
}
</pre>
<p><strong>Subclassing</strong></p>
<p>Now, as we have the window handle, the subclassing can be started:<br />
 <span id="more-888"></span></p>
<pre escaped="true" line="1" lang="csharp">private void SubclassHWnd(IntPtr hWnd)
{
    // hWnd is the window you want to subclass..., create a new
    // delegate for the new wndproc
    newWndProc = new Win32WndProc(MyWndProc);
    // subclass
    oldWndProc = SetWindowLong(hWnd, GWL_WNDPROC, newWndProc);
}
</pre>
<p>The installation of the &#8216;hook&#8217; is very simple. Just use SetWindowLong with the new window procedure. The old, original window procedure is saved for later use. We need it for example to call it for clicks outside the buttons and for all messages we don&#8217;t care about.</p>
<p>The &#8216;hook&#8217; or better the redirection will remain active until you install the old window procedure. So your device&#8217;s start and close button will not &#8216;work&#8217; as long as the hook is in place.</p>
<p><strong>The new window procedure</strong></p>
<pre escaped="true" line="1" lang="csharp">// this is the new wndproc, just show a messagebox on left button down:
private IntPtr MyWndProc(IntPtr hWnd, int msg, int wParam, int lParam)
{
    //is this a message for us?
    if (((msg == (int)WM_LBUTTONDOWN) || (msg == (int)WM_LBUTTONUP)) &amp;&amp; (this._mIsStartButtonDisabled || this._mIsCloseButtonDisabled) )
    {
        int x = ((int)lParam) &amp; 0xFFFF;
        int y = ((int)lParam) &gt;&gt; 16;

        bool isVGA;
        bool isQVGA;
        using (System.Windows.Forms.Control detector = new System.Windows.Forms.Control())
        {
            using (System.Drawing.Graphics gr = detector.CreateGraphics())
            {
                isVGA = gr.DpiY == 192;
                isQVGA = gr.DpiY == 96;
            }
        }

        RECT rect;
        GetWindowRect(hWnd, out rect); //get the rectangle of the menu_bar

        int width = Math.Max(rect.Left, rect.Right) - Math.Min(rect.Left, rect.Right);
        int height = Math.Max(rect.Bottom, rect.Top) - Math.Min(rect.Bottom, rect.Top);

        //width values are assumed
        int buttonWidth = (isQVGA | isVGA) ? 92 : 46;
        int buttonHeight = height; //(isQVGA | isVGA) ? 72 : 36;

        System.Drawing.Rectangle rectStartButton = new System.Drawing.Rectangle(0, 0, buttonWidth, buttonHeight);
        System.Drawing.Rectangle rectCloseButton = new System.Drawing.Rectangle(width - buttonWidth, 0, buttonWidth, buttonHeight);

        //check if enabled and click is inside the start or close button rectangle
        if(this._mIsStartButtonDisabled &amp;&amp; rectStartButton.Contains(x, y))
            return IntPtr.Zero;
        if (this._mIsCloseButtonDisabled &amp;&amp; rectCloseButton.Contains(x, y))
            return IntPtr.Zero;

        //if both are false, we have to provide the click to windows
        return CallWindowProc(oldWndProc, hWnd, msg, wParam, lParam);
    }
    else
        return CallWindowProc(oldWndProc, hWnd, msg, wParam, lParam);
}
</pre>
<p>Subclassing the window means that we redirect the window message procedure of the found window to our own, custom window procedure. This new procedure checks for WM_LBUTTONDOWN and WM_LBUTTONUP messages. Then the click position is checked and discarded if within the rectangle area of the Start and/or Close button. If the position is outside the calculated rectangles, the original window procedure is called.</p>
<p><strong>The demo code</strong></p>
<pre escaped="true" line="1" lang="csharp">public partial class StartButtonControl : Form
{
    StartButtonWM65.hwndutils _hwndutils = new StartButtonWM65.hwndutils();
    private bool _bInitializing = true;
    public StartButtonControl()
    {
        InitializeComponent();
        this.chkDisableStartButton.Checked = this._hwndutils.StartButtonDisabled;
        _bInitializing = false;
    }

    private void chkDisableStartButton_CheckStateChanged(object sender, EventArgs e)
    {
        if (_bInitializing)
            return;
        this._hwndutils.StartButtonDisabled = chkDisableStartButton.Checked;
    }

    private void mnuExit_Click(object sender, EventArgs e)
    {
        _hwndutils.Dispose();
        Application.Exit();
    }

    private void StartButtonControl_Closing(object sender, CancelEventArgs e)
    {
        _hwndutils.Dispose();
        Application.Exit();
    }

    private void chkCloseButton_CheckStateChanged(object sender, EventArgs e)
    {
        if (_bInitializing)
            return;
        this._hwndutils.CloseButtonDisabled = chkCloseButton.Checked;
    }
}
</pre>
<p>As you see, the usage of the class hwndutils is very simple. Dont forget to Dispose the hwndutils object before you exit your app.</p>
<p><strong>Downloads</strong><br />
 Visual Studion 2008 solution with demo project targeting Windows Mobile 6 SDK: <b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=128" title="Downloaded 831 times">StartButtonHookWM65 VS2008 source code and demo project</a> -  (Hits: 831, size: 18.53 kB)</p>
<p>Thanks to redwolf2222 for the great idea.</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%2F11%2F18%2Fmobile-development-disable-windows-mobile-6-5-start-and-close-button%2F&amp;title=Mobile+Development%3A+Disable+Windows+Mobile+6.5+Start+and+Close+Button" 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%2F11%2F18%2Fmobile-development-disable-windows-mobile-6-5-start-and-close-button%2F&amp;title=Mobile+Development%3A+Disable+Windows+Mobile+6.5+Start+and+Close+Button" 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%2F11%2F18%2Fmobile-development-disable-windows-mobile-6-5-start-and-close-button%2F&amp;title=Mobile+Development%3A+Disable+Windows+Mobile+6.5+Start+and+Close+Button" 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%2F11%2F18%2Fmobile-development-disable-windows-mobile-6-5-start-and-close-button%2F&amp;T=Mobile+Development%3A+Disable+Windows+Mobile+6.5+Start+and+Close+Button" 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%2F11%2F18%2Fmobile-development-disable-windows-mobile-6-5-start-and-close-button%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%2F11%2F18%2Fmobile-development-disable-windows-mobile-6-5-start-and-close-button%2F&amp;t=Mobile+Development%3A+Disable+Windows+Mobile+6.5+Start+and+Close+Button" 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/11/18/mobile-development-disable-windows-mobile-6-5-start-and-close-button/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Windows Mobile: Hide StartButton in WinMo 6.5.x</title>
		<link>http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows-mobile-hide-startbutton-in-winmo-6-5-x</link>
		<comments>http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 17:04:01 +0000</pubDate>
		<dc:creator>josef</dc:creator>
				<category><![CDATA[kiosk mode]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[6.5.3]]></category>
		<category><![CDATA[Done Button]]></category>
		<category><![CDATA[HHTaskbar]]></category>
		<category><![CDATA[MenuBar]]></category>
		<category><![CDATA[Softkey]]></category>
		<category><![CDATA[Start Button]]></category>
		<category><![CDATA[TextmodeEnabled]]></category>
		<category><![CDATA[TitleBar]]></category>
		<category><![CDATA[win-mobile-hide-menu-bar]]></category>
		<category><![CDATA[windows mobile]]></category>
		<category><![CDATA[windows-mobile-hide-close-button]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=820</guid>
		<description><![CDATA[Hide Start Button on Windows Mobile 6.5.3 using TextmodeEnabled.]]></description>
			<content:encoded><![CDATA[<p>Here is a very short tip based on a finding at xda-developers.com</p>
<p>For kiosk mode applications you dont want the user access the device settings or the start menu and all the programs and games accessible from there. One step to this kiosk mode is disabling the Start Button, the button that opens a menu to access programs and settings.</p>
<p>In versions of windows mobile before 6.5.3, you could disable access to the start button by subclassing HHTaskbar and discard clicks in the Start button area or simply disable the whole HHTaskbar window.</p>
<p>Now, with windows mobile 6.5.3 the start button is part of the menu bar and no longer part of the taskbar (which is now called MenuBar). To hide the start button on a windows Mobile 6.5.x device you can use following registry change:</p>
<pre>[HKEY_LOCAL_MACHINE\Software\Microsoft\Shell\BubbleTiles]
"TextModeEnabled"=dword:00000001
"HardwareStartKeyEnabled"=dword:00000001
"HardwareDoneKeyEnabled"=dword:00000001
</pre>
<p>With this change the &#8220;MenuBar&#8221; will no longer show the Start Button graphic nor the Done button, Windows Mobile will no longer decorate the menu texts . Only two menu entries will now show on bottom of the today screen.</p>
<p>TextModeEnabled switches the display of soft menu entries from the default graphic tiles display to a text only display as it was and is in windows mobile 6.1.</p>
<p>HardwareStartKeyEnabled controls the display of the Start button (the big windows start symbol on the left of the soft menu). If you change to enabled (0&#215;01) you dont get a start button and have to use a key on your keypad to launch the start screen!</p>
<p>HardwareDoneButton controls the display of the Done button at the right of the menu bar (the big (X)). When enabled, you have no chance to close apps that do not have an exit option in there menu, except you have a key on on your keyboard assigned to the Done function! Done now not only hides an app, with winmo 6.5 the app is closed and removed from memory now.</p>
<p><a rel="attachment wp-att-830" href="http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/winmo653textmodeenabled/"><img class="alignnone size-full wp-image-830" title="winmo653textmodeenabled" src="http://www.hjgode.de/wp/wp-content/uploads/2010/10/winmo653textmodeenabled.jpg" alt="" width="208" height="267" /></a> The Start entry at top left corner remains there but is only an indicator.</p>
<p><a rel="attachment wp-att-834" href="http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/textmodeenabled_2/"><img class="alignnone size-thumbnail wp-image-834" title="TextModeEnabled_2" src="http://www.hjgode.de/wp/wp-content/uploads/2010/10/TextModeEnabled_2-112x150.gif" alt="" width="146" height="195" /></a> <a rel="attachment wp-att-833" href="http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/textmodeenabled_3today-home/"><img class="alignnone size-thumbnail wp-image-833" title="TextModeEnabled_3today-home" src="http://www.hjgode.de/wp/wp-content/uploads/2010/10/TextModeEnabled_3today-home-112x150.gif" alt="" width="144" height="194" /></a> <a rel="attachment wp-att-835" href="http://www.hjgode.de/wp/2010/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/textmodeenabled_1/"><img class="alignnone size-thumbnail wp-image-835" title="TextModeEnabled_1" src="http://www.hjgode.de/wp/wp-content/uploads/2010/10/TextModeEnabled_1-112x150.gif" alt="" width="143" height="192" /></a></p>
<p>NO more Start Button, No more Done (X) Button</p>
<p><span id="more-820"></span>When you reboot the device, the change will be applied and you will see the Today screen with two menu shortcuts in the menubar at the bottom. On a prof. device this may be (Phone) and (Contacts). These buttons are also called SoftKeys and you can change there behaviour using the registry:</p>
<pre>[HKLM\Software\Microsoft\CHome\SK1URL]
                "Open"= &lt;handling app&gt;
[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Today\Keys\112]
                @="&lt;SK label&gt;"
                "Open"= &lt;handling app&gt;
</pre>
<p>(use SK2 for the second softkey)</p>
<p>So you may use these SoftKeys to enable the user to start your Kios application.</p>
<p>You should be aware of that if you dont have a key assigned to VK_LWIN (the Win key), you will never be able to switch to the Start Menu or now called Home Screen!</p>
<p>If an application is started and does not have a Exit menu, you will not be able to get back to the today screen. If you disable the TitleBar (HHTaskbar) you will also not be able to open any of the settings and informations available thru the TitleBar (ie battery status, clock settings, volume settings).</p>
<p>The TitleBar normally will get a &#8220;Start Menu&#8221; entry to the left. But with TextmodeEnabled=1 this will not be the case! So no way back to Today Screen and no way to get to the Start Menu with all the programs or the Home Screen.</p>
<p>Happy kiosk mode coding.</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%2F10%2F11%2Fwindows-mobile-hide-startbutton-in-winmo-6-5-x%2F&amp;title=Windows+Mobile%3A+Hide+StartButton+in+WinMo+6.5.x" 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%2F10%2F11%2Fwindows-mobile-hide-startbutton-in-winmo-6-5-x%2F&amp;title=Windows+Mobile%3A+Hide+StartButton+in+WinMo+6.5.x" 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%2F10%2F11%2Fwindows-mobile-hide-startbutton-in-winmo-6-5-x%2F&amp;title=Windows+Mobile%3A+Hide+StartButton+in+WinMo+6.5.x" 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%2F10%2F11%2Fwindows-mobile-hide-startbutton-in-winmo-6-5-x%2F&amp;T=Windows+Mobile%3A+Hide+StartButton+in+WinMo+6.5.x" 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%2F10%2F11%2Fwindows-mobile-hide-startbutton-in-winmo-6-5-x%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%2F10%2F11%2Fwindows-mobile-hide-startbutton-in-winmo-6-5-x%2F&amp;t=Windows+Mobile%3A+Hide+StartButton+in+WinMo+6.5.x" 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/10/11/windows-mobile-hide-startbutton-in-winmo-6-5-x/feed/</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
		<item>
		<title>Mobile Development: Yet another kiosk mode library</title>
		<link>http://www.hjgode.de/wp/2010/09/02/mobile-development-yet-another-kiosk-mode-library/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mobile-development-yet-another-kiosk-mode-library</link>
		<comments>http://www.hjgode.de/wp/2010/09/02/mobile-development-yet-another-kiosk-mode-library/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 08:40:38 +0000</pubDate>
		<dc:creator>josef</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[kiosk mode]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[block]]></category>
		<category><![CDATA[compact-framework-lockdown-mode]]></category>
		<category><![CDATA[DLL]]></category>
		<category><![CDATA[fullscreen]]></category>
		<category><![CDATA[HHTaskbar]]></category>
		<category><![CDATA[interop]]></category>
		<category><![CDATA[lock]]></category>
		<category><![CDATA[start menu]]></category>
		<category><![CDATA[subclass]]></category>
		<category><![CDATA[taskbar]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=752</guid>
		<description><![CDATA[How to disable StartMenu clicks and Win key for kiosk mode application using a library]]></description>
			<content:encoded><![CDATA[<p>Hello</p>
<p>here is another kiosk mode library. It supports disabling clicks/taps on start menu icon and opening the Windows Mobile start menu using the win key (VKLWIN). Additionally there is a function to disable the whole StartMenu bar and one to make a window fullscreen without Done and Close button (uses SHFullScreen).</p>
<p>The functions are implemented in a DLL, so you can easily use them from C/C++, the dot net compact framework (CSharp or VB.NET), Java and so on.</p>
<p>Here is a list of the functions exported by the DLL:</p>
<pre escaped="true" lang="c">void __stdcall LockStartMenu(); // this will install the hook (subclass the taskbar window)
void __stdcall UnlockStartMenu();   // this will unhook TaskbarWindowProc from taskbar
void __stdcall LockStartBar();  // this disables the whole taskbar
void __stdcall UnlockStartBar();    // this enables the taskbar window
bool __stdcall Lockdown(TCHAR*);    // this will make the application with the window title fullscreen etc
bool __stdcall Unlockdown();    // this will 'normalize' the fullscreen window
</pre>
<p>I have included a deno application in C and .NET</p>
<p><a rel="attachment wp-att-759" href="http://www.hjgode.de/wp/2010/09/02/mobile-development-yet-another-kiosk-mode-library/startlock1/"><img class="alignnone size-medium wp-image-759" title="StartLock1" src="http://www.hjgode.de/wp/wp-content/uploads/2010/09/StartLock1-225x300.gif" alt="" width="225" height="300" /></a> <a rel="attachment wp-att-760" href="http://www.hjgode.de/wp/2010/09/02/mobile-development-yet-another-kiosk-mode-library/startlock2/"><img class="alignnone size-medium wp-image-760" title="StartLock2" src="http://www.hjgode.de/wp/wp-content/uploads/2010/09/StartLock2-225x300.gif" alt="" width="225" height="300" /></a></p>
<p>The left shows normal window ce window and the right the same window after pressing the [Lockdown window].</p>
<p><span id="more-752"></span></p>
<h1>Usage and function</h1>
<h2>LockStartMenu and UnlockStartMenu</h2>
<p>To disable clicks on the StartMenu you use the function LockStartMenu(). This function subclasses (hooks) the HHTaskbar window procedure.</p>
<pre escaped="true" lang="c">void __stdcall LockStartMenu()
 {
   taskbarhWnd = FindWindow(TEXT("HHTaskBar"), NULL);
   if (taskbarhWnd != NULL)
   {
     WNDPROC p = TaskbarWindowProc;
     oldWindowProc = (WNDPROC)SetWindowLong(taskbarhWnd, GWL_WNDPROC, (long)p);
   }
 }
 </pre>
<p>Note about subclassing in windows<em><br />
 Subclassing a window means that your code gets executed on every message received by the original window. As you know, all windows have a central window procedure (wndproc). Every message to your window is going to this procedure. Normally you have a switch statement and case statements for the window messages you are interested to react on, like WM_CREATE, WM_PAINT, WM_LBUTTON, WM_KEYDOWN, WM_DESTROY etc. When you subclass a window, you install a new wndproc that is called before the original wndproc of the window. So you can manipulate things outside the original WndProc. You dont need the source code of the original window or application. Subclassing is used here to hook into the wndproc of HHTaskbar (the window class name of the window that is responsible for the windows mobile taskbar at the top of your screen).</em></p>
<p>The new window procedure checks the click coordinates for left button clicks (WM_LBUTTONDOWN). If the x and y values of the click location are within the height of the taskbar and up to 2/3 of the screen width, the click is not forwarded to the taskbar window. So HHTaskbar does not get notified about the click and will not open the StartMenu.</p>
<pre escaped="true" lang="c">LRESULT CALLBACK TaskbarWindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 {
  if (message == WM_LBUTTONDOWN)
     {
        POINTS pts;
        pts.x = LOWORD(lParam);
        pts.y = HIWORD(lParam);

        //the hot area of the StartMenu extends with the length of the current window title text
        //we get the actual screen width and then assume half the width as hot area
        int screenwidth = GetSystemMetrics(SM_CXSCREEN);
        if(screenwidth!=0)
           MAX_START_X = (int)(screenwidth * 2 / 3);
        if (pts.y &lt; MAX_START_Y &amp;&amp; pts.x &lt;)
                       return TRUE;
     }
  ...
 </pre>
<p>The new Taskbar window procedure also checks, if the user has pressed the Win key. The win key (VK_LWIN) would bring up the start menu too. The function TaskbarWindowProc therefor also checks for key messages and filters the VKLWIN keypress. So the user is not able to invoke the start menu by pressing the win key.</p>
<pre escaped="true" lang="c">...
    if (message == WM_KEYDOWN &amp;&amp; wParam == VK_LWIN &amp;&amp; lParam == 1)
       return TRUE;
   return CallWindowProc(oldWindowProc, hWnd, message, wParam, lParam);
}
 </pre>
<p>Messages that are not filtered are forwarded to the original window procedure of HHTaskbar.</p>
<p>Why not just disable the whole taskbar? This is for applications that will not lock you down completely. If you disable the whole taskbar (see also LockStartBar()), you will not be able to click the connection, volume and close symbols on the taskbar.</p>
<p>Here is a screen shot of the .NET demo app with a long title. Only the area inside the red rectangle is blocked. The remainder of the taskbar is clickable.</p>
<p><a rel="attachment wp-att-763" href="http://www.hjgode.de/wp/2010/09/02/mobile-development-yet-another-kiosk-mode-library/longtitle_/"><img class="alignnone size-medium wp-image-763" title="LongTitle_" src="http://www.hjgode.de/wp/wp-content/uploads/2010/09/LongTitle_-225x300.png" alt="" width="225" height="300" /></a></p>
<p>As you see with the DotNet demo app, you can lock the user from opening the startmenu, but you can launch an external app (like the calculator) and the startmenu is still blocked. In the external app, the user can still click the (X) to close (hide) the app and is back in our kiosk application demo.</p>
<p>The second function UnlockStartMenu() will restore the original WndProc of HHTaskbar and &#8216;unhook&#8217; our window procedure. So the start menu will then work as usual.</p>
<pre escaped="true" lang="c">void __stdcall UnlockStartMenu()
{
 if(bStartmenuLocked){
   if (oldWindowProc!=NULL)
      oldWindowProc = (WNDPROC)SetWindowLong(taskbarhWnd, GWL_WNDPROC, (long)oldWindowProc);
   oldWindowProc = NULL;
   bStartmenuLocked=false;
 }
}
</pre>
<p>This function will restore the original window procedure and unhooks our new wndpro. So HHTaskbar should then behave like normally.</p>
<h2>LockStartBar and UnlockStartBar</h2>
<p>The second pair of the DLL functions is called LockStartBar() and UnLockStartBar(). The first one looks for the window with the class name HHTaskbar and will then disable the window. Disabling a window prevents the window procedure from getting any more window messages. So HHTaskbar will not receive any click as long as the window is disabled.</p>
<pre escaped="true" lang="c">void __stdcall LockStartBar()
{
 //Disable the whole HHTaskbar window
 if(!bStartbarLocked){
   taskbarhWnd = FindWindow(TEXT("HHTaskBar"), NULL);  
   if (taskbarhWnd != NULL)
   {
     EnableWindow(taskbarhWnd, false);
     bStartbarLocked=true;
   }
 }
}
</pre>
<p>This function and the UnlockStarBar() function are very simple.</p>
<pre escaped="true" lang="c">void __stdcall UnlockStartBar()
{
 if (bStartbarLocked)
 {
   taskbarhWnd = FindWindow(TEXT("HHTaskBar"), NULL);  
   if (taskbarhWnd != NULL)
   {
     EnableWindow(taskbarhWnd, true);
     bStartbarLocked=false;
   }
 }
}
</pre>
<p>But as some .NET and JAVA and other non-native programming languages don&#8217;t have the essential windows functions like FindWindow etc, I have included these functions in the DLL for easy use.</p>
<h2>LockDown(window title) and UnLockDown()</h2>
<p>The last pair  of functions is using a combination of kiosk mode techniques I am aware of: LockDown(TCHAR*) and UnLockDown().</p>
<pre escaped="true" lang="c">bool __stdcall Lockdown(TCHAR *windowText)
{
 // If the application is already locked down, don't attempt to lock it down again.
 if (hWndLockdown)
   return TRUE;
 if(!bLockedDown){
   HWND hWnd = 0;
   TCHAR *str;
   str = (TCHAR*) malloc( MAX_PATH * sizeof(TCHAR));  
   wcscpy (str, windowText);
   if ((!str) || (wcslen(str) &lt;= 0))
     hWnd = FindRootWindowByFocus();
   else
     hWnd = FindRootWindowByName(str);
   if (!hWnd)
     return FALSE;
   free(str);
   SetForegroundWindow(hWnd);     // Required before SHFullScreen Calls
   SHDoneButton(hWnd, SHDB_HIDE);
   SHFullScreen(hWnd, SHFS_HIDESTARTICON|SHFS_HIDETASKBAR|SHFS_HIDESIPBUTTON);
   MoveWindow(hWnd, 0,0, 240,320, TRUE);  // Expand to use the entire screen 

   hWndLockdown = hWnd;
   LockStartMenu();
   bLockedDown=true;
 }
 return TRUE;
}
</pre>
<p>First the function tests, if the lockdown for the window with the given title text was already done. If not, it searches the window handle of a window with the title specified. If a window is found, it will be set to the foreground and then the MS API calls to make a window fullscreen are invoked for the window handle. The window is also made fullscreen (with currently hardcoded screen dimensions, change this, if you need) and our LockStartMenu function is called.</p>
<p>The last function in our list tries to revert the function of  LockDown and tries to restore the window to a normal state.</p>
<p>Why did I wrote these two LockDown functions? They make it very easy for DotNet and JAVA programmers to make there windows mobile application a fullscreen kiosk mode application by just calling LockDown(window title) with the title of the window to make fullscreen.</p>
<pre escaped="true" lang="csharp">private void btn_LockDown_Click(object sender, EventArgs e)
 {
 string title = this.Text;
 if (!_bFullScreen)
 {
   StartLock.Lockdown(title);
   _bFullScreen = true;
   label1.Text = "Form made fullscreen";
 }
 else
   {
     label1.Text = "Form was already fullscreen";
   }
 }
</pre>
<p><em>(See also the video at <a href="http://community.intermec.com/t5/General-Development-Developer/disappear-or-block-start-menu-in-all-of-application/m-p/4695#M2591" target="_blank">community.intermec.com</a>.)</em></p>
<p>Doing fullscreen from Win32 native C is much easier than writing all the PInvokes you needed to get the same result.</p>
<h2>Downloads</h2>
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=115" title="Downloaded 566 times">DotNet LockDown Demo Application</a> - A demo showing the use of the StartLock DLL functions. (Hits: 566, size: 47.77 kB)
<p><br class="spacer_" /></p>
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=116" title="Downloaded 486 times">StartLock DLL source code and demo app (embedded visual c++ 4.0)</a> - The StartLock DLL and a demo application written in embedded visual c++ 4.0 (Hits: 486, size: 143.84 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%2F09%2F02%2Fmobile-development-yet-another-kiosk-mode-library%2F&amp;title=Mobile+Development%3A+Yet+another+kiosk+mode+library" 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%2F09%2F02%2Fmobile-development-yet-another-kiosk-mode-library%2F&amp;title=Mobile+Development%3A+Yet+another+kiosk+mode+library" 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%2F09%2F02%2Fmobile-development-yet-another-kiosk-mode-library%2F&amp;title=Mobile+Development%3A+Yet+another+kiosk+mode+library" 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%2F09%2F02%2Fmobile-development-yet-another-kiosk-mode-library%2F&amp;T=Mobile+Development%3A+Yet+another+kiosk+mode+library" 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%2F09%2F02%2Fmobile-development-yet-another-kiosk-mode-library%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%2F09%2F02%2Fmobile-development-yet-another-kiosk-mode-library%2F&amp;t=Mobile+Development%3A+Yet+another+kiosk+mode+library" 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/09/02/mobile-development-yet-another-kiosk-mode-library/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Blacklist Applications to disable use</title>
		<link>http://www.hjgode.de/wp/2010/03/27/blacklist-applications-to-disable-use/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=blacklist-applications-to-disable-use</link>
		<comments>http://www.hjgode.de/wp/2010/03/27/blacklist-applications-to-disable-use/#comments</comments>
		<pubDate>Sat, 27 Mar 2010 05:18:58 +0000</pubDate>
		<dc:creator>josef</dc:creator>
				<category><![CDATA[kiosk mode]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[blacklist]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=470</guid>
		<description><![CDATA[Use a blacklist to disable use of applications like games]]></description>
			<content:encoded><![CDATA[<p><strong>Disable some applications like games, from being started by a user</strong></p>
<pre>REGEDIT4

;Enable blacklist of applications that should not run
[HKEY_LOCAL_MACHINE\Security\Policies\Shell]
"DisallowRun"=dword:1

;Add entries to blacklist of applications that should not run
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\DisallowRun]
"1"="fexplore.exe"
"2"="iexplore.exe"</pre>
<p>Did you know you can also &#8216;disable&#8217; use of apps by just overwriting them?</p>
<p>Although most WM files are in ROM and so you can normally not overwrite them. You can still copy a file with the same namen on top of the existing file. You have to use Total Command CE or another non-MS tool to be able to do so.</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%2F03%2F27%2Fblacklist-applications-to-disable-use%2F&amp;title=Blacklist+Applications+to+disable+use" 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%2F03%2F27%2Fblacklist-applications-to-disable-use%2F&amp;title=Blacklist+Applications+to+disable+use" 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%2F03%2F27%2Fblacklist-applications-to-disable-use%2F&amp;title=Blacklist+Applications+to+disable+use" 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%2F03%2F27%2Fblacklist-applications-to-disable-use%2F&amp;T=Blacklist+Applications+to+disable+use" 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%2F03%2F27%2Fblacklist-applications-to-disable-use%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%2F03%2F27%2Fblacklist-applications-to-disable-use%2F&amp;t=Blacklist+Applications+to+disable+use" 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/03/27/blacklist-applications-to-disable-use/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Full Screen Engine to make Compact Framework applications fullscreen</title>
		<link>http://www.hjgode.de/wp/2010/03/18/full-screen-engine-to-make-compact-framework-applications-fullscreen/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=full-screen-engine-to-make-compact-framework-applications-fullscreen</link>
		<comments>http://www.hjgode.de/wp/2010/03/18/full-screen-engine-to-make-compact-framework-applications-fullscreen/#comments</comments>
		<pubDate>Thu, 18 Mar 2010 13:43:50 +0000</pubDate>
		<dc:creator>josef</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Keyboard]]></category>
		<category><![CDATA[kiosk mode]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Compact Framework]]></category>
		<category><![CDATA[fullscreen]]></category>
		<category><![CDATA[GXOpenInput]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=456</guid>
		<description><![CDATA[A class to make a Windows Mobile compact framework forms fullscreen. Includes code to catch all keys (no more working softkeys)]]></description>
			<content:encoded><![CDATA[<p>Here is my approach to make a compact framework form fullscreen:</p>
<p>A class that enables you to</p>
<ul>
<li>lock/unlock the taskbar</li>
<li>hide/show the taskbar and resize form to occupy the whole screen</li>
<li>hide the menu bar but show/hide SIP</li>
<li>disables OS to capture Function keys like F6/F7 for Volume Up/Down etc and makes these keys available to be used in your app. Also the use of the WinKey does not open the Start Menu</li>
</ul>
<p><a rel="attachment wp-att-457" href="http://www.hjgode.de/wp/2010/03/18/full-screen-engine-to-make-compact-framework-applications-fullscreen/fullscreencstest/"><img class="alignnone size-full wp-image-457" title="fullscreenCStest" src="http://www.hjgode.de/wp/wp-content/uploads/2010/03/fullscreenCStest.gif" alt="" width="240" height="320" /></a></p>
<p>(You are right, you dont see &#8216;fullscreen&#8217; in the screen shot, BUT the taskbar is locked!)</p>
<p><span id="more-456"></span></p>
<pre lang="csharp">using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace myApp{
    class fullScreen
    {
        #region DllImports
        ///
        /// FindWindow will find a window by specifying the WndClass or the Caption
        ///
        ///

        ///

        /// an intPtr to the found window or null, if not found
        [DllImport("coredll.dll")]
        extern private static IntPtr FindWindowW(string lpClassName, string lpWindowName);

        ///
        /// we need this to get the size of the screen
        ///
        ///

        ///
        [DllImport("coredll.dll")]
        extern private static int GetSystemMetrics(int nIndex);
        ///
        /// the used nIndex values for screen width and height
        ///
        private const int SM_CXSCREEN = 0;
        private const int SM_CYSCREEN = 1;

        ///
        /// query a window for his state
        ///
        ///

        /// true if window is visible
        [DllImport("coredll.dll")]
        static extern bool IsWindowVisible(IntPtr hWnd);

        #endregion
        ///
        /// function to modify the window state of a window
        ///
        /// handle to the window
        /// the required window state
        ///
        [DllImport("coredll.dll")]
        static extern bool ShowWindow(IntPtr hWnd, uint nCmdShow);

        #region WStyles
        /// Enumeration of the different ways of showing a window using
        /// ShowWindow
        private enum WindowShowStyle : uint
        {
            /// Hides the window and activates another window.
            /// See SW_HIDE
            Hide = 0,
            /// Activates and displays a window. If the window is minimized
            /// or maximized, the system restores it to its original size and
            /// position. An application should specify this flag when displaying
            /// the window for the first time.
            /// See SW_SHOWNORMAL
            ShowNormal = 1,
            /// Activates the window and displays it as a minimized window.
            /// See SW_SHOWMINIMIZED
            ShowMinimized = 2,
            /// Activates the window and displays it as a maximized window.
            /// See SW_SHOWMAXIMIZED
            ShowMaximized = 3,
            /// Maximizes the specified window.
            /// See SW_MAXIMIZE
            Maximize = 3,
            /// Displays a window in its most recent size and position.
            /// This value is similar to "ShowNormal", except the window is not
            /// actived.
            /// See SW_SHOWNOACTIVATE
            ShowNormalNoActivate = 4,
            /// Activates the window and displays it in its current size
            /// and position.
            /// See SW_SHOW
            Show = 5,
            /// Minimizes the specified window and activates the next
            /// top-level window in the Z order.
            /// See SW_MINIMIZE
            Minimize = 6,
            /// Displays the window as a minimized window. This value is
            /// similar to "ShowMinimized", except the window is not activated.
            /// See SW_SHOWMINNOACTIVE
            ShowMinNoActivate = 7,
            /// Displays the window in its current size and position. This
            /// value is similar to "Show", except the window is not activated.
            /// See SW_SHOWNA
            ShowNoActivate = 8,
            /// Activates and displays the window. If the window is
            /// minimized or maximized, the system restores it to its original size
            /// and position. An application should specify this flag when restoring
            /// a minimized window.
            /// See SW_RESTORE
            Restore = 9,
            /// Sets the show state based on the SW_ value specified in the
            /// STARTUPINFO structure passed to the CreateProcess function by the
            /// program that started the application.
            /// See SW_SHOWDEFAULT
            ShowDefault = 10,
            /// Windows 2000/XP: Minimizes a window, even if the thread
            /// that owns the window is hung. This flag should only be used when
            /// minimizing windows from a different thread.
            /// See SW_FORCEMINIMIZE
            ForceMinimized = 11
        }
        #endregion
#region private vars
        private int m_width = 240;
        private int m_height = 320;
        private bool m_SIP_shown = false;
#endregion
        ///
        /// class instantiation
        /// store the screen size
        ///
        public fullScreen()
        {
            m_width = GetSystemMetrics(SM_CXSCREEN);
            m_height = GetSystemMetrics(SM_CYSCREEN);
            //Find SipWndClass
            IntPtr hWndSipWndClass = IntPtr.Zero;
            hWndSipWndClass = FindWindowW("SipWndClass", null);
            if (hWndSipWndClass != IntPtr.Zero)
            {
                m_SIP_shown = IsWindowVisible(hWndSipWndClass);
            }
            GXopen();
        }
        ///
        /// this will open the GX API and all keystrokes, even the softkeys as Vol_Up, Win etc will not be handled by the OS
        /// the gx.dll is only available on Windows Mobile OS, not on WinCE OS devices
        /// The GX class has been ousourced and will only be loaded in gx.dll exists
        /// otherwise you will get missing DLL exceptions
        ///
        private void GXopen(){
            if (System.IO.File.Exists(@"\Windows\gx.dll"))
            {
                GX_WM gxwm = new GX_WM();
                gxwm.GXopen();
            }
        }

        ///
        /// deinit GX API and let wiondows handle the 'softkeys'
        ///
        private void GXclose()
        {
            if (System.IO.File.Exists(@"\Windows\gx.dll"))
            {
                GX_WM gxwm = new GX_WM();
                gxwm.GXopen();
            }
        }
        ///
        /// public vars to get the screen size
        ///
        public int width
        {
            get
            {
                return m_width;
            }
        }
        public int height
        {
            get
            {
                return m_height;
            }
        }
        ///
        /// will enlarge the form to cover the full screen
        /// the taskbar will be hidden
        /// the SIP will be hidden
        ///
        /// the form to make fullscreen
        public void makeFullScreen(System.Windows.Forms.Form f)
        {
            f.Width = m_width;
            f.Height = m_height;
            f.Top = 0; f.Left = 0; // move the form to upper left
            hideTaskBar(true); //hide the taskbar
            showSIP(false); //hide the SIP window, regardless of it is shown or not
        }

        ///
        /// restore previous screen settings
        ///
        public void Unload()
        {
            hideTaskBar(false);
            if (m_SIP_shown)
                showSIP(true);
        }

        ///
        /// Hide or show the SIP
        ///
        ///

        public void showSIP(bool bShow)
        {
            //Find SipWndClass
            IntPtr hWndSipWndClass = IntPtr.Zero;
            hWndSipWndClass = FindWindowW("SipWndClass", null);
            if (hWndSipWndClass != IntPtr.Zero)
            {
                if (bShow)
                    ShowWindow(hWndSipWndClass, (uint)WindowShowStyle.ShowNormal);
                else
                    ShowWindow(hWndSipWndClass, (uint)WindowShowStyle.Minimize);
            }
        }

        ///
        /// Hide or show the TaskBar
        ///
        ///

        ///
        private int hideTaskBar(bool mode)
        {
            IntPtr hWndTaskBar = IntPtr.Zero;
            if (mode)
            {
                hWndTaskBar = FindWindowW("HHTaskBar", null);
                if (hWndTaskBar != IntPtr.Zero)
                    ShowWindow(hWndTaskBar, (uint)WindowShowStyle.Hide);
            }
            else
            {
                hWndTaskBar = FindWindowW("HHTaskBar", null);
                if (hWndTaskBar != IntPtr.Zero)
                    ShowWindow(hWndTaskBar, (uint)WindowShowStyle.ShowNormal);
            }
            return 0;
        }

    }
}</pre>
<p>The GX_WM class:</p>
<pre lang="csharp">using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices; 

namespace myApp
{
	class GX_WM {
		//nice mangled names
		//?GXCloseInput@@YAHXZ or use "#3"
		[DllImport("gx.dll", EntryPoint="?GXCloseInput@@YAHXZ")]
		extern private static Int16 GXOpenInput();
		//?GXOpenInput@@YAHXZ or use "#9"
		[DllImport("gx.dll", EntryPoint="?GXOpenInput@@YAHXZ")]
		extern private static Int16 GXCloseInput(); 

		public void GXopen(){
			GXOpenInput();
			System.Diagnostics.Debug.WriteLine("GXOpenInput()");
		}
		public void GXclose() {
			GXCloseInput();
			System.Diagnostics.Debug.WriteLine("GXCloseInput()");
		}
	}
}
</pre>
<p>To use the classes in your code, declare a new fullScreen object at a central point of your app. For example in Program.cs:</p>
<pre lang="csharp">        public static fullScreen fse;</pre>
<p>The declaration is static to enable you to use this object in all forms of your app. Then before your Run statement place the initialisation of the fullScreen object. At the end of your app, it is a good way to unload the object, so it may restore the taskbar and SIP status.</p>
<pre lang="csharp">static class Program
    {
        ///
        /// The main entry point for the application.
        ///
        public static fullScreen fse;
        [MTAThread]
        static void Main()
        {
            try
            {
                fse = new fullScreen();
                Application.Run(new MyAppForm());
            }
            catch (Exception ex)
            {
                MessageBox.Show("Sorry: " + ex.Message);
            }
            fse.Unload();
        }
    }
</pre>
<p>Now in every form you have, place the line:</p>
<pre lang="csharp">Program.fse.makeFullScreen(this);</pre>
<p>in the _Load event or &#8211; as I do &#8211; in the form constructor after the line &#8220;InitializeComponent();&#8221;</p>
<pre escaped="true" lang="csharp">public myAppForm() {
    if (!InitApp())
        AppShutdown();
    InitializeComponent();
    <strong>Program.fse.makeFullScreen(this);</strong>
}</pre>
<p>If you need to show the SIP, use</p>
<pre>Program.fse.showSIP(true); </pre>
<p>If you want to have a real fullscreen app without a title bar, dont forget to set the borderstyle of your form to None. You can also change the makeFullScreen function and do this for the form given in the argument.</p>
<p>Any comments or enhancements?</p>
<p>Have fun</p>
<p>PS: Key catching works fine in C# with the fullscreen class (either using GXOpenInput() or AllKeys()), see attached c# sample.</p>
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=87" title="Downloaded 802 times">FullScreenCStest</a> -  (Hits: 802, size: 44.66 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%2F03%2F18%2Ffull-screen-engine-to-make-compact-framework-applications-fullscreen%2F&amp;title=Full+Screen+Engine+to+make+Compact+Framework+applications+fullscreen" 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%2F03%2F18%2Ffull-screen-engine-to-make-compact-framework-applications-fullscreen%2F&amp;title=Full+Screen+Engine+to+make+Compact+Framework+applications+fullscreen" 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%2F03%2F18%2Ffull-screen-engine-to-make-compact-framework-applications-fullscreen%2F&amp;title=Full+Screen+Engine+to+make+Compact+Framework+applications+fullscreen" 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%2F03%2F18%2Ffull-screen-engine-to-make-compact-framework-applications-fullscreen%2F&amp;T=Full+Screen+Engine+to+make+Compact+Framework+applications+fullscreen" 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%2F03%2F18%2Ffull-screen-engine-to-make-compact-framework-applications-fullscreen%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%2F03%2F18%2Ffull-screen-engine-to-make-compact-framework-applications-fullscreen%2F&amp;t=Full+Screen+Engine+to+make+Compact+Framework+applications+fullscreen" 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/03/18/full-screen-engine-to-make-compact-framework-applications-fullscreen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Today Screen: Change Softkeys</title>
		<link>http://www.hjgode.de/wp/2010/03/17/windows-today-screen-change-softkeys/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows-today-screen-change-softkeys</link>
		<comments>http://www.hjgode.de/wp/2010/03/17/windows-today-screen-change-softkeys/#comments</comments>
		<pubDate>Wed, 17 Mar 2010 14:34:51 +0000</pubDate>
		<dc:creator>josef</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[kiosk mode]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[SoftKeys]]></category>
		<category><![CDATA[Today Screen]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=441</guid>
		<description><![CDATA[WM change today screen softkeys]]></description>
			<content:encoded><![CDATA[<p>One more small tip:</p>
<p>to change the today screen softkeys, simply change the following registry keys:</p>
<blockquote><p>REGEDIT4</p>
<p>[HKEY_CURRENT_USER\Software\Microsoft\Today\Keys]</p>
<p>[HKEY_CURRENT_USER\Software\Microsoft\Today\Keys\112]<br />
 @=&#8221;Pocket Excel&#8221;<br />
 &#8220;Open&#8221;=&#8221;\\Windows\\pxl.exe&#8221;</p>
<p>[HKEY_CURRENT_USER\Software\Microsoft\Today\Keys\113]<br />
 @=&#8221;PocketWord&#8221;<br />
 &#8220;Open&#8221;=&#8221;\\Windows\\pword.exe&#8221;</p>
</blockquote>
<!-- 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%2F03%2F17%2Fwindows-today-screen-change-softkeys%2F&amp;title=Windows+Today+Screen%3A+Change+Softkeys" 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%2F03%2F17%2Fwindows-today-screen-change-softkeys%2F&amp;title=Windows+Today+Screen%3A+Change+Softkeys" 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%2F03%2F17%2Fwindows-today-screen-change-softkeys%2F&amp;title=Windows+Today+Screen%3A+Change+Softkeys" 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%2F03%2F17%2Fwindows-today-screen-change-softkeys%2F&amp;T=Windows+Today+Screen%3A+Change+Softkeys" 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%2F03%2F17%2Fwindows-today-screen-change-softkeys%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%2F03%2F17%2Fwindows-today-screen-change-softkeys%2F&amp;t=Windows+Today+Screen%3A+Change+Softkeys" 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/03/17/windows-today-screen-change-softkeys/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Today Screen: Disable Screen</title>
		<link>http://www.hjgode.de/wp/2010/03/16/windows-today-screen-disable-screen/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=windows-today-screen-disable-screen</link>
		<comments>http://www.hjgode.de/wp/2010/03/16/windows-today-screen-disable-screen/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 16:45:01 +0000</pubDate>
		<dc:creator>josef</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[kiosk mode]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[disable]]></category>
		<category><![CDATA[Today Screen]]></category>
		<category><![CDATA[windows mobile]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=437</guid>
		<description><![CDATA[WM disable today screen all over]]></description>
			<content:encoded><![CDATA[<p>One more small tip:</p>
<p>to disable the today screen and prohibit a user from starting anything from there, simply change the following registry keys:</p>
<blockquote><p>REGEDIT4<br />
 [HKEY_LOCAL_MACHINE\Software\Microsoft\Today]<br />
 &#8220;Enabled&#8221;=dword:00000001</p>
</blockquote>
<p>change this to</p>
<blockquote><p>REGEDIT4<br />
 [HKEY_LOCAL_MACHINE\Software\Microsoft\Today]<br />
 &#8220;Enabled&#8221;=dword:00000000</p>
</blockquote>
<p>But be warned, the today screen will not refresh and so the background will not refresh. If you leave (minimize) an app, the screen may partially not refresh.</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%2F03%2F16%2Fwindows-today-screen-disable-screen%2F&amp;title=Windows+Today+Screen%3A+Disable+Screen" 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%2F03%2F16%2Fwindows-today-screen-disable-screen%2F&amp;title=Windows+Today+Screen%3A+Disable+Screen" 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%2F03%2F16%2Fwindows-today-screen-disable-screen%2F&amp;title=Windows+Today+Screen%3A+Disable+Screen" 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%2F03%2F16%2Fwindows-today-screen-disable-screen%2F&amp;T=Windows+Today+Screen%3A+Disable+Screen" 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%2F03%2F16%2Fwindows-today-screen-disable-screen%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%2F03%2F16%2Fwindows-today-screen-disable-screen%2F&amp;t=Windows+Today+Screen%3A+Disable+Screen" 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/03/16/windows-today-screen-disable-screen/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 421 times">FuncKeys</a> - Control the function of Function Keys on Windows Mobile devices (embedded Visual C++ 4.0 Source included) (Hits: 421, 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 275 times">FuncKey ArmV4i installer cab</a> -  (Hits: 275, 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>KeyTest3AK &#8211; a tool to look at keyboard codes</title>
		<link>http://www.hjgode.de/wp/2009/05/11/keytest3ak-a-tool-to-look-at-keyboard-codes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=keytest3ak-a-tool-to-look-at-keyboard-codes</link>
		<comments>http://www.hjgode.de/wp/2009/05/11/keytest3ak-a-tool-to-look-at-keyboard-codes/#comments</comments>
		<pubDate>Mon, 11 May 2009 13:55:15 +0000</pubDate>
		<dc:creator>hjgode</dc:creator>
				<category><![CDATA[CodeProject]]></category>
		<category><![CDATA[Keyboard]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[AllKeys]]></category>
		<category><![CDATA[GXOpenInput]]></category>
		<category><![CDATA[KeyTest]]></category>
		<category><![CDATA[kiosk mode]]></category>
		<category><![CDATA[RegisterHotKeys()]]></category>
		<category><![CDATA[source]]></category>
		<category><![CDATA[UnregisterFunc1]]></category>
		<category><![CDATA[WM_KEYDOWN]]></category>

		<guid isPermaLink="false">http://www.hjgode.de/wp/?p=29</guid>
		<description><![CDATA[usage and results of GXOpenInput(), RegisterHotKeys(), UnregisterFunc1 and AllKeys()]]></description>
			<content:encoded><![CDATA[<p>Updated 7. june 2010: added source code and binaries for KeyTest3AK with prechecked WM_KEYDOWN, WM_KEY_UP, WM_CHAR and option to save a log.</p>
<b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=101" title="Downloaded 284 times">KeyTest3AK (evc4 source, with logging option, bin for ArmV4 and ArmV4i)</a> -  (Hits: 284, size: 239.32 KB)
<p><a rel="attachment wp-att-615" href="http://www.hjgode.de/wp/2009/05/11/keytest3ak-a-tool-to-look-at-keyboard-codes/screenshot_keytest3ak/"><img class="alignnone size-full wp-image-615" title="screenshot_keytest3ak" src="http://www.hjgode.de/wp/wp-content/uploads/2009/05/screenshot_keytest3ak.gif" alt="" width="240" height="320" /></a></p>
<p>============================================================================</p>
<p>I just finished my KeyTest3AK. You can take alook at what keycodes produced by the keys on your handheld. Additionally there are options to test what happens, if you use GXOpenInput(), RegisterHotKeys(), UnregisterFunc1 and AllKeys().</p>
<p><br class="spacer_" /></p>
<p><span id="more-29"></span>After you started the app, simply press the keys to see the codes they produce.</p>
<p>Download source code and the executables <b>DOWNLOAD:</b><a href="http://www.hjgode.de/wp/wp-content/plugins/download-monitor/download.php?id=2" title="Downloaded 421 times">KeyTest3AK</a> - As imple keycode viewer.
Embedded Visual C++ 4.0 workspace
Uses GXOpenInput(), GXCloseInput(), AllKeys(), RegisterHotKey() and UnregisterFunc1() (Hits: 421, size: 236.17 KB)</p>
<p>Here is MS answer on <a href="http://blogs.msdn.com/windowsmobile/archive/2009/05/14/twisted-pixels-4-a-button-mashers-guide-to-input.aspx" target="_blank">KeyTest</a>: http://blogs.msdn.com/windowsmobile/archive/2009/05/14/twisted-pixels-4-a-button-mashers-guide-to-input.aspx. The MS blog has all the background on KeyInput but looks like a clone of keytest3ak</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%2F11%2Fkeytest3ak-a-tool-to-look-at-keyboard-codes%2F&amp;title=KeyTest3AK+%26%238211%3B+a+tool+to+look+at+keyboard+codes" 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%2F11%2Fkeytest3ak-a-tool-to-look-at-keyboard-codes%2F&amp;title=KeyTest3AK+%26%238211%3B+a+tool+to+look+at+keyboard+codes" 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%2F11%2Fkeytest3ak-a-tool-to-look-at-keyboard-codes%2F&amp;title=KeyTest3AK+%26%238211%3B+a+tool+to+look+at+keyboard+codes" 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%2F11%2Fkeytest3ak-a-tool-to-look-at-keyboard-codes%2F&amp;T=KeyTest3AK+%26%238211%3B+a+tool+to+look+at+keyboard+codes" 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%2F11%2Fkeytest3ak-a-tool-to-look-at-keyboard-codes%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%2F11%2Fkeytest3ak-a-tool-to-look-at-keyboard-codes%2F&amp;t=KeyTest3AK+%26%238211%3B+a+tool+to+look+at+keyboard+codes" 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/11/keytest3ak-a-tool-to-look-at-keyboard-codes/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

