Los comandos de la persiana de accesorios pueden ser ejecutados desde un programa CTL por medio de la instrucción RUN. Los comandos disponibles son los siguientes.
La versión de MultiBase para Windows incluye dos librerías dinámicas: «DEMODLL.DLL» (disponible desde la release 03) y «UTIL.DLL» (que se incluye a partir de esta release).
«DEMODLL.DLL»: Esta librería incluye dos funciones, una para representar por pantalla ficheros «.BMP» («ShowBmp») y otra que simula la acción de pulsar una tecla desde el teclado («DoKey»).Para activar estas funciones habrá que incluir en el fichero de inicialización (normalmente «MB.INI») y dentro de la sección «.DLL», las siguientes líneas:
LIB demodll.dll
ShowBmp (WORD, LPSTR, WORD, WORD, WORD, WORD) return WORD
DoKey (WORD, WORD, LPSTR)
a) Función «ShowBmp»: Muestra en pantalla un fichero «bitmap». Su sintaxis es:
ShowBmp (hw, fichero, x, y, alto, ancho)
Donde:
Ejemplo:
call dllfun ("ShowBmp", gethwnd(), "avion.bmp", 100, 200, 200, 300)
b) Función «DoKey»: Simula la pulsación de una tecla. Su sintaxis es la siguiente:
DoKey( hw, key, label)
Donde:
«UTIL.DLL»: Esta librería incluye un total de cinco funciones, cuatro de ellas destinadas a facilitar la comunicación a través de los puertos serie de la máquina y otra que recoge un valor de tipo TIME expresad en milisegundos. Los nombres de estas funciones son: «openport», «readport», «writeport», «closeport» y «chrono». Para activar estas funciones habrá que incluirlas en el fichero de inicialización (*.INI») dentro de la sección DLL:
LIB util.dll OpenPort(LPSTR,LPSTR)
return WORD
WritePort(WORD,LPSTR,WORD) return WORD ReadPort(WORD,WORD)
return LPSTR ClosePort(WORD) return WORD Chrono(WORD) return WORD
a) Función «OpenPort»: Abre el puerto de comunicación y retorna el número de canal abierto. Su sintaxis es la siguiente:
OpenPort ("Puerto",["Parámetros"])
Donde:
Ejemplo:
let canal = dllfun("OpenPort»,"com1","9600,n,8,1")
b) Función «WritePort»: Escribe sobre el canal especificado tantos caracteres como se indiquen. Su sintaxis es la siguiente:
WritePort (Canal, Cadena, Longitud)
Donde:
Devuelve:
n: Número de caracteres que haya podido
escribir.
-0: Si se ha producido un error.
Ejemplo:
Call dllfun("WritePort",canal,"Cadena",6)
c) Función «ReadPort»: Lee del canal el número de caracteres que se le indique. Su sintaxis es la siguiente:
ReadPort (Canal, Longitud)
Donde:
Ejemplo:
let cadena = dllfun("ReadPort",canal,6)
d) Función «ClosePort»: Cierra el canal indicado. Su sintaxis es la siguiente:
ClosePort (Canal)
Donde:
Devuelve:
0: Ejecución correcta.
< 0: Ejecución incorrecta.
Ejemplo:
Call dllfun("ClosePort", canal)
e) Función «Chrono»: Devuelve el número de milisegundos transcurridos desde el último «reset». Su sintaxis es la siguiente:
Chrono (reset, función)
Donde:
Ejemplos:
Call dllfun ("Chrono",
1, 0)
{start} Call dllfun ("Chrono", 0, 0)
{consulta} Call dllfun ("Chrono", 0, 1)
{pause} Call dllfun ("Chrono", 0, 2)
{continúa}