Introduction
This article basically provides functionality for a Compact Framework based handheld device task bar to be enabled or disabled.
Background
The Compact Framework does not directly support disabling or enabling the task bar in devices. So, I used Platform Invoke (P/Invoke). Just copy and paste this code in your project, and pass the two arguments depending on what you want to do with the task bar.
Using the code
using System;
using System.Text;
using System.Runtime.InteropServices;
namespace PPC.Common
{
public class LockTaskBar
{
[DllImport("CoreDll.dll", SetLastError = true)]
public static extern IntPtr FindWindow(string className, string WindowsName);
[DllImport("coredll.dll", EntryPoint = "EnableWindow")]
public static extern bool EnableWindow(IntPtr hwnd, bool bEnable);
public static bool Execute(string HHTaskBar,bool enabled)
{
bool IsState = false;
try
{
IntPtr hwnd = FindWindow(HHTaskBar, null);
if (!hwnd.Equals(IntPtr.Zero))
{
if (enabled)
{
IsState = EnableWindow(hwnd, false);
}
else
{
IsState =EnableWindow(hwnd, true);
}
}
}
catch (DllNotFoundException dllex)
{
throw dllex;
}
catch (Exception ex)
{
throw ex;
}
return IsState;
}
}
}
Just copy and paste the code in your project, and call the Execute
method passing the window handle string HHTaskBar
. If you want to disable the Start menu, pass true
, otherwise pass false
.
History
- First version: 01/01/2008.