FAQ Login
Buscar Perfil
Miembros Grupos de Usuarios
Entre para ver sus mensajes privados
Registrarse
No permitir acceso a menú inicio
Publicar nuevo tema   Responder al tema
Foros de discusión » Programacion » No permitir acceso a menú inicio
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
wintermute
Recien nacido
Recien nacido


Registrado: 19 Mar 2007
Mensajes: 16

 Mensaje Publicado: Jue 10/05/2007    Asunto: No permitir acceso a menú inicio
Responder citando

Hola a todos:

Estoy desarrollando una aplicación para PocketPC Windows Mobile 2003
SE con el Compact Framework 2.0 (C#). La idea es que sólo pueda usarse
en las PDAs esa aplicación, de manera que no pueda cerrarse de ninguna
manera (exceptuando la introducción de un código concreto) ni se pueda
acceder al menú inicio.


De momento, quitando el ControlBox de los formularios y poniéndolos
con TopMost a true no permite cerrar, pero si acceden al menú inicio
el foco de la ventana se pierde y tendrían que pulsar en la ventana
para volver a ella.


Sé que tiene que haber alguna manera de hacer ésto, ya que las PDAs
que usamos vienen con un programa de administración que bloquea todo
menos su formulario, de manera que sólo puede salirse de esa
aplicación introduciendo una clave.


¿Alguien me podría echar una mano?


Muchas gracias.


Un saludo.
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado
tolgalen
VIP
VIP


Registrado: 18 Jun 2005
Mensajes: 5349

 Mensaje Publicado: Vie 11/05/2007    Asunto:
Responder citando

Yo intentaría capturar las pulsaciones de las teclas de hardware para evitar perder el foco.

Prueba con el evento OnKeyDown a ver si te funciona bien.

Otra opción que tienes, ya fuera de programarlo tu, es usar el SPBKiosk que te permite poner la PDA en modo "kiosko"

http://www.spbsoftwarehouse.com/products/kioskengine/?es
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado
wintermute
Recien nacido
Recien nacido


Registrado: 19 Mar 2007
Mensajes: 16

 Mensaje Publicado: Mar 15/05/2007    Asunto:
Responder citando

Muchas gracias por la respuesta.

El OnKeyDown ya le controlo, pero mi mayor problema ahora mismo es que, aunque maximice la ventana de mi aplicación, la barra de inicio siempre se queda por encima, con lo cual aunque no se muestre lo que ejecute sí que cambia el foco de la ventana.

Lo del modo quiosco es más o menos lo que quiero hacer, pero el tema es que en principio la idea es hacerlo yo de alguna manera (creo que, para el contexto en el que estoy, con conseguir que la barra de inicio quede por detrás de la ventana de la aplicación será suficiente).

¿Se te ocurre alguna manera de hacer ésto?

Muchas gracias de nuevo.
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado
tolgalen
VIP
VIP


Registrado: 18 Jun 2005
Mensajes: 5349

 Mensaje Publicado: Mar 15/05/2007    Asunto:
Responder citando

Pues sí, usando la dll Coredll y usando las API FindWindow y EnableWindow. Con FindWindow obtienes un puntero a una ventana y con EnableWindow la activas o desactivas (pasandole el puntero obtenido con FindWindows).

La barra de inicio de windows es una ventana llamada HHTaskBar.
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado
tolgalen
VIP
VIP


Registrado: 18 Jun 2005
Mensajes: 5349

 Mensaje Publicado: Mar 15/05/2007    Asunto:
Responder citando

Ojo, acuerdate de activarla al salir de la aplicación o la dejas desactiva y tendrías que hacer un soft-reset.
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado
wintermute
Recien nacido
Recien nacido


Registrado: 19 Mar 2007
Mensajes: 16

 Mensaje Publicado: Vie 18/05/2007    Asunto:
Responder citando

¡Muchas gracias! A ver cuándo lo puedo probar. Si no consigo que funcione, volveréis a tener noticias mías... Wink
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado
tolgalen
VIP
VIP


Registrado: 18 Jun 2005
Mensajes: 5349

 Mensaje Publicado: Vie 18/05/2007    Asunto:
Responder citando

Hombre, mejor cuentanos como te fue, si funciono o no Wink
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado
wintermute
Recien nacido
Recien nacido


Registrado: 19 Mar 2007
Mensajes: 16

 Mensaje Publicado: Jue 31/05/2007    Asunto:
Responder citando

Bueno, por fin he podido probar.

Ha funcionado perfectamente.

Por si a alguien le viene bien, el código es el siguiente:

static class clsBarraTareas
{
[DllImport("Coredll.dll", EntryPoint = "FindWindow")]
private static extern System.IntPtr FindWindow(string lpClassName, string lpWindowName);

[DllImport("coredll.dll", EntryPoint = "EnableWindow")]
private static extern bool EnableWindow(IntPtr hWnd, bool value);


/// <summary>
/// Método para ocultar la barra de tareas.
/// </summary>
public static void HideTaskbar()
{
IntPtr taskBarHandle;
taskBarHandle = FindWindow("HHTaskBar", "");
EnableWindow(taskBarHandle, false);
}

/// <summary>
/// Método para mostrar la barra de tareas.
/// </summary>
public static void ShowTaskbar()
{
IntPtr taskBarHandle;

taskBarHandle = FindWindow("HHTaskBar", "");
EnableWindow(taskBarHandle, true);
}
}

Muchas gracias.

Un saludo.
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado
tolgalen
VIP
VIP


Registrado: 18 Jun 2005
Mensajes: 5349

 Mensaje Publicado: Lun 02/07/2007    Asunto:
Responder citando

Gracias por el cacho código Wink, me alegro que te funcionara.
 Volver arriba »
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Foros de discusión » Programacion » No permitir acceso a menú inicio
Publicar nuevo tema   Responder al tema Todas las horas son GMT + 1 Hora
Página 1 de 1

 
Cambiar a:  
Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
   




http://www.pcdemano.com



Site Map

hit counter for myspace