¿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?
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ónCreateFile
. Una vez que tenga el identificador, puede pasarlo aGetBinaryType
junto con un puntero a una variableDWORD
que recibirá la información del tipo de binario. SiGetBinaryType
devuelveVERDADERO
, se puede determinar el tipo de binario a partir del valor en la variableDWORD
.Si el valor es
SCS_32BIT_BINARY
oSCS_64BIT_BINARY
, entonces el archivo es una aplicación de escritorio. Si el valor esSCS_DOS_BINARY
oSCS_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”.