Título: ¿Como puedo detectar si mi programa fue ejecutado desde terminal? Publicado por: 4dr14n31t0r en 19 Febrero 2017, 19:42 pm O mejor dicho, ¿Es posible?
Título: Re: ¿Como puedo detectar si mi programa fue ejecutado desde terminal? Publicado por: Eleкtro en 22 Febrero 2017, 05:06 am O mejor dicho, ¿Es posible? Suponiendo que estemos refiriéndonos a un executable de Windows con interfáz gráfica, entonces cada vez que inicias dicho executable desde el proceso CMD, la instancia de consola de la CMD se adjunta al proceso iniciado desde esa CMD (EDITO: por supuesto no es que la ventana de la CMD se adhiera a la GUI, eso no ocurre :xD), y esto nos permite comprobar facilmente si nuestra aplicación fue iniciada o no desde la consola. ¿Cómo?, pues intentando adjuntarle una consola a nuestro proceso haciendo uso de la función Win32 AttachConsole y comprobando el valor de retorno de dicha función. Recuerda liberar la consola adjuntada para la evaluación, con la función FreeConsole.
Esta es la forma en que se puede detectar si una aplicación de .NET fue iniciada desde la consola o no. Y para ser honestos desconozco si este procedimiento automático de adjunción de consola actua de la misma manera para todos los executables con interfáz gráfica o solamente para los ensamblados .NET con interfáz gráfica. Será cuestión de que lo compruebes por ti mismo. Te dejo aquí un código de ejemplo para .NET: Código
¡Saludos! |