none
cierre form RRS feed

  • Pregunta

  • hola a todos alguien me puede decir como evito que cierren mi aplicacion, necesito que este siempre activa, que no se pueda cerrar ni con administrador de tareas ni nada, espero me puedan ayudar........
    martes, 11 de agosto de 2009 19:55

Respuestas

  • Hola,

    se me ocurre que captures el evento Closing de el formulario y utilices el parámetro que te llega para cancelar el cierre.  Es algo tal que así (lo pongo de memória así que disculpa si no es exactamente con este código):

    private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
         //Le indicamos que cancele el cierre.
         e.Cancel=true;
    }


    En caso de que la respuesta te sirva, porfavor, márcala como válida

    Muchas gracias y suerte!


    Javier Jiménez Roda


    MCP (Microsoft Certified Professional)
    MCTS (Microsoft Certified Technology Specialist)
    MCPD (Microsoft Certified Professional Developer)
    Blog: http://jimenezroda.wordpress.com

    • Propuesto como respuesta Javier Jiménez Roda miércoles, 12 de agosto de 2009 15:07
    • Marcado como respuesta ZahedLS miércoles, 12 de agosto de 2009 15:11
    miércoles, 12 de agosto de 2009 15:07

Todas las respuestas

  • Hola,

    se me ocurre que captures el evento Closing de el formulario y utilices el parámetro que te llega para cancelar el cierre.  Es algo tal que así (lo pongo de memória así que disculpa si no es exactamente con este código):

    private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
         //Le indicamos que cancele el cierre.
         e.Cancel=true;
    }


    En caso de que la respuesta te sirva, porfavor, márcala como válida

    Muchas gracias y suerte!


    Javier Jiménez Roda


    MCP (Microsoft Certified Professional)
    MCTS (Microsoft Certified Technology Specialist)
    MCPD (Microsoft Certified Professional Developer)
    Blog: http://jimenezroda.wordpress.com

    • Propuesto como respuesta Javier Jiménez Roda miércoles, 12 de agosto de 2009 15:07
    • Marcado como respuesta ZahedLS miércoles, 12 de agosto de 2009 15:11
    miércoles, 12 de agosto de 2009 15:07
  • Hola, Javier:

    ¿Y con cancelar el evento se impide que no se pueda cerrar la aplicación o el proceso desde el Administrador de Tareas, tal y como así requería el usuario ZahedLS en su mensaje?

    Un saludo



    Enrique Martínez [MS MVP - VB]
    jueves, 13 de agosto de 2009 17:42
  • Hola SoftJaén,

    pues sinceramente dudo que haya alguna forma de evitar que un proceso muera si el sistema lo fuerza para ello (como ocurre cuando queremos eliminar un proceso desde el administrador de tareas). En cualquier caso mi propuesta intentó cumplir al máximo con lo que el usuario pedía aunque no siempre se pueda cumplir al 100% con ello. Quizás el señor/a ZahedLS pueda indicarnos en que grado le fue útil la respuesta y si realmente es lo que andaba buscando. Yo simplemente hice mi aportación lo mejor que supe.

    De todas formas gracias por comentar el tema, pues es cierto que puede quedar la duda en el aire. ;)

    Un saludo para ti también!


    En caso de que la respuesta te sirva, porfavor, márcala como válida

    Muchas gracias y suerte!


    Javier Jiménez Roda


    MCP (Microsoft Certified Professional)
    MCTS (Microsoft Certified Technology Specialist)
    MCPD (Microsoft Certified Professional Developer)
    Blog: http://jimenezroda.wordpress.com

    jueves, 13 de agosto de 2009 19:15
  • "Javier Jiménez Roda" escribió:

    > pues sinceramente dudo que haya alguna forma de evitar que un proceso muera
    > si el sistema lo fuerza para ello (como ocurre cuando queremos eliminar un
    > proceso desde el administrador de tareas).

    Así es. Si no se pudiera "matar" la aplicación o el proceso desde el Administrador de Tareas, nuestros equipos estarían expuestos a multitud de ataques malignos. :-))

    La única manera que yo conozco para evitarlo, es deshabilitar el propio Adminitrador de Tareas, y que yo sepa, mediante programación no se puede evitar que el usuario pulse la famosa combinación de teclas Ctrl+Alt+Supr.

    Por cuestiones de seguridad que bien sabrás comprender, tiene que ser un Administrador del sistema el que tiene que habilitar una directiva de grupo para impedir que los usuarios, y por ende las aplicaciones que éstos ejecuten, puedan iniciar el Administrador de Tareas.

    En sistemas operativos Windows 2000 y superiores, esto se consigue abriendo el Editor de directivas de grupo local (gpedit.msc), y en Configuración de usuario --> Plantillas administrativas --> Sistema --> Opciones de Ctrl+Alt+Supr, habilitar la opción Quitar Administrador de tareas.

    Esto es lo único, al menos que yo conozca, que impide que el usuario muestre el Administrador de Tareas, pero ¡claro! Tiene que ser el Administrador del sistema el que lo autorice, y si él lo autoriza, sabrá bien lo que está haciendo.

    > En cualquier caso mi propuesta intentó cumplir al máximo con lo que el
    > usuario pedía aunque no siempre se pueda cumplir al 100% con ello...
    > ... Yo simplemente hice mi aportación lo mejor que supe.

    ¡Qué me vas a contar a mí, que llevo casi 9 años metido de lleno en foros y grupos de noticias! ;-)

    Siempre se responde a lo que buenamente se pueda, pero en este caso, me sentía en la obligación de preguntártelo, porque cualquier usuario que leyera tu respuesta, lo mismo se convencía que cancelando el evento Closing del formulario principal de la aplicación, ya no se "mataba" la aplicación o el proceso desde el Administrador de Tareas, y como bien habrás podido comprobar, no es así. :-)




    Enrique Martínez [MS MVP - VB]
    viernes, 14 de agosto de 2009 5:29