Hace poco comentó Raul en la entrada Acciones de NeoDouble si cabría la posibilidad de "redirigir" los errores de Windows de modo que fuera la publicación (hecha en Neobook) la que tratara con el error y no el sistema, pues este, ante ciertos errores, muestra "mensajes" que la publicación no controla.
Estaba leyendo algún que otro Boletín de Pascal cuando me he topado con una función del API de Win32 que no conocía: "SetErrorMode". Resulta que con esta función es posible indicar al sistema que nuestra aplicación se hará cargo de ciertos "errores críticos" y del error que puede producirse al tratar con archivos (o carpetas) inexistentes.
Me ha parecido una función muy interesante para usar en ocasiones y he añadido a NeoDouble sendas acciones: "npOcultarErroresWindows" y "npMostrarErroresWindows". La primera ocultará los errores mencionados, es decir, Windows no mostrará mensajes los mensajes de error que por defecto muestra en estos casos. La segunda sirve para volver a dejar que Windows muestre este tipo de errores, sencillamente.
Sé que no es exactamente lo que buscabas Raul, y, ni siquiera sé si te servirá para el caso del error que te traías entre manos. Yo sólo he probado las acciones con un error "común" de alguna manera... ¿qué ocurre cuando tratas de crear un directorio en la unidad "A:" si esta unidad no existe? Normalmente Windows mostrará un cuadro de diálogo que solicitará al usuario que tome una decisión (continuar intentando acceder a la unidad, cancelar la operación, etc.).
Usando la acción "npOcultarErroresWindows" el sistema ya no mostrará dicho cuadro de diálogo ante el mismo error. Si a continuación ejecutamos la acción "npMostrarErroresWindows" y volvemos a "cometer" el mismo error... Windows se comportará como al principio, mostrando el cuadro de diálogo referido.
Creo que son dos buenas acciones para NeoDouble. No se trata, por supuesto, de ocultar errores porque sí, sino que estas acciones deberían utilizarse en algunos casos únicamente, primero una y luego otra, cuando se lleve a cabo alguna tarea que efectivamente pueda producir un mensaje de error que tu publicación no pueda controlar de alguna manera.
Nota: Si descargas ahora el plugin NeoDouble verás que se ha incluido también un ejemplo que muestra el uso de estas nuevas acciones.
Publicada el Martes, 26/6/2007 por David Esperalta
Suscribirse a esta entrada - URL para Trackbacks
Epa, no esperaba que te quedara el tema, ahora mismo bajo el plugin y me fijo como funciona gracias Raul
Hola Raul. No estoy seguro de que vaya a funcionar en tu caso particular, pero, en el ejemplo que se adjunta con NeoDouble sobre este tema verás que puede usarse al menos en algunos casos. Gracias por tu comentario Raul.