es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo ordenar las aplicaciones de Windows como aplicaciones de consola o de escritorio?

Supongamos que tengo código para iterar en una lista de archivos de un directorio y ordenarlos según sus extensiones. Luego, me gustaría hacer una clasificación adicional en los archivos exe en particular.

Las aplicaciones de Windows se dividen en dos tipos: aplicaciones de consola y aplicaciones de escritorio.

¿Cómo puedo ordenar los archivos de aplicación de un directorio en esos dos tipos para que los nombres de las aplicaciones de consola se enumeren bajo “aplicaciones de consola” y los nombres de las aplicaciones de escritorio se enumeren bajo “aplicaciones de escritorio”?

La pregunta real es: ¿cómo identificar las aplicaciones de consola de las aplicaciones de escritorio?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para diferenciar entre aplicaciones de consola y aplicaciones de escritorio, se puede utilizar la función GetBinaryType en la API de Windows. Esta función determinará si un archivo es una aplicación de consola, una aplicación de Windows o una DLL.

    Para utilizar GetBinaryType, primero se necesita obtener un identificador de archivo utilizando la función CreateFile. Una vez que tenga el identificador, puede pasarlo a GetBinaryType junto con un puntero a una variable DWORD que recibirá la información del tipo de binario. Si GetBinaryType devuelve VERDADERO, se puede determinar el tipo de binario a partir del valor en la variable DWORD.

    Si el valor es SCS_32BIT_BINARY o SCS_64BIT_BINARY, entonces el archivo es una aplicación de escritorio. Si el valor es SCS_DOS_BINARY o SCS_PIF_BINARY, entonces el archivo es una aplicación de consola.

    Una vez que se ha determinado el tipo de cada archivo, se pueden ordenar según sus respectivas categorías de “aplicaciones de consola” y “aplicaciones de escritorio”.

Comments are closed.