¿Como deshabilitar el Task Bar de PocketPC?
Ejemplo de como podemos ocultar y/o deshabilitar la barra y el botón de inicio de un sistema operativo Mobile.

Fecha: 10/Nov/2004 (09 de Noviembre del 2004)
Autor: José Miguel Torres (jtorres_diaz@terra.es)

 

 


Sistemas Operativos utilizados

Microsoft Windows Mobile 2002, Windows Mobile 2003, Windows Mobile 2003 Second Edition, Windows Mobile CE Phone Edition, Windows CE .NET 4.20

Código

He aquí una manera de deshabilitar/habilitar el task Bar (incluido el botón Menú Inicio) de Pocket PC. Para ello se utilizan una serie de librerías del API de Win CE que posibilitan dicha acción, veamos un ejemplo.

………………………………

/// API de WinCE

[DllImport("Coredll")]

public extern static IntPtr FindWindow(

string lpClassName, string lpWindowName);

[DllImport("coredll.dll")]

public extern static bool EnableWindow(

IntPtr hwnd, bool bEnable);

 

// Función que ret True / False si la deshabilitación

// se llevó a cabo

// NOTA: en bool enable indicamos si deseamos o no habilitar

public static bool habilitarTaskBar(bool enable)

{

IntPtr hwnd;

hwnd = FindWindow("HHTaskBar","");

return EnableWindow (hwnd,enable);

}

Qué API’s se llaman y porqué.

En primer lugar explicar que las API’s de coredll a las que llamaremos son FindWindow y EnableWindow. La primera obtiene un puntero (IntPtr en .NET) a la ventana del tipo y nombre especificados por parámetros. EnableWindow habilita o deshabilita un objeto de tipo CWnd del sistema operativo pasados por parámetro.

¿Cómo las ejecutamos?                               

Como he dicho FindWindow obtiene un puntero a un objeto CWnd cargado del sistema. La barra de Inicio del sistema operativo WinCE, igual que otras versiones, no es más que una ventana activa. Dicha ventana se llama HHTaskBar y por tanto mediante FindWindow podemos obtener un puntero hacia ella, puntero que utilizaremos para pasárselo a EnableWindow y decir mediante el segundo parámetro si habilitar (True) o deshabilitar (False) la barra de Inicio.

Aprovechando que ambas funciones se relacionan he creado una función, en este caso estática, llamada habilitarTasBar que recibe un parámetro bolean para determinar si se habilita o no el Task Bar. Retornará True o False si ésta se ha llevado a cabo.

NOTA: En una aplicación inhabilitar la barra de tareas implica no poder ser utilizada, así que aseguraros de volver a habilitarla para poder seguir utilizando el software. Si pasara mediante un Soft Reset la barra volverá a estar activa.


ir al índice