Objecte App (només projectes visuals)
En temps
d'execució, podeu tenir accés a aquest
útil i interressant
objecte:
Objecte App
L'objecte App conté informació sobre l'aplicació i disposa dels següents membres:
Accel El "handle" de la taula principal d'acceleradors, si n'hi ha algun, o NULL CommandLine La línia de comandes de l'aplicació (exclöent-hi el nom y la ubicació del programa) FileName El nom del fitxer executable Header La capçalera o títol de l'aplicació (el text del camp Capçalera de les Propietats del projecte) Instance El "handle" de la instància de l'aplicació Main El "handle" de la finestra principal (finestra d'inici) de l'aplicació Major El número major de la versió Minor El número menor de la versió Path La ubicació de l'aplicació Previous El "handle" de la finestra principal de la instància previa, si n'hi ha alguna, o NULL ProcessID L'identificador del procés (no el handle del procés). Per obtenir el handle del procés, crideu la funció de l'API GetCurrentProcess. Revision La revisió de la versió ThreadID L'identificador del "thread" que ha creat la finestra principal.
Algunes aplicacions només poden tenir una instància en marxa al mateix temps. Per tal de saber si ja hi ha alguna altra instància corrent quan inicieu l'aplicació, comproveu la variable App.Previous en el missatge WM_CREATE. Si App.Previous no és NULL i no voleu iniciar una altra instància, retorneu -1. El valor d'App.Previous és el "handle" de la finestra principal de la instància que ja està en marxa (si n'hi ha alguna), o NULL.
AVÍS: No haurieu de CANVIAR
MAI cap dels valors de l'objecte
App
o l'aplicació podría bloquejar-se.
IMPORTANT: Quan treballeu amb projectes visuals Fasm, heu de tenir molt en compte que l'objecte App és una estructura, per tant, ha d'estar sempre entre claudàtors (per exemple [App.Previous]). Si l'objecte App no està entre claudàtors, el Fasm no genera cap error perquè creu que se li està passant una adreça efectiva, però l'aplicació generada (o part d'ella) no funcionarà.
OBSERVACIONS: El membre CommandLine apunta a una cadena de text acabada en zero que conté només la línia d'ordres de l'aplicació (si n'hi ha alguna), és a dir, sense incloure ni el nom ni la ubicació del programa ("path"). Per tal d'obtenir la línia d'ordres sencera, crideu la funció de l'API GetCommandLine.