Objecto App (sólo proyectos visuales)



En tiempo de ejecución, puede tener acceso a este útil e interesante objeto:


Objeto
App

    El objeto App contiene información sobre la aplicación y se compone de los siguientes miembros:

Accel El "handle" de la tabla principal de aceleradores, si hay alguno, o NULL
CommandLine La linea de comandos de la aplicación (excluyendo el nombre y la ubicación del programa)
FileName El nombre del archivo ejecutable
Header La cabecera o título de la aplicación (el texto del campo Cabecera de las Propiedades del proyecto)
Instance El "handle" de la instancia de la aplicación
Main El "handle" de la ventana principal (ventana de inicio) de la aplicación
Major El número mayor de la versión
Minor El número menor de la versión
Path La ubicación de la aplicación
Previous El "handle" de la ventana principal de la instancia previa, si hay alguna, o NULL
ProcessID El identificador del proceso (no el handle del proceso). Para obtener el handle del proceso, llame a la función de la API GetCurrentProcess.
Revision La revisión de la versión
ThreadID El identificador del "thread" que ha creado la ventana principal.

Algunas aplicaciones sólo pueden tener una instancia en marcha al mismo tiempo. Para saber si ya hay alguna otra instancia en marcha cuando inicie la aplicación, compruebe la variable App.Previous en el mensaje WM_CREATE. Si App.Previous no es NULL y no desea iniciar otra instancia, devuelva -1. El valor de App.Previous es el "handle" de la ventana principal de la instancia que ya está en marcha (si hay alguna), o NULL.


AVISO:
No debería 
CAMBIAR NUNCA ninguno de los valores del objeto App o la aplicación podría bloquearse.

IMPORTANTE: Cuando trabaje con proyectos visuales Fasm, debe tener muy presente que el objeto App es una estructura, por lo tanto, debe estar siempre entre corchetes (por ejemplo [App.Previous]). Si el objeto App no está entre corchetes, Fasm no genera ningún error porque cree que se le está pasando una dirección efectiva, pero la aplicación generada (o parte de ella) no funcionará.

OBSERVACIONES: El miembro CommandLine apunta a una cadena de texto acabada en cero que contiene solamente la linea de comandos de la aplicación (si hay alguna), es decir, sin incluir el nombre ni la ubicación del programa ("path"). Para obtener la linea de comandos entera, llame a la función de la API GetCommandLine.