2010-11-11 17 views
5

Considere un MessageBox para solicitar al usuario que responda sí o no. Funciona en nuestras máquinas XP y en una máquina de construcción Windows 7.MessageBox no se muestra en Windows 7 Embedded

Sin embargo, no funciona en nuestra máquina con Windows 7 Embedded. No hay mensaje de error, no aparece MessageBox. Simplemente supone que el usuario hizo clic en el botón Sí porque puedo encontrar el archivo de depuración creado desde allí y se llama al createDatabase(); sin ningún cuadro de mensaje delante.

Puedo encontrar el ensamblado (System.Windows.Forms.dll) requerido por MessageBox. Está en la misma ubicación que nuestra máquina de construcción de Windows 7. ¿tienes alguna idea de por qué? gracias

DialogResult result = System.Windows.Forms.MessageBox.Show(
    "Do you want to update your database?\nWarning: All your data will be erased if you click Yes !", 
"Update Database", 
MessageBoxButtons.YesNo, 
MessageBoxIcon.Question); 

if (result == DialogResult.Yes) 
{ 
    string[] cmdLines2 = { @"C:\AndeDB\AndeDB.db is here and selected yes" }; 
    //it will create, open and write or overwrite 
    File.WriteAllLines(@"C:\Temp\dbcheck2.txt", cmdLines2); 
    createDatabase(); 
} 

Respuesta

5

De this posterior, que podría desactivar el componente "cuadro de mensaje predeterminado Responder" de Windows 7 Embedded. Se pueden encontrar más detalles en msdn.

+0

¿Podría compartir la solución para Windows XP pls? –

4

La palabra clave aquí es "incrustada". Dichas versiones de Windows a menudo están configuradas para ejecutarse sin memoria (sin monitor) u optimizadas para funcionar sin que nadie esté cerca. Un MessageBox es venenoso para dicha configuración. La máquina deja de funcionar y nadie puede descubrir por qué.

Debe volver al generador de sistema y buscar la opción que lo controla.

Cuestiones relacionadas