0% encontró este documento útil (0 votos)
1 vistas600 páginas

Tutorial de Autoit

Tutorial de aprendizaje sobre AutoiT

Cargado por

StrongCoder Sc
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
1 vistas600 páginas

Tutorial de Autoit

Tutorial de aprendizaje sobre AutoiT

Cargado por

StrongCoder Sc
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

1999-2010 Jonathan Bennett & El Equipo de AutoIt

Tutorial transcrito a pdf por DuNeD@i


Crditos especiales a Expermicid
[Link]
1

Introduccin
AutoIt v3, es un lenguaje scripting como-BASIC, freeware, diseado para automatizar la
Interfaz grfica de Windows y scripting en general. Tambin usa una combinacin de teclas
simuladas, movimientos del mouse y manipulacin de ventanas/controles para automatizar
tareas en una manera que no es posible o prctica con otros lenguajes (ej. VBScript y
SendKeys). AutoIt es tambin muy pequeo, contiene a s mismo, sin dependencias y es
ejecutable en todas las versiones de Windows sin requerir de los molestos "runtimes"!
AutoIt fu inicialmente diseado para situaciones repetitivas de PC y situaciones para
automatizar fiablemente y configurar cientos de PCs. Con el tiempo ha venido a ser un
lenguaje poderoso que soporta expresiones complejas, funciones de usuario, bucles y cada
cosa que los scripters veteranos podran esperar.
Caractersticas principales:

Fcil para aprender, semejante a la sintxis de BASIC


Simula teclas presionadas y movimientos de mouse
Manipula ventanas y procesos
Interacta con todos los controles estndares de ventanas
Los scripts pueden ser compilados en ejecutables
Crear Interfaces Grficas de Usuario (IGU en ingls, GUIs)
Soporte de COM
Expresiones Regulares
Llamada externas directamente de un DLL y funciones del API de Windows
Funciones Scriptable RunAs
Ayuda detallada y una gran comunidad de soporte en los foros
Compatible con Windows 95 / 98 / ME / NT4 / 2000 / XP / 2003 / Vista / 2008
Soporte Unicode y soporte x64
Digitalmente firmado para su tranquilidad
Trabaja con el Control de Usuario de Windows Vista (UAC)

AutoIt ha sido diseado para ser lo ms pequeo posible y sin archivos .dll externos o entradas
de registro requeridas haciendolo ms seguro para usar en servidores. Los scripts pueden ser
compilados en un ejecutable estndar con la herramienta Aut2Exe.
Tambin es suplido con un combinado de la versin COM y DLL de AutoIt llamado AutoItX que
permite aadir caractersticas nicas de AutoIt en sus scripts favoritos o lenguajes de
programacin!
Y lo mejor de todo, AutoIt contina siendo GRATUITO - pero si usted desea apoyar el tiempo,
dinero y esfuerzo invertidos en el proyecto y el hospedaje web entonces usted puede
donar desde la pgina en AutoIt.
Caractersticas en Detalle
Sintxis como-Basic y conjunto de funciones avanzadas

AutoIt tiene una sintxis similar a BASIC, lo que significa que personas que nunca han escrito
un script o utilizado un lenguaje de alto nivel deberan ser capaz de comprenderlo fcilmente.
A pesar de que comenz la vida como una simple herramienta de automatizacin, AutoIt
ahora cuenta con funciones y caractersticas que le permiten ser utilizarlo como un lenguaje de
scripting de propsito general (con impresionante automatizacin por supuesto!). Entre las
caractersticas del lenguaje incluyen:

El alto-nivel usual de elementos para funciones, bucles y interpretacin de expresines


Una cantidad asombrosa de funciones para manejo de cadenas y funciones de
expresiones regulares compatibles con Perl (mediante la biblioteca PCRE).
Soporte COM
Llamada Win32 y DLL APIs de terceros
Una extensa libreara de funciones, en continuo crecimiento, aportada por la
comunidad de contribuyentes

Editor integrado con Sintxis resaltada


AutoIt viene con un versin personalizada "lite" de SciTE que hace fcil la edicin de escripts.
Los usuarios tambin pueden descargar una versin completa de SciTE que incluye
herramientas adicionales para hacer las cosas an ms fcil.
Pequeo e Independiente
AutoIt es una aplicacin muy pequea e independiente, no depende de runtimes masivos
como .NET o VB. Todo lo que usted necesita para ejecutar secuencias de comandos es el
intrprete de AutoIt ([Link]) y el script claro. Los scripts tambin pueden ser codificados
en ejecutables con el compilador incorporado de scripts: Aut2Exe.

Soporte Internacional y 64-bit


AutoIt est diseado completamente para soportar Unicode y tambin incluye versiones x64
de todos los componentes principales! Qu tantos otros lenguajes de scripts que son gratuitos
pueden decir sobre eso?
Simulacin de teclas y mouse
Se ha dedicado mucho tiempo optimizando las funciones de simulacin de teclas y mouse para
que sean lo ms precisas posibles en todas las versiones de Windows. Todas las rutinas
de mouse y teclado son altamente configurables, tanto en trminos de simulacin de
"velocidad" y funcionalidad.
Manejo de Ventanas
Uste puede mover, ocultar, mostrar, reajustar, activar, cerrar y mucho ms con ventanas. Las
ventanas pueden ser referenciadas por ttulo, texto en la ventana, tamao, posicin, clases y
manejadores internos del API de Win32.

Controles
Directamente obtener informacin e interactuar con cajas de edicin, checkboxes, cajas de
listas, combos, botones, barras de estado sin el riesgo de perderse a travs de envo de
teclas. An trabajando con controles en ventanas que no estn activas!
Interfaces Grficas de Usuario (GUIs)
AutoIt v3 tambin le permitir crear algunas GUIs complejas - como las que se ven abajo!

Y mucho, mucho mas!...

Licencia de Software
Author : Jonathan Bennett y el equipo de AutoIt
WWW : [Link]
Email : support at autoitscript dot com
_______________________________________________________
ACUERDO DE LICENCIA DE USUARIO DE ESTE SOFTWARE (CLUF)
Esta licencia de usuario final ( "CLUF") es un acuerdo legal entre usted (ya sea un individuo o
una entidad nica) y el mencionado autor de este software para el producto de software
identificado ms arriba, que incluye software y puede incluir medios asociados, materiales
impresos, y "en lnea" o documentacin electrnica ( "PRODUCTO DE SOFTWARE"). Al instalar,
copiar, o de otro modo usar el PRODUCTO DE SOFTWARE, usted acepta que quedar vinculado
por los trminos de este EULA. Si usted no est de acuerdo con los trminos de este EULA, no
instale o use el PRODUCTO DE SOFTWARE.
LICENCIA DEL PRODUCTO DE SOFTWARE
El PRODUCTO DE SOFTWARE est protegido por leyes de copyright y tratados internacionales
de derechos de autor, as como otras leyes de propiedad intelectual y los tratados. El
PRODUCTO DE SOFTWARE es licenciado, no vendido.
La definicin de PRODUCTO DE SOFTWARE no incluye incluye todos los archivos generados por
el PRODUCTO DE SOFTWARE, tales como archivos de script compilado en forma de
ejecutables.
1. CONCESIN DE LICENCIA.
Este CLUF le otorga los siguientes derechos:
De Instalacin y Uso. Puede instalar y utilizar un nmero ilimitado de copias del PRODUCTO DE
SOFTWARE.
Reproduccin y Distribucin. Usted podr reproducir y distribuir un nmero ilimitado de
copias del PRODUCTO DE SOFTWARE en su totalidad o en parte, cada copia deber incluir
todos los derechos de autor y marcas comerciales, y deber ir acompaada de una copia de
este EULA. Copias del PRODUCTO DE SOFTWARE se puede distribuir como un producto
independiente o incluido con su propio producto.
Uso Comercial. Usted puede vender con fines de lucro y libremente distribuir los scripts y / o
scripts compilado que se crearon con el PRODUCTO DE SOFTWARE.
Ingeniera inversa. Usted no puede aplicar ingeniera inversa o desensamblar el PRODUCTO DE
SOFTWARE o compilar scripts que fuen creados con el PRODUCTO DE SOFTWARE.

2. DERECHOS DE AUTOR.
Todos los ttulos y derechos de autor en y para el PRODUCTO DE SOFTWARE (incluyendo pero
no limitado a las imgenes, fotografas, animaciones, vdeo, audio, msica, texto y "applets"
incorporados en el PRODUCTO DE SOFTWARE), el material impreso que acompaa, y las copias
del PRODUCTO DE SOFTWARE son propiedad del autor de este Software. El PRODUCTO DE
SOFTWARE est protegido por las leyes y disposiciones de tratados internacionales. Por lo
tanto, usted debe tratar el PRODUCTO DE SOFTWARE como cualquier otro material con
derechos de autor.
DIVERSOS
Si adquiri este producto en el Reino Unido, este CLUF se regir por las leyes del Reino Unido.
Si este producto fue adquirido fuera del Reino Unido podr aplicar la ley local.
Si usted tiene alguna pregunta acerca de este CLUF, o si desea ponerse en contacto con el
autor de este software por cualquier razn, pngase en contacto con l / ella en la direccin de
correo electrnico mencionado en la parte superior de este EULA.
GARANTA LIMITADA
SIN GARANTAS.
El Autor de este Software renuncia expresamente a cualquier garanta para el PRODUCTO DE
SOFTWARE. El PRODUCTO DE SOFTWARE y toda la documentacin relacionada se proporciona
"tal cual" sin garanta de ningn tipo, ya sea expresa o implcita, incluyendo, sin limitacin, las
garantas implcitas de comerciabilidad, adecuacin para un propsito particular, o no
infraccin. La totalidad del riesgo resultante del uso o rendimiento del PRODUCTO DE
SOFTWARE sigue con usted.
NO HAY RESPONSABILIDAD POR DAOS.
En ningn caso el autor de este software podr ser considerada responsable de ningn dao
(incluyendo, sin limitacin, daos por prdida de beneficios comerciales, interrupcin del
negocio, la prdida de informacin comercial, o cualquier otra prdida pecuniaria) que se
derive del uso o incapacidad para utilizar este producto, incluso si el autor de este software ha
sido advertido de la posibilidad de tales daos. Debido a que algunos estados o jurisdicciones
no permiten la exclusin o limitacin de responsabilidad por daos consecuentes o
incidentales, la limitacin anterior podra no aplicarse a usted.
[FINAL DE LA LICENCIA

Estructura del Directorio de Instalacin


El instalador de AutoIt crea una estructura de directorios (habitualmente situada en \Archivos
de Programa\AutoIt3) recopilada en la siguiente tabla. El instalador tambin crea Accesos
Directos en el Men Inicio, pero otros archivos no son agregados ni modificados.
Archivos y Directorios

Descripcin

(Archivos en el Nivel-Superior)

[Link]

El programa principal de AutoIt y nico archivo requerido como


intrprete de los scripts!

AutoIt3_x64.exe

Vesin x64 de AutoIt (si es instalada).

[Link]

La Herramienta AutoIt para Informacin de Ventanas.

AU3Info_x64.exe

Versin x64 de Au3Info (si es instalada).

[Link]

La versin ANSI de [Link] para Windows 9x.

[Link]

El analizador de sintxis de AutoIt.

[Link]

El archivo que est leyendo ahora, refiriendo en el mismo al


[Link]

[Link]

El desinstalador de AutoIt. Probablemente nunca necesite


usarlo.

AutoIt v3 [Link]

Un acceso directo al sitio [Link]

Aut2Exe

Icons\

Contiene conos usados por Explorer para el tipo de archivo


.au3.

[Link]

El compilador de script.

Aut2Exe_x64.exe

Versin x64 de Aut2Exe (si es instalada).

[Link]

Paquete ejecutable para scripts compilados

AutoItSC_x64.bin

Paquete ejecutable para scripts compilados bajo x64.

[Link]

El compresor UPX (disminuye el tamao de los archivos


ejecutables).

Examples
GUI\

Contiene ejemplos de GUIs escritos en AutoIt.

Helpfile\

Contiene muchos ejemplos de Scripts usados en el Archivo de


Ayuda.

AutoUpdateIt\

Contiene un script que le facilita obtener la ltima versin de


AutoIt.

Editors\

Contiene definiciones para sintaxis coloreada de algunos


editores de texto populares.

Exe2Aut\

Contiene utilidades para convertir scripts compilados a su


cdigo fuente.

SQLite\

Contiene ejecutables de la lnea de comandos SQLite y su


respectivo archivo de ayuda.

v2_to_v3_Converter\

Contiene una herramienta para conversin de scripts desde la


v2.64 a la sintaxis de AutoIt v3.

Extras

Icons
Contiene conos usados por Explorer para el tipo de archivo .au3
Include
Contiene los archivos estndar de inclusin (funciones de usuario pre-escritas). Vea la
librera de funciones
AutoItX
Contiene una versin DLL de AutoIt v3 que proporciona un subconjunto de
8

caractersticas de AutoIt a travs de un ActiveX/COM y una interfaz DLL.


SciTe
Contiene una versin liviana de SciTe que permite resaltar sintxis con color.
Una vez ms le recordamos que para poder correr scripts de AutoIt, el nico archivo requerido
es [Link]. Si usted compila un script, el ejecutable generado no requiere que el usuario
tenga AutoIt instalado en su mquina para poder ejecutarlo.
(excepcin: Bajo Windows NT 4 es necesario que el archivo [Link] est en la ruta o
directorio de AutoIt para que trabajen las funciones relativas a Process...())
Claves del Registro
El instalador de AutoIt crea claves de Registro en HKEY_LOCAL_MACHINE\Software\AutoIt v3 y
HKEY_CURRENT_USER\Software\AutoIt v3. Las claves no son usadas/creadas cuando las
utilidades de AutoIt estn ejecutndose sobre mquinas que no tienen una instalacin
completa--AutoIt est "limpio" para correr sobre servidores, etc.
La tabla aqu debajo le muestra las claves del registro predeterminadas (o tpicas). Las claves
en cursiva no son creadas por el instalador en si mismo, sino por la primera ejecucin de la
utilidad correspondiente:
HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\
AutoIt
(Predeterminado)

REG_SZ

(valor no establecido)

InstallDir

REG_SZ

C:\Archivos de Programa\AutoIt3

Version

REG_SZ

Nmero de la Versin

HKEY_CURRENT_USER\Software\AutoIt v3\
Aut2Exe
(Predeterminado)

REG_SZ

(valor no establecido)

AllowDecompile

REG_DWORD

0x1

LastCompression

REG_DWORD

0x2

LastExeDir

REG_SZ

Mis documentos

LastIcon

REG_SZ

LastIconDir

REG_SZ

C:\Archivos de
Programa\AutoIt3\Aut2Exe\Icons

LastScriptDir

REG_SZ

Mis documentos

(Predeterminado)

REG_SZ

(valor no establecido)

DoneOption

REG_SZ

Notificar

DownloadDir

REG_SZ

C:\Descargas\PorEjemplo\

(Predeterminado)

REG_SZ

(valor no establecido)

LastExeDir

REG_SZ

C:\PorEjemplo\

LastScriptDir

REG_SZ

Predeterminado

REG_SZ

(valor no establecido)

AlwaysOnTop

REG_DWORD

0x1

ColorMode

REG_DWORD

0x1

CoordMode

REG_DWORD

0x1

HighlightColor

REG_DWORD

0x0

HighlightControls

REG_DWORD

0x1

Magnify

REG_DWORD

0x0

WinH

REG_DWORD

0x01c2

WinW

REG_DWORD

0x012c

AutoUpdateIt

Exe2Aut

AU3Info

10

WinX

REG_DWORD

0x0064

WinY

REG_DWORD

0x0064

11

Preguntas Ms Frecuentes (FAQ)


Esta seccin da informacin de las preguntas ms frecuentes del foro. Si no encuentras la
respuesta aqu, entonces sera bueno revisar en el foro.
Preguntas
1. Porque mi antiguo script de AutoIt v2.64 no funciona en v3?
2. No es ms difcil v3 que las versiones anteriores?
3. Cmo puedo convertir mis scripts de v2.64 a v3?
4. Dnde est el comando "goto"?
5. Cmo puedo ejecutar un programa de DOS dentro en AutoIt?
6. Porqu slo puedo usar Run() para ejecutar archivos .exe y .com? Qu sobre .msi / .txt y
otros?
7. Porqu tengo errores cuando intento usar comillas dobles (") ?
8. Qu significan los parmetros de ventana "ttulo" y "texto"?
9. Porqu no puedo mostrar una variable usando "Mi var es $variable"?
10. Cuando yo uso Send() para enviar una variable que posibilidades pueden ocurrir?
11. Qu diferencia hay entre el valor de retorno y @error?
12. Cmo puedo puedo terminar mi script con un hot-key?
13. Cmo puedo usar un cono personal cuando compilo mis scripts?
14. Cmo puedo asegurarme que slo una copia de mi script se est ejecutando?
15. Cules son las actuales limitaciones tcnicas de AutoIt v3?
16. Yo obtengo un smbolo de imagen perdida en los ejemplos del archivo de Ayuda.
1. Porque mi antiguo script de AutoIt v2.64 no funciona en v3?
v3 tiene una estructura de lenguaje diferente a v2.64.
Versiones anteriores de AutoIt estaban bien para lo que fueron diseadas - escribiendo scripts
sencillos para ayudar con las instalaciones de software. Tiempo despus la gente empez a
usarlo para cosas generales y tareas ms complicadas. La vieja sintxis y estructura hizo
posible esto pero muy muy difcil de mantenerlo. La decisin fu hacer un AutoIt ms
satisfactorio para automatizacin de tareas en general y lograr ms que un standar como el
lenguaje Basic fu hecho. Esto tambin significa que si t ya conoces un lenguaje de scripts te
adaptars facilmente con AutoIt v3.
Regresar al Principio
2. No es ms difcil v3 que las versiones anteriores?
No. De hecho en muchas instancias es ms fcil que versiones anteriores como t no tienes
que forzar el lenguaje a hacer cosas que nunca fueron diseadas para que haga. Tambin usa
12

un lenguaje familiar al lenguaje


principiantes...bueno...bsico :)

BASIC,

BASIC

es

bien

conocido

para

La vasta mayora de viejas versiones de scripts de AutoIt fueron enfocadas a instalaciones


de software y clickeos como "Siguiente" en muchos cuadros de dilogo. La mayora de estos
scripts pueden ser convertidos a v3 simplemente aadiendo algunos parntesis aqu y
all. Aqu hay un ejemplo de un script v2 y v3 (simulando una instalacin de software con
algunas cajas de dilogos que tiene los botones Siguiente y Finalizar)
; v2.64 Script
WinWaitActive, Welcome, Welcome to the XSoft installation
Send, !s
WinWaitActive, Choose Destination, Please choose the
Send, !s
WinWaitActive, Ready to install, Click Next to install
Send, !s
WinWaitActive, Installation Complete, Click Finish to exit
Send, !f
WinWaitClose, Installation Complete
; v3 Script
WinWaitActive("Welcome", "Welcome to the XSoft installation")
Send("!s")
WinWaitActive("Choose Destination", "Please choose the")
Send("!s")
WinWaitActive("Ready to install", "Click Next to install")
Send("!s")
WinWaitActive("Installation Complete", "Click Finish to exit")
Send("!f")
WinWaitClose("Installation Complete")
Ahora, eso no estuvo mal! :) Como todas las "cadenas de texto" estn encerradas en comillas
no hay ms problemas con espacios antes o despus en el texto. Aqu tambin hay un soporte
para muchos editores de texto as que al escribir scripts v3 t puedes tener la sintxis
resaltada lo cual lo hace ms fcil.
Regresar al Principio
3. Cmo puedo convertir mis scripts de v2.64 a v3?
La primera cosa que uno debe preguntarse es "Necesito convertir mi script?". v2.64
continuar siendo descargable y soportado as que no sera necesario actualizar todos los
scripts solo por ese temor - bueno a menos que quieras :)
Aqu hay una seccin en el archivos de ayuda que muestra como los comandos de v2 y v3
estn relacionados - haz un click aqu para ver la pgina.

13

Uno de los autores de la versin 3 escribi una utilidad para convertir scripts v2 a v3. La
conversion es muy buena, a menos que tu cdigo sea un nido de ratas de "goto" :) T puedes
encontrar el convertidor en el directorio de "Extras" (Start \ AutoIt v3 \ Extras - o revisa donde
has instalado AutoIt v3).
Regresar al Principio
4. Dnde est el comando "goto"?
Se fu. Es malo. No, no preguntes porqu - slo es as. Es como ese montn de piedras
que encontraron en el microondas al final de la pelcula Time Bandits :)
Muchas de las caractersticas de AutoIt v3 tiene los "loops" comunes de uso actual y esos Goto
no son requeridos. Revisa While, Do, For, ExitLoop, ContinueLoop y Funciones para ver la
manera moderna de hacer las cosas :) Tambin puedes ver en el archivo de ayuda estas
secciones bucles, sentencias condicionales y funciones. Te prometo, una vez que tienes a
mano tales cosas, virtualmente sers capaz de escribir en otros lenguajes en poco tiempo.
Para iniciar, el ms bsico uso de Goto en la versin 2.64 como un infinito bucle como este:
:mylabel
...do something...
...and something else...
goto, mylabel
Una sencillo ejemplo en v3 usando el bucle While que siempre es "VERDADERO".
While 1 = 1
...do something...
...do something else...
Wend
Regresar al Principio
5. Cmo puedo ejecutar un programa de DOS dentro en AutoIt?
Si quieres ejecutar comandos de DOS, como el comando "Dir", entonces debes ejecutarlo a
travs del intprete ([Link] o [Link] dependiendo de tu SO). El macro
@Comspec contiene la ubicacin correcta de este archivo. Deberas usar la funcin
RunWait() como para la tpica espera de muchos programas en DOS antes de que aparezca la
siguiente lnea del script. Aqu hay un ejemplo ejecutando el comando de DOS, "Dir" en la
unidad C: (efectivamente ejecutndose el comando [Link] /c Dir C:\ )
RunWait(@COMSPEC & " /c Dir C:\")
Regresar al Principio

14

6. Porqu slo puedo usar Run() para ejecutar archivos .exe y .com? Qu sobre .msi / .txt y
otros?
Slo algunas extensiones son usualmente "ejecutables" - stas son .exe, .bat, .com, .pif. Otras
extensiones como .txt y .msi son actualmente ejecutadas con otro programa. Cuando se hace
un doble click en un archivo como "[Link]" lo que pasa es que en el fondo es ejecutado
"[Link] [Link]". As para que ejecutar un archivo .msi de AutoIt hay que hacer lo
siguiente:
RunWait("msiexec [Link]")
O ejecutar el comando "start" el cual automticamente sabe como deber ejecutarse el
archivo:
RunWait(@COMSPEC & " /c Start [Link]")
O usa la funcin interna de AutoIt llamada ShellExecuteWait, que automticamente te
ahorrar ms tiempo:
ShellExecuteWait("[Link]")
Regresar al Principio
7. Porqu tengo errores cuando intento usar comillas dobles (") ?
Si quieres usar doble comillas dentro de una cadena de texto o string entonces debes
"doblar o duplicar comillas". As que para cada una de las comillas que quieras usar, usa las
dos. Para entender mejor, ver el siguiente ejemplo:
Una palabra en "esta" oracin tiene comillas! Se debe hacer esto:
$var = "Una palabra en ""esta"" oracin tiene comillas!"
o usar comillas simples:
$var = 'Una palabra en "esta" oracin tiene comillas!'
Regresar al Principio
8. Qu significan los parmetros de ventana "ttulo" y "texto"?
Hay una descripcin detallada de esto aqu.
Regresar al Principio
9. Porqu no puedo mostrar una variable usando "Mi var es $variable"?
15

Si tienes una variable llamada $msg y quieres imprimir dentro de un MsgBox como la siguiente
lnea, no funcionar:
MsgBox(0, "Ejemplo", "Mi variable es $msg")f
Se mostrar Mi variable es $msg . Lo que necesitas es decirle a AutoIt: une la cadena de texto
y la variable juntos, esto se logra usando el operador &:
MsgBox(0, "Ejemplo", "Mi variable es " & $msg)
Avanzado: Si tienes muchas variables para aadir a la cadena de texto entonces hay una
funcin mas til para este caso llamada StringFormat(). Por ejemplo, si se desea insertar de
$var1 a $var5 en una cadena entonces sera ms fcil esto:
$msg = StringFormat("Var1 es %s, Var2 es %s, Var3 es %s, Var4 es %s, Var5 es %s", $var1,
$var2, $var3, $var4, $var5)
MsgBox(0, "Ejemplo", $msg)
Regresar al Principio
10. Cuando yo uso Send() para enviar una variable que posibilidades pueden ocurrir?
Si se est enviando el contenido de una variable entonces ser til que si contiene caracteres
especiales como ! ^ + {SPACE} entonces estos seran convertidos a keystrokes especiales - que
raramente se necesita. Para superar esto usa el modo RAW de Send() que no traduce las teclas
especiales:
Send($myvar, 1)
Regresar al Principio
11. Qu diferencia hay entre el valor de retorno y @error?
Generalmente un valor devuelto es usado para indicar el xito de una funcin. Pero, si una
funcin ya est devolviendo algo (como WinGetText() ) entonces necesitamos tener una
manera de trabajar si la funcin tuvo xito, as que definimos @error en su lugar.
Regresar al Principio
12. Cmo puedo puedo terminar mi script con un hot-key?
Ah, muy fcil. Si quieres hacer un script que al presionar cierta tecla termine el script usa la
funcin HotKeySet() para definir en que funcin har que termine. Esta funcin de usuario
slo debera contener la palabra clave Exit.
Aqu un ejemplo que causar que al presionar CTRL+ALT+x termine:

16

HotKeySet("^!x", "MyExit")
...
...
; Resto del Script
...
...
Func MyExit()
Exit
EndFunc
Regresar al Principio
13. Cmo puedo usar un cono personal cuando compilo mis scripts?
Para eso es necesario ejecutar el programa compilador (Alt + F7 en SciTe) o puedes
simplemente dar click-derecho sobre un fichero de script y seleccionar compilar). Esta pgina
describe el compilador en detalle.
Regresar al Principio
14. Cmo puedo asegurarme que slo una copia de mi script se est ejecutando?
Usa la funcin _Singleton(). Ver la documentacin de las Funciones Definidas de Usuario (UDF)
para ms informacin en _Singleton() y cmo usarlo.
Regresar al Principio
15. Cules son las actuales limitaciones tcnicas de AutoIt v3?
Aqu se muestra detalles de los lmites tcnicos actuales de AutoIt. Por favor nota que algunos
lmites son tericamente y tal vez dependa del desempeo o memoria y problemas
relacionados antes de llegar a tales lmites.
Mxima longitud de una lnea simple de un script: 4,095
Mxima longitud de una cadena de texto: 2,147,483,647 caracteres
Rango de nmero (punto flotante): 1.7E308 to 1.7E+308 con precisin de 15-dgitos
Rango de nmero (enteros): 64-bit entero signed
Nmeros Hexadecimales: 32-bit entero signed (0x80000000 a 0x7FFFFFFF)
Arreglos (Arrays): Un mximo de 64 dimensiones y/o un total de 16 millones de elementos
Rango mximo de llamadas en funciones recursivas: 5100 niveles
Mximum nmero de variables en uso a la vez: No hay lmite
Mximo nmero de funciones definidas de usuario: No hay lmite
Mximo nmero de ventanas GUI: No hay lmite
Mximo nmero de controles GUI: 65532
Regresar al Principio
17

16. Yo obtengo un smbolo de imagen perdida en los ejemplos del archivo de Ayuda.
Esto debera ser el botn de abrir que activa los ejemplos en el archivo de Ayuda.
Esta cuestin es que el control "[Link]" no est apropiadamente registrado o est
corrupto.
Intenta registrarlo desde el smbolo de sistema o cmd ejecutando "regsvr32 [Link]" o
revisando si el archivo contina siendo vlido en el sistema.

18

Ejecutando Scripts
Cuando comience, AutoIt le preguntar para abrir un archivo script. Un script es un archivo de
texto simple, que contiene palabras claves de AutoIt y funciones con las cuales usted crea el
cdigo y AutoIt lo interpreta. Los archivos scripts pueden ser creados en un editor de texto
comn y corriente como [Link], aunque hay mejores alternativas.
Aunque los scripts de AutoIt v3 son simplemente archivos de texto plano, por lo comn ellos
tienen la extensin .au3 para lograr diferenciar facilmente un script de un archivo de texto. Si
usted utiliz la instalacin completa de AutoIt puede ejecutar un script de AutoIt hacindole
doble click al archivo. Hay tambin variadas formas para abrir, editar, o compilar un archivo
script si usted da un click-derecho sobre el archivo .au3
Aqu hay un ejemplo de script. Le notificamos que el ; se emplea para comentarios (muy
similar al REM en archivos de lotes del DOS):
; Este es mi primer script
MsgBox(0, "Mi Primer Script!", "Hola Mundo!")
Los Scripts ms complejos pueden usar funciones, que son ubicadas generalmente al final del
archivo. Aqu hay un script que utiliza funciones:
; Este es mi segundo script (con funciones)
MsgBox(0, "Mi segundo script!", "Hola desde el script principal!")
PruebaFunc()
Func PruebaFunc()
MsgBox(0, "Mi segundo Script!", "Hola desde la funcin!")
EndFunc
Parmetros de la Lnea de Comandos
El arreglo especial $CmdLine es inicializado con los parmetros de la linea de comandos
ingresados a su script AutoIt. Ntese que el nombre del script no es clasificado como un
parmetro; en su lugar capture esa informacin con @ScriptName. Un parmetro que
contiene espacios debe confinarse entre "comillas". Scripts compilados aceptan parmetros
de la lnea de comandos en la misma forma.
$CmdLine[0] es el nmero de parmetros
$CmdLine[1] es el param 1 (despus del nombre del Script)
$CmdLine[2] es el param 2 etc
...
$CmdLine[$CmdLine[0]] es una forma de obtener el ltimo parmetro...
nota: los parmetros de lnea de comandos son separados por un espacio.
19

De esta manera, si su script luciera as:


[Link] miscript.au3 param1 "este es otro param"
$CmdLine[0] equivale a... 2
$CmdLine[1] equivale a... param1
$CmdLine[2] equivale a... este es otro param
@ScriptName equivale a... miscript.au3
Cabe agregar que en $CmdLine hay una variable llamada $CmdLineRaw que contiene la linea
de comandos sin separar, aplicado entonces al ejemplo de arriba:
$CmdLineRaw equivale a... miscript.au3 param1 "este es otro param"
Si el script estuviera compilado debera ser ejecutado como sigue:
[Link] param1 "este es otro param"
$CmdLineRaw equivale a... param1 "este es otro param"
Ntese que $CmdLineRaw unicmente retorna los parmetros.
Nota : solamente es posible retornar 63 parmetros con $CmdLine[...], pero $CmdLineRaw le
permitir siempre obtener la lnea de comandos completa.
Interruptores especficos de AutoIt para la Lnea de Comandos
Forma1: [Link] [/ErrorStdOut] [/AutoIt3ExecuteScript] archivo [params ...]
Ejecuta un Archivo Script de AutoIt3
/ErrorStdOut Permite redirigir un error fatal al StdOut, el cual puede ser capturado por una
aplicacin como el editor Scite. Es posible utilizar este interruptor con un script compilado.
Para ejecutar un Archivo Script estndar de AutoIt 'miscript.au3', use el comando:
'[Link] miscript.au3'
Forma2: [Link] [/ErrorStdOut] [params ...]
Ejecuta un archivo Script AutoIt3 compilado producido con Aut2Exe.
Forma3: [Link] [/ErrorStdOut] [/AutoIt3ExecuteScript file] [params ...]
Ejecuta otro archivo script desde un archivo Script compilado AutoIt3. As usted no
necesita usar fileinstall con otra copia del [Link] dentro del mismo archivo compilado.
Forma4: [Link] [/ErrorStdOut] /AutoIt3ExecuteLine "lnea de comando"
Ejecuta una lnea de cdigo.
Para ejecutar una lnea simple de cdigo, use el comando:
20

Run(@AutoItExe & ' /AutoIt3ExecuteLine "MsgBox(0, ''Hola Mundo!'', ''Hola!'')"')


El cono Tray no ser mostrado cuando utiliza /AutoIt3ExecuteLine
NOTA: El uso correcto de comillas- y apstrofes- es importante, invariablemente comillas.
La Forma3 y Forma4 pueden ser deshabilitadas para scripts compilados cuando se utiliza
#NoAutoIt3Execute.

21

AutoIt sobre Windows Vista


Windows Vista proporciona nuevas caractersticas de seguridad para restringir la ejecucin de
archivos que requieran privilegios administrativos. Incluso los usuarios administradores sern
advertidos cada vez que un ejecutable realice alguna operacin administrativa (como por
ejemplo escribir a la llave del registro HK EY_LOCAL_MACHINE o escribir en el directorio
C:\Windows). A esto se lo denomina Control de la cuenta del Usuario (UAC).
De manera predefinida, los scripts de AutoIt corren con los permisos de usuarios estndar,
pero AutoIt fue diseado para permitirle al autor del cdigo, la opcin de "marcar" su script
con el fin de decirle a AutoIt si para ser ejecutado correctamente, necesitar de privilegios
administrativos o no.
Para forzar un script a que intente correr con privilegios administrativos, agregue la directiva
#requireadmin en el nivel superior de su cdigo, tal como sigue:
; Este script requiere privilegios Administrativos completos
#requireadmin
MsgBox(0, "Info", "Este script tiene derechos administrativos! ")
Cuando el script se ejecuta, AutoIt revisar si ya tiene los privilegios administrativos, y en caso
de que no fuera as, el sistema operativo enviar una alerta al usuario requiriendo su permiso,
tal como se muestra en "Alertas UAC". Si el permiso no es otorgado por el usuario, el script
terminar.
Alertas UAC
Las alertas que Vista mostrar cuando ejecute un programa con privilegios administrativos se
muestran debajo. Los tipos de alertas que se muestren dependern de si el usuario es un
"usuario estndar" o bien un "usuario administrador" (recuerde que incluso los
administradores necesitan elevar sus permisos para realizar operaciones administrativas).
Nota: Los avisos de alerta mostrados estn con la versin digitalmente firmada de AutoIt todas las versiones lanzadas estn firmadas, aunque las versiones beta pueden no estarlo, y
darn como resultado una advertencia como se muestra debajo en "Scripts Compilados".
Alertas de Usuario Estndar

22

Un usuario estndar debe seleccionar un nombre de usuario e ingresar una contrasea para
poder continuar y correr el script que requiera permisos superiores.
Alertas de Usuario Administrador

23

Como el usuario ya es administrador del sistema y solamente se requieren permisos


superiores, para continuar deber hacer un clic de confirmacin - no es necesario ingresar la
contrasea.
Scripts Compilados
Los scripts Compilados (y posiblemente versiones beta de AutoIt) no estn digitalmente
firmadas y por tanto darn un aspecto ms serio a la alerta, tal como se muestra a
continuacin:

El usuario debe efectuar un clic para Permitir que contine (o entrar la contrasea si es un
usuario estndar).
Si tiene su propia firma de autentificacin para cdigo, podr firmar sus scripts compilados
usted mismo.
Importante: Aunque AutoIt o un script compilado se firme o no debera correr solamente
los scripts de fuentes en las cuales usted confe!
Incluso cdigo firmado puede resultar malicioso!

24

Editores de Script
Los scripts de AutoIt son simples archivos de texto que pueden ser editados empleando slo el
Bloc de Notas de Windows. Sin embargo, son muchos los editores gratuitos, o los que
disponen de versiones de prueba, que son ms efectivos para escribir cdigo, ofrecen sintaxis
que resalta las palabras claves y las funciones de AutoIt, consiguiendo que el desarrollo sea
mucho ms sencillo a la vez que disminuyen la probabilidad de cometer errores.
El Editor usado actualmente por la mayora de los usuarios de AutoIt es SciTe, El equipo de
desarrollo de AutoIt cre una versin personalizada de SciTe con sintaxis completa que se
resalta mientras escribe, adems de integrar varias herramientas de AutoIt (como el control de
Sintaxis y Ordenamiento de escritura). La versin de SciTe para AutoIt puede encontrarla en
[Link]
Otros editores recomendados son:

TextPad
Crimson Editor (gratuito)
Source Edit (gratuito)
UltraEdit

En los foros podr encontrar diversidad de opiniones de los usuarios y los argumentos que
cada uno propone sobre cual es el mejor. :)
AutoIt proporciona algunos archivos de sintaxis pre-escritos para muchos editores que usted
puede encontrar en el directorio Extra de la instalacin (existe un enlace en el Men Inicio /
AutoIt v3 / Extras).

25

Compilando Scripts con Aut2Exe


Es posible tomar sus scripts .au3 y compilarlos en un ejecutable independiente ; Este
ejecutable podr ser usado sin requerir que AutoIt se encuentre instalado en el sistema ni
tener el archivo [Link] en la mquina. Adems, el script a compilar ser comprimido y
encriptado, contando usted con la opcin de aadir archivos adicionales al exe (tambin
comprimidos/encriptados), por medio de la funcin FileInstall . Incluso, cualquier archivo
#include podr ser compilado dentro del script sin necesidad de contar con libreras externas.
Precaucin: el script a ser compilado debe estar libre de errores en la sintxis ya que la
compilacin no lo revisar.
Aut2Exe puede emplearse en tres diferentes maneras:
Mtodo 1 - Men Inicio
nicamente disponible si se realiz la instalacin completa.
1. Abra el Men Inicio y dirjase al grupo AutoIt v3.
2. Clic en Script Compiler \ Convert .au3 to .exe
3. La interfaz principal de Aut2Exe debera aparecer.

26

4. Use los botones de navegar para seleccionar la ruta de su archivo (.au3) de entrada y el
(.exe) de salida.
5. Si usted desea cambiar el icono del .exe - sencillamente examine hasta hallar el icono que
prefiera (algunos iconos de ejemplo son proporcionados en Archivos de
Programa\AutoIt3\Aut2Exe\Icons).
6. Si usted no quiere que nadie pueda decompilar su script (siempre y cuando haya un
decompilador disponible) entonces debera ingresar una clave en la entrada destinada a tal fin.
7. La nica opcin restante que usted quizs desee cambiar es el nivel de compresin
(especialmente si usa FileInstall para agregar archivos extra). Use el men de Compresin para
ajustar ese valor a su gusto. Al igual que con todas las rutinas de compresin, los mejores
niveles los conseguir seleccionando la opcin ms lenta. Sin embargo, sin importar que nivel
de compresin elija, la velocidad de descompresin (mientras el .exe est corriendo) no
variar.
8. Clic en Convert para compilar el script.
Nota: Los scripts pueden ser compilados con la extensin *.a3x. Ellos deberan ejecutarse en la
forma [Link] NombreArchivo.a3x. El *.a3x contiene el script propiamente dicho, adems
de los archivos incluidos con FileInstall. Este formato permite distribuir archivos ms pequeos
ya que no incluyen dentro del mismo script compilado el intrprete [Link]. Usted
necesitar disponer sin embargo del archivo [Link] en la mquina destinataria, pero de
ningn otro.
Mtodo 2 - Clic derecho
nicamente disponible si se realiz la instalacin completa.
1. Con el Explorer navegue hasta el archivo .au3 que se dispone a compilar.
2. Clic en el archivo para desplegar el men emergente.

3. Se efectuar la compilacin del archivo seleccionado en segundo plano y con el mismo


nombre de origen - exceptuando la extensin, que cambiar a .exe.

27

Cuando se compila de esta forma, Aut2Exe utiliza los valores de icono/compresin actuales
(desde la ltima vez que Aut2Exe fue ejecutado manualmente a travs del mtodo 1).
Mtodo 3 - La Lnea de comandos
El programa [Link] puede ejecutarse desde la lnea de comandos como sigue:
[Link] /in <ArchivoEntrada.au3> [/out <[Link]>] [/icon <[Link]>]
[/nodecompile] [/comp 0-4] [/pass <clave>] [/nopack][x64] [/bin <[Link]>]
Donde
Parmetro

Uso

Valor predefinido

/in

<ArchivoIngresado.au3> Especifica la ruta y el Ninguno. El archivo debe


nombre del archivo del script a compilar.
ser proporcionado

/out

<[Link]> Especifica la ruta y el


El nombre del archivo
nombre
del
archivo
compilado.
ingresado con la extensin
<ArchivoDeSalida.a3x> Especifica la ruta y el
.exe
nombre del archivo cuando crea uno del tipo *.a3x

/icon

<[Link]> Especifica la ruta y el


nombre del archivo a ser usado por el exe El icono AutoIt
compilado.

/comp

Declara el nivel de compresin que ser usado


cuando codifique el script (esto NO tiene relacin
con
el
UPX). 2
Debe ser un nmero en el rango de 0 (ninguno) y 4
(mximo).

/nopack

Especifica que el archivo no deber ser


comprimir
comprimido con UPX despus de la compilacin.

/pack

Especifica que el archivo debe ser comprimido con


comprimir
UPX despus de la compilacin.

/x64

Especifica que el script deber ser compilado para


ver notas
utilizarse en sistemas de arquitectura x64.

/x86

Especifica que el script deber ser compilado para


ver notas
utilizarse en sistemas de arquitectura x86 (32-bit).

/console

Especifica que el script debe ser compilado como


aplicacin Windows (/gui)
una aplicacin de Consola.

28

/gui

Especifica que el script debe ser compilado como


aplicacin Windows (/gui)
una aplicacin Windows.

/bin

<[Link]> Especifica la ruta y nombre del busca en el directorio


archivo bin a ser usado para compilar el archivo.
Aut2exe

Ejemplos de Lnea de Comando


/in c:\MiCodigo.au3 /out c:\[Link] /icon c:\[Link] /x64
Dar como resultado la creacin de c:\[Link] con una compresin normal, un icono
personalizado y estar compilado para utilizarse en sistemas de arquitectura x64.
/in c:\MiCodigo.au3
Dar como resultado la creacin de un ejecutable unicode c:\[Link] con compresin
normal, icono predefinido de AutoIt, y apto para correr en sistemas win_32.
Notas de la Lnea de Comando
Los nombres de archivo que son largos deberan encerrarse entre comillas, como por
ej. "C:\Archivos de Programa\Test\Prueba.au3".
Con la excepcin de /in todos los dems parmetros son opciones.
Si no se especifica una "salida" para el archivo, se establecer el mismo nombre que para la
entrada, pero con la extensin .exe.
Por defecto, el compilador de 32-bit produce un binario de 32-bit y el compilador de 64-bit
produce binarios de 64-bit. Puede utilizar los parmetros /x86 y /x64 para especificar
explsitamente el tipo de salida.
Los parmetros /pass y /nodecompile son redundantes para la versin [Link]. Estos sern
ignorados y descartados prontamente.
The /ansi and /unicode switches are redundant as of version [Link].
Los caracteres /ansi y /unicode son redundante para la versin [Link].
Detalles Tcnicos

29

Los scripts compilados y aquellos archivos adicionales que fueran aadidos con FileInstall, son
comprimidos con el esquema de (Jon).
Debido a que un script compilado tiene que disponer de la habilidad de "ejecutarse" sin
requerir de una clave que le posibilite desencriptarse a s mismo - ej., el encriptado es en dossentidos, usted debe considerar al exe compilado como una codificacin cuyo proceso no
puede ser sealado libre de todo riesgo. Podramos sin embargo asegurarle que el usuariofinal no tendr un fcil acceso al contenido del archivo *.exe.

30

Herramienta de informacin de ventana de AutoIt


AutoIt v3 viene con una herramienta integrada, La Herramienta AutoIt para Informacin de
Ventanas (Archivos de programa\AutoIt3\[Link]). AU3Info le permite capturar
informacin desde una ventana especificada, que puede utilizarse luego para automatizarla. La
informacin obtenida incluye:

Ttulos de ventanas

Texto de la ventana (visible y oculto)

Tamao y posicin de la ventana

Contenido de la barra de estado

Ubicacin del puntero del ratn

Color de los pixels bajo el cursor

Detalles del Control bajo el puntero del mouse.

Para usar AU3Info simplemente ejectelo desde la lnea de comandos, o bien el Men Inicio.
La ventana AU3Info permanecer con atributo "siempre encima", de modo que siempre podr
leerla. Elija ahora la ventana en la que est interesado obtener informacin y actvela - el
contenido de AU3Info cambiar entonces, y mostrar la informacin que est disponible en
ella. Con la ayuda de AU3Info, antes que pueda darse cuenta ya estar automatizando
ventanas!
Cuando AU3Info est en ejecucin, si usted desea obtener una copia del texto, puede usar
CTRL-C y pegarla directamente en su script, evitar as posibles errores al transcribir. Para
pestaas que contienen informacin en una vista de lista (como la informacin del control
mostrada debajo), simplemente haga doble-click en la entrada y la copiar al portapapeles. Sin
embargo puede tornarse complicado si lo que usted quiere es capturar informacin de un pixel
del ratn que est en cambio constante. Para facilitar las cosas puede "detener" la salida de
datos de AU3Info presionando CTRL-ALT-F. Presione estas teclas nuevamente para "retomar".
Aqu hay un ejemplo de AU3Info sobre una Ventana del Editor "WordPad":

31

Ttulos y texto de Ventanas (Bsico)


Al automatizar, muchas ventanas pueden ser identificadas nicamente por su ttulo o una
combinacin de su ttulo & texto. Y utilizando la Herramienta de Informacin de Ventana de
AutoIt(o a primera vista) esta informacin puede ser obtenida fcilmente. Los ttulos de
muchas ventanas son muy obvios, por ejemplo Untitled - Notepad es el ttulo del programa
[Link] y en muchos casos esto es suficiente para automatizar.
Nota: Si una cadena vaca "" es da para el ttulo y el texto entonces la ventana activa puede
ser usada (esto no es cierto en algunos de los ms avanzados descritos en
WinTitleMatchModes)!
El ttulo de ventana y el texto es case sensitivo. Usted debe hacer coincidir la fuente de letra y
la puntuacin exactamente! Para evitar problemas seleccione el ttulo/texto en la Herramienta
de Informacin de Ventana y use ctrl-c para copiar este y pegarlo directamente en su script.
La mayora de las funciones de ventanas de AutoIt tienen parmetros para el ttulo y el texto,
aqu mostramos la funcin WinWaitActive. Esta funcin pausa la ejecucin del script mientras
la ventana especificada es restaurada y activada.
WinWaitActive "ttulo", ["texto"], [espera]
ttulo es el nico parmetro requerido en esta funcin, los dems: texto y espera son
opcionales. En algunas funciones el parmetro texto no es opcional, si usted no tiene el deseo
de especificar algn texto solamente use "" (una cadena en blanco). Una cadena en blanco, o
absolutamente nada, en el texto le dice a AutoIt que cualquier texto es vlido.
Para usar la funcin de arriba con cualquier ventana del notepad ambos mtodos funcionan:
[Link] "Untitled - Notepad"
y
[Link] "Untitled - Notepad", ""
Si la misma ventana del notepad tiene "This is a line of text" tipeada dentro de la ventana, la
Herramienta de Informacin de Ventana de AutoIt mostrar:

32

Note que la Herramienta de Informacin de Ventana a visto el ttulo y el texto de la ventana


del notepad. Cualquier cosa que viere la Herramienta de Informacin de Ventana lo puede ver
tambin AutoIt. Ahora poseemos informacin para identificar exactamente cada ventana del
notepad abierta. En este caso procedemos as:
[Link] "Untitled - Notepad", "Esto es un texto!"
Texto de ventana
El texto de ventana consiste en todo el texto que AutoIt puede "ver". Estos son usualmente
algunas cosas como los contenidos de controles de edicin (como el de ms arriba "This is a
line of text") pero tambin puede incluir otros texto como:

Texto del botn como &Yes, &No, & Next (el signo & indica una letra subrayada)

Texto de dilogos "Usted est seguro de estar comprendiendo?"

Texto de controles

Texto variado - algunas veces usted no sabe que significa :)

Lo importante es que usted puede utilizar el texto junto con el ttulo para identificar
nicamente una ventana y operar con esta.
Cuando usted especifica el parmetro texto en una funcin de ventana este es tratado como
una cadena. De esta forma para el ejemplo usado ms arriba "esto es un " usted obtendr una
coincidencia.
Lo que se ha descrito es el modo por defecto como opera AutoIt, existen modos avanzados
para usar cuando las cosas no son tan simples.
Nota: Ventanas ocultas pueden coincidir por "ttulo" solo si "texto" est en blanco ("").

33

Ttulos y texto de Ventanas (Avanzado)


AutoIt opera en uno de los tres modos de "Coincidencia de Ventana". Estos modos son
establecidos con la funcin AutoItSetOption usando la opcin WinTitleMatchMode.
Modo 1 (por defecto)
Coincidencia parcial del ttulo desde el inicio.
En este modo el ttulo de ventana Untitled - Notepad coincide con cualquiera de estos:
"Untitled - Notepad", "Untitled", "Un", etc.
Ejemplo:
[Link] "Untitled"
Modo 2
Coincidencia de cualquier sub-cadena en el ttulo.
En este modo un ttulo como Untitled - Notepad coincide con cualquiera de estos: "Untitled Notepad", "Untitled", "Notepad", "pad", etc.
Ejemplo:
[Link] "Notepad"
Modo 3
Coincidencia exacta del ttulo.
En este modo un ttulo de ventana como: Untitled - Notepad solo coincide con: "Untitled Notepad"
Mode 4 (Combinando los modos anteriores)
Modo avanzado
Debe ser reemplazado con Descripcin Avanzada de Ventanas pues no necesita ningn modo
para ser establecido.
Modo -1 a -4
Fuerza la coincidencia en minscula acorde con otro tipo de coincidencia.
Descripcin Avanzada de Ventanas
Una descripcin especial puede ser utilizada como el parmetro ttulo de la ventana. Esta
descripcin puede ser usada para identificar una ventana por las siguientes propiedades:
34

TITLE -Ttulo de la ventana

CLASS - El nombre de clase (classname) de la ventana

REGEXPTITLE -Ttulo de la ventana usando expresiones regulares

REGEXPCLASS -El nombre de clase (classname) de la ventana usando expresiones


regulares

LAST - La ltima ventana usada en un comando previo de AutoIt

ACTIVE - Ventana actualmente activa

X \ Y \ W \ H - la posicin y tamao de la ventana

INSTANCE - La intancoa de base-1 cuando todas las propiedades coinciden.

HANDLE - La direccin del identificador retornado por el mtodo WinGetHandle

Una o ms propiedades son usadas en el parmetro ttulo parameter de un comando de


ventana en el formato:
[PROPIEDAD1:Valor1; PROPIEDAD2:Valor2]
Nota : si un Valor contiene el carcter ";" este debe ser duplicado.
ejemplo: Espera una ventana de nombre de clase (classname) "Notepad"
[Link] "[CLASS:Notepad]", ""
ejemplo: Cierra la ventana activa actual
[Link] "[ACTIVE]", ""
ejemplo: Espera por la una 2da instancia de la ventana con ttulo: "Mi Ventana" y classname
"My Class"
[Link] "[TITLE:My Window; CLASS:My Class; INSTANCE:2]", ""
Nota : si un valor debe contener ";" este debe ser duplicado.

35

Controles
Uno de los rasgos novedosos ms destacables en AutoIt v3 es la habilidad para trabajar
directamente con diversos tipos de Controles en Ventanas. Casi todo lo que usted puede ver
dentro de una Ventana es un control: botones, etiquetas de texto, grupos, campos de edicin
(por citar solo algunos) son controles. De hecho, el sencillo Bloc de Notas es un enorme
"control Editor" ! Como AutoIt acta directamente con los controles, es un mtodo muy
confiable para automatizar todo, en vez de simplemente efectuar los envos desde el teclado.
Nota: AutoIt solamente funciona con controles estndar de Microsoft - algunas aplicaciones
usan controles propios y aunque pueden lucir muy similares a un control de MS probablemente
resistan la automatizacin. Experimente!
Usando la Herramienta de Informacin de Ventana de AutoIt usted puede mover su ratn en
torno al interior de la ventana que le interesa y podr tomar informacin del control que en
ese momento se encuentre bajo la posicin del ratn.

Control ID

ClassNameNN

Texto

Donde usted vea un comando Control...() se espera un parmetro Control ID (en la mayora de
ellos). Usted puede usar uno de estos mtodos. El mtodo que usted escoja depender de sus
preferencias personales y de la informacin que sea capaz de extraer de la Herramienta de
Informacin de Ventana de AutoIt. En general, el mejor mtodo para usar es el Control ID, con
los otros mtodos se puede obtener resultados si Control ID no es disponible o no es nico
(por lo general con texto esttico cada parte del texto en realidad tiene el mismo ID de
control por lo que tendr que utilizar uno de los otros mtodos para trabajar con los
controles)
Control ID
El ID del Control es un identificador numrico interno que Windows asigna a cada control.
Podra decirse que es (por lo general) el mejor mtodo para identificar controles. Adems de la
Herramienta AutoIt para informacin de Ventanas, otras aplicaciones tales como lectores de
pantalla para personas ciegas y herramientas de Microsoft/Apis pueden permitirle tambin
acceder al ID del Control.
ClassNameNN
Cada control estndar de Microsoft tiene un "nombre de clase" como "botn" o "editor". En
AutoIt ste se combina con la asignacin de una "instancia" propia para cada control, dado su
mtodo "NombreDeClaseNN". Si usted visualiza una ventana con unos pocos botones
contenidos en la misma, a ellos se referir entonces como "Botn1", "Botn2", "Botn3", etc.
Este mtodo es muy til cuando el ID del control no puede emplearse (como texto esttico y
controles personalizados).
Texto

36

Sepa a partir de ahora que AU3Info le proporciona el texto visible en un control, as por
ejemplo un botn con la leyenda Siguiente podr verlo con el texto &Siguiente - el & le indica
que la letra consecutiva est subrayada, circunstancia comn cuando trabaja con mens y
controles. Usted podr usar ese texto para identificar el control en lugar de utilizar el
"NombreDeClaseNN", si as lo desea - Sin embargo, si muchos controles poseen el mismo
texto, emplear ste mtodo puede resultarle problemtico.
Observe los contenidos de Referencia de Mtodo \ Administracin de Ventanas\ Controles
para una lista de funciones que trabajan con estos controles.

37

Soporte Unicode
Desde la versin [Link] AutoIt es ofrecido como un programa Unicode. La versin Unicode
permite que sus amigos del mundo puedan puedan entender los caracteres y scripts de AutoIt!
Nota: la versin Unicode de AutoIt ([Link]) y los scripts compilados en modo Unicode
solo pueden ser ejecutados bajo Windows NT/2000/XP/2003/Vista y mquinas posteriores.
Para permitir a los scripts ejecutarse bajo Windows 9x estos deben usar las versiones
anteriores de AutoIt. La ltima versin compatible con Windows 9x fu la 3.2.12.x.

[Link] - Versin Unicode


[Link] - Versin ANSI

Las versiones Unicode permitirn a nuestros amigos de todo el mundo finalmente usar AutoIt
y tambin scripts con carcteres extendidos!
Note: La versin Unicode de AutoIt ([Link]) y los scripts compilados en modo Unicode
sern solo ejecutados en Windows NT/2000/XP/2003/Vista y plataformas posteriores. Para
permitir a scripts ejecutarse en Windows 9x estos deben disearse en versiones anteriores
de AutoIt. La ltima versin compatible con Windows 9x fu 3.2.12.x.
AutoIt leer un fichero de script en formato ANSI o UTF16 (big o little endian) / UTF8 con un
BOM vlido. En adicin, funciones como FileReadLine automticamente leern texto en
ficheros ANSI y UTF16/UTF8 proveyendo un BOM encontrado. Ficheros UTF8 con o sin BOM
son tambin soportados.
Funciones de salida como FileWriteLine pueden usar los formatos ANSI, UTF16 y UTF8 - pero
los ficheros deben ser habiertos en el modo deseado usando los flags adecuados en la funcin
FileOpen de otro modo ANSI ser el modo usado.
Los formatos de de ficheros de texto soportados y scripts en los editores populalares son
mostrados en esta tabla:
Notacin de AutoIt

Notepad

Notepad++

SciTe (Editor por defecto en AutoIt)

ANSI

ANSI

ANSI

8 bit / Code Page Property

UTF16 Little Endian

Unicode

UCS-2 Little Endian

UCS-2 Little Endian

UTF16 Big Endian

Unicode big endian

UCS-2 Big Endian

UCS-2 Big Endian

UTF8 with BOM

UTF-8

UTF-8

UTF-8 with BOM

UTF8 without BOM

Not supported

UTF-8 without BOM

UTF-8

38

El formato de script recomendado es UTF-8. Formatos ANSI no son recomendados para otros
lenguajes aparte de Ingls pues puede provocar errores cuando se ejecutan en mquinas con
otro entorno local.
Limitaciones actuales
Existen algunas porciones de AutoIt que an no soportan totalmente Unicode. Estas son:

Send y ControlSend - en su lugar, Use las funciones ControlSetText o Clipboard.


Operaciones de Console son convertidos a ANSI.

Estas limitaciones sern atendidas en futuras versiones si es posible.

39

Corriendo bajo Edicin de Windows de 64-bits


AutoIt ha sido tradicionalmente una aplicacin de 32-bits. Con el lanzamiento de la versin
[Link] algunos componentes nativos x64 fueron agregados, incluyendo:

AutoIt (AutoIt3_x64.exe)
Aut2Exe (Aut2Exe_x64.exe)
Au3Info (Au3Info_x64.exe)
AutoItX (AutoItX3_x64.dll)

Durante la instalacin, si se est corriendo sobre una plataforma x64 se le dar opcin de
instalar y configurar la versin a x64. Esas versiones son compatibles al 100% sobre x64, sin
embargo, algunos scripts que usan DllCall/DllStruct con estructuras personalizadas, pueden
usar valores que causen conflictos con la compatibilidad a 64-bits (tales como usar enteros
para punteros de 32-bits). Esto incluye algunos de los UDFs suministrados con AutoIt, los
cuales no han sido revisados bajo x64.
Puede correr la versin x86 de AutoIt haciendo click derecho sobre un script dado y seleccione
de la lista la opcin "Ejecutar Script (x86)".
Si sospecha que un script no est trabajando correctamente bajo x64 pero si lo hace bajo x86,
por favor, reprtelo como un bug.
Para ver si su Edicin de Windows es una versin de 64-Bits, use la macro @OSArch. Para ver si
se est utilizando la versin de AutoIt a 32 o 64-bits, use @AutoItX64.
Corriendo la versin 32-bits de AutoIt sobre un Sistema x64
Para acceder a archivos, Windows tiene un mecanismo de redireccin especial hacia algunos
directorios del sistema:
Directorios

Valores 32-bits

Valores 64-Bits

@SystemDir

@Windowsdir & "\System32"

@Windowsdir & "\SYSWOW64"

@ProgramFilesDir

{systemDrive} & "\Program Files"

{SystemDrive}
Files(x86)"

&

"\Program

Es posible acceder a la versin de 64-bit de algunos directorios desactivando el mecanismo de


redireccin.
DllCall("[Link]", "int", "Wow64DisableWow64FsRedirection", "int", 1)
Puede encontrar alguna informacin adicional en MSDN.
Para el registro, use HKCR64 o HKLM64 si desea omitir el mecanismo de redireccin, vea
documentacin sobre Funciones del Registro.
40

Referencia del Lenguaje - Tipos de Datos


En AutoIt hay un nico tipo de dato llamado Variante (Variant). Una variante puede contener
datos numricos o de cadena dependiendo de lo que se que almacene en ella y de la situacin
en que esta se emplee. Por ejemplo, si usted efecta una multiplicacin entre dos variantes,
ellas entonces sern tratadas como nmeros, si en cambio concadena (une) dos variantes
sern tratadas como cadenas.
Algunos ejemplos:
10 * 20 equivale al nmero 200 (* se utiliza para multiplicar entre dos nmeros)
10 * "20" equivale al nmero 200
"10" * "20" equivale al nmero 200
10 & 20 equivale a la cadena "1020" (& se utiliza para unir dos cadenas diferentes)
Si una cadena se utiliza como nmero, se hace un llamado implcito a la funcin Number(). Si
sta no contiene ningn nmero, entonces se asume un valor igual a 0. Por ejemplo,
10 * "fgh" equivale al nmero 0.
Si una cadena se utiliza como valor booleano y la misma es una cadena vaca "", ser
considerada como False (vea debajo). Por ejemplo,
NOT "" equivale al booleano true.
Nmeros
Los nmeros pueden ser decimales estndar tales como 2, 4.566, y -7.
Tambin soporta la notacin cientfica; por consiguiente, usted puede escribir 1.5e3 en lugar
de 1500.
Los nmeros enteros pueden a su vez representarse con notacin hexadecimal, si precediendo
al entero usted coloca 0x as 0x409 o 0x4fff (cuando usa notacin hexadecimal solamente
nmeros de 32-bit son vlidos).
Cadenas
Las cadenas deben expresarse encerradas entre comillas como "estas". Si usted quiere usar
una cadena que contiene comillas en su interior, duplquelas:
"aqu est entre ""comillas-dobles"" - se comprendi?"
Incluso puede usar apstrofes como 'estos' y 'colocar tambin ' 'apstrofes-dobles' ' - si?'

41

Combine ambos mtodos para facilitarse el trabajo y evitar el duplicado de comillas en forma
sencilla. Por ejemplo, si lo que quiere es usar una enorme cantidad de comillas en cadenas,
entonces utilice apstrofes para declararlas:
'Esta "sentencia" contiene "cantidad" de "comillas" no es cierto?'
sera ms simple que:
"Esta ""sentencia"" contiene ""cantidad"" de ""comillas"" no es cierto?"
Cuando se evalan, las cadenas pueden manifestar substitucin de variables Env o Var de
acuerdo a la definicin mediante la funcin Opt() .
Booleanos
Los Booleanos son valores lgicos. Solamente hay dos valores posibles: true y false.
Es posible utilizarlos en asignaciones de variables, junto con los operadores Booleanos and, or
y not.
Ejemplos:
$Boolean1 = true
$Boolean2 = false
$Boolean3 = $Boolean1 AND $Boolean2
Resultar que $Boolean3 es false
$Boolean1 = false
$Boolean2 = not $boolean1
Resultar que $Boolean2 es true
Si los valores Booleanos son utilizados junto con nmeros, se aplican las siguientes reglas:
Un valor numrico 0 equivale al Booleano false
Cualquier otro nmero equivale al Booleano true
Ejemplo:
$Number1 = 0
$Boolean1 = true
$Boolean2 = $Number1 and $Boolean1
Resultar que $Boolean2 es false
Si utiliza aritmtica con los valores Booleanos (lo cual no se recomienda en lo absoluto!), se
aplican las siguientes reglas:
Un Booleano true se convertir en el valor numrico 1

42

Un Booleano false se convertir en el valor numrico 0


Ejemplo:
$Boolean1 = true
$Number1 = 100
$Number2 = $Boolean1 + $Number1
Resultar que $Number2 tiene por resultado 101
Si utiliza cadenas con los valores Booleanos, sern convertidos como sigue:
Un Booleano true ser convertido al valor de cadena "True"
Un Booleano false ser convertido al valor de cadena "False"
Ejemplo:
$Boolean1=true
$String1="La verdadera prueba es: "
$String2=$String1 & $Boolean1
Resultar que $String2 es una cadena con el contenido "La verdadera prueba es: True"
Al revs sin embargo es diferente. Cuando usted usa comparaciones de cadenas con valores
Booleanos, se aplican las siguientes reglas:
nicamente una cadena vaca ("") equivale al Booleano false
Cualquier otro valor de cadena (incluso conteniendo el texto "0") ser un Booleano true
Tipo Binario (Binary)
El tipo Binario puede almacenar cualquier valor de byte. Los mismos pueden ser convertidos a
una representacin hexadecimal cuando se almacenan en una variable del tipo Cadena.
Ejemplo:
$bin = Binary("abc")
$str = String($bin) ; "0x616263"
Puntero
El tipo Puntero almacena una direccin de memoria que puede ser de 32bits o 64bits
dependiendo sobre que versin de AutoIt de 32bit o 64 bit se est trabajando. Son convertidos
a una representacin hexadecimal cuando se almacenan en una variable del tipo Cadena. Los
punteros de ventana (HWnd) son retornados con WinGetHandle como tipos de dato
"Puntero".

43

Tipos de Datos y Rangos


La tabla siguiente muestra los tipos de datos variantes y sus respectivos rangos.
Ejemplo:
$bin = "abc" & chr(0) & "def"
$bin = BinaryString("abc")

Rangos del Tipo de Datos


La tabla siguiente le muestra el rango de valores que un tipo de dato variante puede contener.
SubTipo de
Dato
Int32
Int64
Double
String
Binary
Pointer

Rango y Notas
Un nmero entero con signo a 32bit.
Un nmero entero con signo a 64bit.
Un nmero de "doble precisin" de coma flotante.
Puede contener cadenas de hasta [Link] caracteres.
Datos Binarios, pueden contener hasta [Link] bytes.
Un puntero a una direccin de memoria. De 32bit o 64bit dependiendo de la
versin de AutoIt que se utiliza.

Algunas funciones de AutoIt solo trabajan con nmeros de 32 bit (ej: BitAND) y son
convertidos automticamente - las funciones que lo hacen se documentan.

44

Referencia del lenguaje - Variables


Una variable es sencillamente, un lugar en la memoria donde se almacenan datos a los que es
posible acceder rpidamente. Usted puede colocar alguna informacin all y tambin puede
recuperarla o cambiarla. Para ejemplificar, usted debe crear una variable para guardar el texto
con el que un usuario responde a una pregunta, o el resultado de una ecuacin matemtica.
Cada variable tiene un nombre que debe comenzar con el carcter $ y slo es posible que
contenga letras, nmeros y el carcter _ (guin bajo). Aqu algunos ejemplos de nombres:
$var1
$mi_variable
$_mivariable
Cualquier variable es almacenada con el tipo de dato variante.
Declaracin de variables
Las variables son declaradas y creadas con las palabras claves Dim, Local y Global :
Dim $var1
O pueden declararse varias simultneamente:
Dim $var1, $mivariable
Puede asignarle un valor a la variable sin haberla declarado primero, pero las declaraciones
explcitas son preferibles en muchos casos.
$var1 = "variable creada y asignada"
Declaracin de Constantes
Las Constantes son declaradas y creadas con la palabra clave Const de este modo:
Const $valorPI = 3.14, $apostoles=12
Las Constantes pueden ser declaradas e inicializadas con la palabra clave Enum as:
Enum $const1 = 1, $const2, $const3 ; 1, 2, 3
Enum STEP 2 $incr0, $incr2, $incr4 ; 0, 2, 4
Enum STEP *2 $mult1, $mult2, $mult4 ; 1, 2, 4
Las Constantes no pueden redeclarar una variable ya existente.
Entorno

45

El entorno de una variable es definido de acuerdo a donde y cuando se declara a la misma. Si


usted declara la variable al inicio de su script y por fuera de cualquier funcin esta existir en
un entorno Global y podr ser leda o cambiada en cualquier seccin del script.
Si en cambio se declara dentro de una funcin el entorno ser Local y slo podr ser usada
dentro de la misma funcin. Las Variables creadas en el interior de una funcin son destruidas
inmediatamente cuando esta finaliza.
De manera predefinida, cuando las variables son declaradas empleando Dim o se les asigna
valor en una funcin, el entorno ser Local, a excepcin de que haya una variable Global con el
mismo nombre (en cuyo caso la variable Global es reusada). Esto puede cambiarse al utilizar
las palabras claves Local y Global para declarar variables y as forzar el entorno que usted
desea para ellas.
Arreglos
Un Arreglo es una variable conteniendo elementos en una serie con datos del mismo tipo y
tamao. Es posible acceder a cualquier elemento de la variable mediante un ndice numrico.
Ejemplo:
Digamos que usted quiere almacenar esta serie de caracteres: "A", "U", "T", "O", "I", "T" y "3".
Usted puede emplear siete variables separadas para hacer eso, pero usando un arreglo sera
mucho ms eficiente:
$Arreglo[1]="A"
$Arreglo[2]="U"
..etc..
$Arreglo[7]="3"
La estructura del arreglo $Arreglo puede verse de esta forma:
1

<=ndice

<= valor

$Arreglo

Cada valor dentro del arreglo posee un ndice de referencia, por ejemplo, el valor 'O' tiene el
ndice 4.
Para acceder a un valor especfico del arreglo, usted slo debe saber el nmero ndice
asignado:
$MyChar = $Arreglo[4]
Resultar que $MyChar contiene la letra "O" (Vea tambin: 'operadores').
El ndice numrico puede tambin sustituirse con otra variable o una expresin, por lo tanto
usted puede constituir complejas formas para asignar o acceder a elementos en un arreglo.

46

Los Arreglos pueden crearse multi-dimensionales, cuando usted utiliza mltiple series de
ndices numricos, como ser:
$Arreglo[1][1]="Arriba-Izq"
$Arreglo[2][1]="Abajo-Izq"
$Arreglo[1][2]="Arriba-Derecha"
$Arreglo[2][2]="Abajo-Derecha"
(Estos valores son simplemente para ejemplificar)
Usted puede usar un mximo de 64 dimensiones en un arreglo. El nmero total de entradas no
puede ser mayor que 2^24 (16 777 216).
Antes de comenzar a utilizar un arreglo en su script, debe definir el lmite del mismo
empleando la palabra clave 'Dim'.
Tipos de datos en Arreglos
Nosotros mencionamos que un Arreglo puede contener slo un tipo de datos. Pero
tcnicamente hablando, una Variante en AutoIt puede contener cualquiera, desde un nmero
hasta un valor booleano. Por lo tanto, un arreglo-AutoIt tiene la capacidad de almacenar
cualquier tipo, incluso otros arreglos:
$Arreglo[1]=1
$Arreglo[2]=true
$Arreglo[3]="Texto"
$Arreglo[4]=$OtroArreglo
Esto no ha sido estrictamente prohibido en AutoIt. Sin embargo, NO ES RECOMENDABLE
mezclar diferentes tipos de datos. Especialmente el uso de un Arreglo dentro de otro arreglo
puede afectar severamente la velocidad de ejecucin de su script.

47

Referencia del Lenguaje - Macros


AutoIt tiene un nmero de Macros que son variables especiales de slo-lectura. Las macros
comienzan con el carcter @ en lugar del acostumbrado signo $ as que son fcilmente
distinguibles. Del mismo modo que con las variables, es posible usar macros en expresiones,
sin embargo no puede asignarles un valor a ellas.
Las macros pre-definidas son generalmente utilizadas para proveer un acceso sencillo a
informacin del sistema, como la localizacin del directorio Windows, o el nombre del usuario
que ingres al sistema.
Vaya por aqu para obtener una lista completa.
Macro

Descripcin

@AppDataCommonDir

ruta a la carpeta comn de Datos de aplicacin

@AppDataDir

ruta de la carpeta de Datos de Aplicacin del usuario actual

@AutoItExe

La direccin completa y nombre de archivo del archivo


ejecutable AutoIt actualmente en ejecucin. Para archivos
compilados es la ruta completa del script compilado.

@AutoItPID

PID del proceso ejecutando el script.

@AutoItVersion

Nmero de Versin de AutoIt tal como [Link]

@AutoItX64

Devuelve 1 si el script est ejecutndose bajo la versin nativa


de x64 de AutoIt.

@COM_EventObj

Objeto del evento COM est siendo notificado. Vlido


solamente en la funcin de eventos COM.

@CommonFilesDir

ruta a la carpeta de Archivos Comunes (Common Files)

@Compiled

Devuelve 1 si el script es ejecutable compilado; de otra manera,


devuelve 0.

@ComputerName

Nombre de la Computadora en la red.

@ComSpec

valor de %comspec%, el interpretador secundario especificado


de Comandos;
primordialmente para usos de lnea de comando,
ejemplo Run(@ComSpec & " /k help | more")

@CPUArch

devuelve "X86" cuando la CPU es una CPU de 32-bit y "X64"


cuando la CPU es de 64-bit.

48

@CR

Retorno de Carro, Chr(13); algunas veces es usado para


interrupcin de lnea.

@CRLF

= @CR & @LF ;ocasionalmente usado para interrupcin de


lneas.

@DesktopCommonDir

ruta a la carpeta de Escritorio (Desktop)

@DesktopDir

ruta a la carpeta del Escritorio del usuario

@DesktopHeight

Altura de la pantalla del escritorio en pxeles. (resolucin


vertical)

@DesktopWidth

Ancho de la pantalla del escritorio en pxeles. (horizontal


resolucin)

@DesktopDepth

Rango de la pantalla del escritorio en bits por pxel.

@DesktopRefresh

Tasa de refresco de la pantalla del escritorio en hercios.

@DocumentsCommonDir

ruta de la carpeta a Documentos

@error

Bandera de estado de error. Ver funcin SetError.

@exitCode

Cdigo de Salida establecido por el enunciado Exit.

@exitMethod

Mtodo de salida. Ver Func OnAutoItExitRegister().

@extended

Valor devuelto por la funcin Extended - usado en ciertas


funciones tal como StringReplace.

@FavoritesCommonDir

ruta a Favoritos

@FavoritesDir

ruta a la carpeta de Favoritos del usuario actual

@GUI_CtrlId

Identificador del ltimo control pulsado. Vlido solamente en


una funcin de evento. Ver la funcin GUICtrlSetOnEvent.

@GUI_CtrlHandle

Identificador del ltimo handle pulsado. Vlido solamente en


una funcin de evento. Ver la funcin GUICtrlSetOnEvent.

@GUI_DragId

Identificador del ltimo control arrastrado. Vlido solamente


en una funcin de Evento de Arrastre (Drop Event). Ver la
funcin GUISetOnEvent.

@GUI_DragFile

Nombre del archivo que est siendo arrastrado. Vlido


solamente en una funcin de Evento de Arrastre (Drop Event).
Ver la funcin GUISetOnEvent.

49

@GUI_DropId

Identificador del control arrastrado. Vlido solamente en una


funcin de Evento de Arrastre (Drop Event). Ver la funcin
GUISetOnEvent.

@GUI_WinHandle

El handle de la ltima ventana GUI pulsada. Vlido solamente


en Funcin de evento. Ver la funcin GUICtrlSetOnEvent.

@HomeDrive

Letra de la unidad conteniendo al directorio de inicio del


usuario.

@HomePath

Parte del Directorio de Inicio del usuario actual. Para obtener la


direccin completa, usarlo en conjunto con @HomeDrive.

@HomeShare

Servidor y nombre de recurso compartido del directorio inicio


del usuario actual.

@HOUR

Valor de Horas del reloj en formato de 24-horas. Rango es 00 a


23

@HotKeyPressed

ltimo hotkey presionado. Ver la funcin HotKeySet.

@IPAddress1

Direccin IP del primer adaptador de red. Tiende a devolver


[Link] en algunas computadoras.

@IPAddress2

Direccin IP del segundo adaptador de red. Devuelve [Link] si


no es aplicable.

@IPAddress3

Direccin IP del tercer adaptador de red. Devuelve [Link] si no


es aplicable.

@IPAddress4

Direccin IP del cuarto adaptador de red. Devuelve [Link] si no


es aplicable.

@KBLayout

Devuelve cdigo de acuerdo al esquema del Teclado. Ver


Apndice para posibles valores.

@LF

Avance de lnea, Chr(10); tpicamente usado para saltos de


lnea.

@LogonDNSDomain

Inicio de sesin de dominio de DNS.

@LogonDomain

Inicio de sesin de dominio.

@LogonServer

Inicio de sesin de servidor.

@MDAY

Da del mes actual. Rango es de 01 a 31

@MIN

Valor de los minutos del reloj. Rango es de 00 a 59

50

@MON

Mes en curso. Rango es de 01 a 12

@MSEC

Valores de Milisegundos de reloj. Rango entre 00 y 999

@MUILang

Retorna el cdigo multilenguaje si es disponible (En Vista


funciona por defecto). Ver Apndice para posibles valores.

@MyDocumentsDir

ruta de la carpeta Mis Documentos

@NumParams

Nmero de parmetros utilizados para llamar a los usuarios


funciones

@OSArch

Devuelve un valor de los siguientes: "X86", "IA64", "X64" - Esto


es el tipo de arquitectura del sistema operativo actual en
ejecucin.

@OSBuild

Devuelve el nmero de build del Sistema Operativo. Por


ejemplo, Windows 2003 Server devuelve 3790

@OSLang

Devuelve cdigo de acuerdo al lenguaje del Sistema


Operativo. Ver Apndice para valores posibles.

@OSServicePack

Informacin de Service pack en la forma de "Service Pack 3"

@OSTYPE

Devuelve "WIN32_NT" para


NT/2000/XP/2003/Vista/2008/Win7/2008R2.

@OSVersion

Devuelve uno de los siguientes: "WIN_2008R2", "WIN_7",


"WIN_2008", "WIN_VISTA", "WIN_2003", "WIN_XP",
"WIN_XPe", "WIN_2000".

@ProcessorArch

Devuelve un valor de los siguientes: "WIN_2008",


"WIN_VISTA", "WIN_2003","WIN_XP", "WIN_2000"

@ProgramFilesDir

ruta a la carpeta de Archivos de Programa

@ProgramsCommonDir

ruta a la carpeta del Men de Inicio

@ProgramsDir

ruta a la carpeta de Programas del usuario actual (carpeta de


Menu de Inicio)

@ScriptDir

Directorio conteniendo el script ejecutndose. (El resultado no


contiene una pleca al final)

@ScriptFullPath

Equivalente a @ScriptDir & "\" & @ScriptName

@ScriptLineNumber

Nmero de lnea que est siendo ejecutada en el script actual.


til para enunciados de depuracin especialmente cuando una
funcin es llamada para evaluarse. (No es significante en un
51

script compilado)
@ScriptName

Nombre largo del archivo script en ejecucin.

@SEC

Valor en segundos de la hora. Rango es 00 a 59

@StartMenuCommonDir

ruta de acceso para el men Inicio comn

@StartMenuDir

ruta de acceso para el men Inicio del usuario actual

@StartupCommonDir

ruta a la carpeta de Inicio

@StartupDir

carpeta del inicio del usuario actual

@SW_DISABLE

Desactiva la ventana.

@SW_ENABLE

Activa la ventana.

@SW_HIDE

Oculta la ventana y activa otra.

@SW_LOCK

Bloquea la ventana evitando as pintar sobre ella.

@SW_MAXIMIZE

Maximiza la ventana especificada.

@SW_MINIMIZE

Minimiza la ventana especificada y activa la prxima al frente


segn el orden en Z.

@SW_RESTORE

Activa y muestra la ventana. Si la ventana est minimizada o


maximizada, el sistema restaura a su posicin y tamao
original. Una aplicacin debera especificar esta bandera
cuando se restaura una ventana minimizada.

@SW_SHOW

Activa la ventana y muestra en su posicin y tamao actual.

@SW_SHOWDEFAULT

Establece el estado de muestra de una ventana basado en el


valor SW_ especificado por el programa que inici la aplicacin.

@SW_SHOWMAXIMIZED

Activa la ventana y la muestra como ventana maximizada.

@SW_SHOWMINIMIZED

Activa la ventana y la muestra como ventana minimizada.

@SW_SHOWMINNOACTIVE

Muestra la ventana como ventana minimizada. Este valor es


similar a @SW_SHOWMINIMIZED, excepto que la ventana no
es activada.

@SW_SHOWNA

Muestra la ventana en su tamao actual y posicin. Este valor


es similar a @SW_SHOW, excepto que la ventana no es
activada.

52

@SW_SHOWNOACTIVATE

Muestra una ventana en su ms reciente posicin y tamao.


Este valor es similar a @SW_SHOWNORMAL, excepto que la
ventana no es activada.

@SW_SHOWNORMAL

Activa y muestra una ventana. Si la ventana est minimizada o


maximizada, el sistema restaura su posicin y tamao original.
Una aplicacin debera especificar esta bandera cuando est
mostrando la ventana por primera vez.

@SW_UNLOCK

Desbloquea una ventana bloqueada para remuestreo.

@SystemDir

ruta a la carpeta de Windows' System (o el System32)

@TAB

carcter Tab, Chr(9)

@TempDir

Ruta a la carpeta de archivos temporales.

@TRAY_ID

Identificador del ltimo item pulsado durante una accin en un


TraySet(Item) OnEvent.

@TrayIconFlashing

Devuelve 1 si el cono de bandeja est parpadeando; de otra


manera, devuelve 0.

@TrayIconVisible

Devuelve 1 si el cono de bandeja est visible; de otra manera,


devuelve 0.

@UserProfileDir

ruta a la carpeta del perfil del usuario actual.

@UserName

ID del usuario actual que ha iniciado sesin.

@WDAY

Numrico el da de la semana. La escala es de 1 a 7, que


corresponde de domingo a sbado.

@WindowsDir

ruta a la carpeta de Windows

@WorkingDir

Directorio actual de trabajo activo. (Los resultados no contiene


una barra invertida)

@YDAY

Da actual del ao. El rango es de 1 a 366 (o 001 a 365 si no es


un ao bisiesto)

@YEAR

Ao actual en cuatro-dgitos

53

Referencia del Lenguaje - Operadores


AutoIt tiene las siguientes asignaciones para operadores matemticos, comparativos y lgicos.
Operador

Descripcin
Operadores de Asignacin

Asignacin. Ej: $var = 5

(asigna el nmero 5 a $var)

+=

Asignacin incremental. Ej: $var += 1

-=

Asignacin decremental.

*=

Asignacin multiplicadora.

/=

Asignacin divisora.

&=

Asignacin concatenadora. Ej: $var = "uno", y entonces $var &= 10 (ahora $var
es igual a "uno10")

(incremento de 1 a $var)

Operadores Matemticos
+

Suma dos nmeros. Ej: 10 + 20 (es igual a 30)

Resta dos nmeros. Ej: 20 - 10 (es igual a 10)

Multiplica dos nmeros. Ej: 20 * 10 (es igual a 200)

Divide dos nmeros. Ej: 20 / 10 (es igual a 2)

&

Concadena/une dos cadenas. Ej: "uno" & 10 (es igual a "uno10")

Eleva un nmero a la potencia. Ej: 2 ^ 4 (es igual a 16)


Operadores de Comparacin (caso no sensitivo usado con cadenas excepto para ==)

Comprueba si dos valores son iguales (insensible a maysculas/minsculas para


cadenas). Ej: If $var= 5 Then (verdadero si $var almacena el valor 5)

==

Comprueba si dos cadenas son iguales (sensible a maysculas/minsculas para


cadenas). Los operandos a ambos lados del operador son convertidos a cadena, si
no lo son. Este operador solo debe ser utilizados para comparacin de cadenas en
modo caso sensitivo (sensible a mayscula y minsculas).

54

<>

Comprueba si dos valores son diferentes.(insensible a maysculas/minsculas


para cadenas). Para realizar una comparacin de desigualdad sensible a
maysculas/minsculas en cadenas use:
Not ("cadena1" == "cadena2")

>

Comprueba si el primer valor es mayor que el segundo. Las cadenas son


comparadas lexicogrficamente siempre an si el contenido de la cadena es
numrico.

>=

Comprueba si el primer valor es mayor o igual que el segundo. Las cadenas son
comparadas lexicogrficamente siempre an si el contenido de la cadena es
numrico.

<

Comprueba si el primer valor es menor que el segundo. Las cadenas son


comparadas lexicogrficamente siempre an si el contenido de la cadena es
numrico.

<=

Comprueba si el primer valor es menor o igual que el segundo. Las cadenas son
comparadas lexicogrficamente siempre an si el contenido de la cadena es
numrico.
Operadores Lgicos

AND

Operacin lgica AND. Ej: If $var = 5 AND $var2 > 6 Then (True si $var es igual a
5 y $var2 es mayor que 6)

OR

Operacin lgica OR. Ej: If $var = 5 OR $var2 > 6 Then (True si $var es igual a 5
o $var2 es mayor que 6)

NOT

Operacin lgica NOT. Ej: NOT 1 (es False)

Cuando en una expresin se utiliza ms de un operador, el orden secuencial de los sucesos es


controlado por la prioridad de los operadores. La prioridad utilizada en AutoIt es presentada
debajo. Si dos operadores tienen la misma prioridad la expresin es evaluada de izquierda a
derecha.
Desde la prioridad mxima a la mnima:
NOT
^
*/
+&
< > <= >= = <> ==
AND OR
Ej: 2 + 4 * 10 es evaluado como 42:
4 * 10 (equivale a 40)
55

2 + 40 (equivale 42)
Como el * tiene prioridad ms alta que el + entonces ocurre antes que la adicin.
2 + 40-10 (equivale a 32)
Primero se suma 2+40 y despus se le resta 10
Usted puede usar parntesis para forzar que una parte de la expresin sea evaluada primero.
Ej: (2 + 4) * 10 equivale a 60.
Ntese lo siguiente: cuando usa los operadores lgicos AND, OR:
Ej: If MyFunc1() OR MyFunc2() Then
(MyFunc2() no ser llamada si MyFunc1() retorna true)
(MyFunc1() y MyFunc2() sern llamadas si MyFunc1() retorna False)
Ej: If MyFunc1() AND MyFunc2() Then
(MyFunc2() no ser llamada cuando MyFunc1() retorna false)
(MyFunc1() y MyFunc2() sern llamada cuando MyFunc1() retorna True)

56

Referencia del Lenguaje - Declaraciones Condicionales


Usted frecuentemente desear modificar el flujo de su Script, a travs de una condicin o serie
de condiciones. Es un nmero ms grande que otro? O quizs: esta cadena contiene cierto
valor?
Las condiciones son evaluadas como verdadero (distinto de cero) o falso (cero). Por lo general
se utilizan operadores como ==, <>, >= para realizar comparaciones.
Las siguientes declaraciones condicionales estn disponibles en AutoIt:
If...Then...Else
Select...Case
Switch...Case
Todas estas declaraciones son similares y deciden que cdigo se ejecutar dependiendo de las
condiciones establecidas. Aqu hay un ejemplo de una declaracin If que despliega un cuadro
de mensaje en dependencia del valor de una variable:
$var = -20
If $var > 0 Then
MsgBox(0, "Ejemplo", "$var es positivo!")
ElseIf $var < 0 Then
MsgBox(0, "Ejemplo", "$var es negativo!")
Else
MsgBox(0, "Ejemplo", "$var es cero.")
EndIf
En el ejemplo de arriba, la expresin $var > 0 es evaluada a false debido a que el valor es
menor que cero. Cuando la primera condicin falla, la segunda condicin es testeada. La
expresin $var < 0 es evaluada a true. Esto causa que la declaracin siguiente se ejecute y
muestre el segundo MsgBox y muestre: "$var es negativo!"
Una declaracin Select es muy parecida, pero se usa generalmente para situaciones donde
usted quiere evaluar un gran nmero de condiciones, resultar ms sencillo para leer
entonces, que un extenso bloque del tipo If/ElseIf. e.j:
$var = 30
Select
Case $var > 1 AND $var <= 10
MsgBox(0, "Ejemplo", "$var es mayor que 1")
Case $var > 10 AND $var <= 20
MsgBox(0, "Ejemplo", "$var es mayor que 10")
Case $var > 20 AND $var <= 30
MsgBox(0, "Ejemplo", "$var es mayor que 20")
Case $var > 30 AND $var <= 40
MsgBox(0, "Ejemplo", "$var es mayor que 30")
Case $var > 40
57

MsgBox(0, "Ejemplo", "$var es mayor que 40")


EndSelect
La declaracin Switch tambin resulta similar a la declaracin Select, pero por lo general se usa
para situaciones donde la misma expresin es evaluada en comparacin con algunos
diferentes valores posibles.
$var = 30
Switch Int($var)
Case 1 To 10
MsgBox(0, "Ejemplo", "$var es mayor que 1")
Case 11 To 20
MsgBox(0, "Ejemplo", "$var es mayor que 10")
Case 21 To 30
MsgBox(0, "Ejemplo", "$var es mayor que 20")
Case 31 To 40
MsgBox(0, "Ejemplo", "$var es mayor que 30")
Case Else
MsgBox(0, "Ejemplo", "$var es mayor que 40 o menor/igual a 0")
EndSwitch
En cada una de estas estructuras, el bloque de cdigo de la primera condicin evaluada a true
es ejecutado. Todas las condiciones que siguen son ignoradas.

58

Referencia del Lenguaje - Declaraciones de Bucles


Un bucle o ciclo es una seccin del cdigo que se repite un determinado nmero de
veces. Usted puede ejecutar un determinado bloque encerrndolo en un bucle, por ejemplo a
la espera de que una determinada condicin se cumpla, o sea, cambie a true o false.
Las siguientes declaraciones de Bucles estn disponibles en AutoIt:
For...Next
While...WEnd
Do...Until
For...In...Next
Referencia Keywords
For...To...Step...Next

Ciclo basado en una expresin.


For <variable> = <inicio> To <parada> [Step <incremento>]
declaracin
...
Next
Parmetros
variable

variable usada para el contador.

inicio

El valor inicial de la variable.

parada

El valor final de la variable.

incremento

[opcional] El valor numrico (puede ser fraccionario) por el cual el contador es


incrementado en cada ciclo. Por defecto es 1.

Comentarios
La variable ser creada automticamente con entorno LOCAL, aun cuando MustDeclareVars
sea usado.
Declaraciones For...Next pueden ser anidadas. El ciclo FOR termina cuando el valor de la
variable excede el valor de stop. Si incremento o parada es una variable, su valor es ledo
solamente la primera vez que el ciclo es ejecutado.
Un ciclo for es ejecutado cero veces si:
inicio > parada y step > 0, o
inicio < parada y step es < 0

59

Relativo
ContinueLoop, ExitLoop
Ejemplo
For $i = 5 to 1 Step -1
MsgBox(0, "Cuenta regresiva!", $i)
Next
MsgBox(0,"", "Gran Suceso!")

While...WEnd
Ciclo basado en una expresin.
While <expresin>
Declaracin
...
WEnd
Parmetros
expresin

Si la expresin es verdadera, toda la declaracin hasta la declaracin WEnd es


ejecutado. El ciclo continua indefinidamente mientras la expresin sea
verdadera.

Comentarios
Las declaraciones While...WEnd pueden ser anidadas. La expresin es testeada antes que el
ciclo sea ejecutado de esta manera el ciclo es ejecutado cero o ms veces. Para crear un ciclo
infinito, usted puede usar un nmero diferente de cero en expresin.
Relativo
ContinueLoop, ExitLoop
Ejemplo
$i = 0
While $i <= 10
MsgBox(0, "Value de $i es:", $i)
$i = $i + 1
WEnd

Do...Until
Ciclo basado en una expresin.
60

Do
declaracin
...
Until <expresin>
Parmetros
expresin

La declaracin entre Do y Until son ejecutado mientras la expresin sea


verdadera.

Comentarios
La declaracin Do...Until pueden ser anidadas.
La expresin es testeada despus que el ciclo es ejecutado, de este modo el ciclo ser
ejecutada uno o ms veces.
Relativo
ContinueLoop, ExitLoop
Ejemplo
$i = 0
Do
MsgBox(0, "Valor de $i es:", $i)
$i = $i + 1
Until $i = 10

For...In...Next
Enumera elementos en un objeto de coleccin en un arreglo.
For <$Variable> In <expresin>
Declaracin
...
Next
Parmetros
Variable

Una variable para la cual un elemento es asignado.

61

expresin

Debe ser una expresin que represente un Objeto, o un arreglo con al menos un
elemento.

Comentarios
La variable ser creada automticamente con entorno LOCAL, aun cuando MustDeclareVars
sea usado.
Si la expresin es un objeto de coleccin sin elementos o un arreglo multidimensional, el ciclo
ser obviado y la variable contendr una cadena vaca.
Si la expresin no es un Object o un Arreglo, el script se detiene con un error, a menos que un
identificador COM Error sea configurado.
Los arreglos en AutoIt son de solo lectura cuando utilizamos For...In. Mientras usted puede
asignar un valor a la variable dentro del ciclo For...In, este valor no se refleja en el arreglo en s
mismo. Para modificar el contenido de un arreglo durante la enumeracin use un ciclo For...To.
Declaraciones For...In...Next pueden ser anidadas.
Relativo
With...EndWith
Ejemplo
;Usando un arreglo
Dim $aArray[4]
$aArray[0]="a"
$aArray[1]=0
$aArray[2]=1.3434
$aArray[3]="test"
$string = ""
FOR $element IN $aArray
$string = $string & $element & @CRLF
NEXT
Msgbox(0,"For..IN Arraytest","Resultado es: " & @CRLF & $string)
;Usando un objeto de coleccin
$oShell = ObjCreate("[Link]")
$oShellWindows=$[Link]
if Isobj($oShellWindows) then

62

$string=""
for $Window in $oShellWindows
$String = $String & $[Link] & @CRLF
Next
msgbox(0,"","Usted tiene las siguientes ventana abiertas:" & @CRLF & $String)
else
msgbox(0,"","Usted no ha abierto ventana alguna.")
endif

63

Referencia del Lenguage - Declaraciones Obj


Un obj es la forma en como usted se refiere a un objeto. Usted quizs le interese para
enumerar los elementos en un Objeto de Coleccin.
Las siguientes declaraciones de obj estn disponibles en AutoIt (Vistas anteriormente):

With...Endwith

For...In...Next

Se detallan ms adelante

Referencia del Lenguaje - Funciones del Usuario


Una funcin es una seccin de cdigo que puede llamarse en el Script para efectuar cierta
"funcin" (valga la redundancia). Hay dos clases de funciones en AutoIt, funciones
incorporadas propias del lenguaje y funciones del usuario (UDFs).
Funciones Incorporadas
La lista completa de funciones incorporadas propias del lenguaje se encuentra aqu y las notas
sobre el empleo de las mismas figura aqu.

Abajo se muestra una lista completa de las Funciones disponibles en AutoIt. Click en el
nombre de una funcin para ms detalles de su descripcin.
Funcin

Descripcin

Abs

Calcula el valor absoluto de un nmero.

ACos

Calcula el arco coseno de un nmero.

AdlibRegister

Registra una funcin Adlib.

AdlibUnRegister

Des-registra una funcin adlib.

Asc

Devuelve el cdigo ASCII de un carcter.

AscW

Devuelve el cdigo unicode de un carcter.

ASin

Calcula el arco seno de un nmero.

Assign

Asigna un dato a una variable por su nombre.

ATan

Calcula el arco tangente de un nmero.

64

AutoItSetOption

Cambia el modo de operacin de varias funciones/parmetros


de AutoIt.

AutoItWinGetTitle

Devuelve el ttulo de la ventana de AutoIt.

AutoItWinSetTitle

Cambia el ttulo de la ventana de AutoIt.

Beep

Emite un sonido por el altavoz del sistema para el usuario.

Binary

Devuelve la representacin binaria de una expresin.

BinaryLen

Devuelve el nmero de bytes de un dato variant binario.

BinaryMid

Extrae un nmero de bytes de un dato variant binario.

BinaryToString

Convierte un dato variant binario en una cadena.

BitAND

Realiza una operacin AND a nivel de bit.

BitNOT

Realiza una operacin NOT a nivel de bit.

BitOR

Realiza una operacin OR a nivel de bit.

BitRotate

Realiza una operacin de alternacin de bit, con rotacin.

BitShift

Realiza una operacin de alternacin de bit.

BitXOR

Realiza una operacin OR exclusiva (XOR) a nivel de bit.

BlockInput

Habilita/deshabilita el mouse y el teclado.

Break

Habilita o desactiva la posibilidad del usuario de finalizar el


script desde el icono de la barra de tarea.

Call

Invoca una Funcin de usuario contenida en una cadena como


parmetro.

CDTray

Abre o cierra la bandeja del CD.

Ceiling

Devuelve un nmero redondeado por encima del prximo


entero.

Chr

Devuelve el carcter correspondiente a un cdigo ASCII.

ChrW

Devuelve el carcter correspondiente a un cdigo unicode.

ClipGet

Recupera texto del portapapeles.

ClipPut

Escribe texto en el portapapeles.

65

ConsoleRead

Lee datos desde la secuencia STDIN del proceso de script de


AutoIt.

ConsoleWrite

Escribe datos en la secuencia de STDOUT. Algunos editores de


texto pueden leer dicha secuencia como otros programas.

ConsoleWriteError

Escribe datos en la secuencia de STDERR. Algunos editores de


texto pueden leer dicha secuencia como otros programas.

ControlClick

Enva un clic de mouse a un determinado control.

ControlCommand

Enva un comando a un control.

ControlDisable

Deshabilita un control.

ControlEnable

Habilita un control.

ControlFocus

Establece el foco de entrada en un control dentro de una


ventana.

ControlGetFocus

Devuelve el # de referencia del control que ha tomado el foco


dentro de una ventana.

ControlGetHandle

Devuelve el apuntador interno (handle) de un control.

ControlGetPos

Devuelve el tamao y posicin de un control relativo a la


ventana.

ControlGetText

Recupera el texto de un control.

ControlHide

Oculta un control.

ControlListView

Enva un comando a un control ListView32.

ControlMove

Mueve un control dentro de una ventana.

ControlSend

Enva una cadena de caracteres a un control.

ControlSetText

Establece texto de un control.

ControlShow

Muestra un control que ha sido ocultado.

ControlTreeView

Enva un comando a un control TreeView32.

Cos

Calcula el coseno de un nmero.

Dec

Devuelve la representacin numrica de una cadena


hexadecimal.

66

DirCopy

Copia un directorio conjuntamente con sus subdirectorios y


archivos (Similar a xcopy).

DirCreate

Crea un directorio/carpeta.

DirGetSize

Devuelve el tamao en bytes de un directorio dado.

DirMove

Mueve un directorio y todos sus subdirectorios y ficheros.

DirRemove

Borra un directorio/carpeta.

DllCall

Invocacin dinmica de una funcin en una DLL.

DllCallbackFree

Libera un apuntador creado previamente con


DllCallbackRegister.

DllCallbackGetPtr

Devuelve el puntero para una funcin callback que puede ser


pasado al API Win32.

DllCallbackRegister

Crea una funcin DLL Callback definida por usuario.

DllClose

Cierra un DLL previamente abierto.

DllOpen

Abre un archivo DLL para usar en DllCall.

DllStructCreate

Crea una estructura en estilo C/C++ para ser usado en DllCall.

DllStructGetData

Devuelve el dato de un elemento de la estructura.

DllStructGetPtr

Devuelve el apuntador de la estructura o del elemento dentro


de la estructura.

DllStructGetSize

Devuelve el tamao de una estructura DLL en bytes.

DllStructSetData

Establece el dato en uno de los elementos en la estructura.

DriveGetDrive

Devuelve un arreglo devolviendo las unidades enumeradas.

DriveGetFileSystem

Devuelve el Tipo de Sistema de Archivo de una unidad.

DriveGetLabel

Devuelve la Etiqueta de Volumen de una unidad, si lo posee.

DriveGetSerial

Devuelve el Nmero de Serie de una unidad.

DriveGetType

Devuelve tipo de unidad.

DriveMapAdd

Mapea una unidad de red.

DriveMapDel

Desconecta una unidad de red.

67

DriveMapGet

Recupera informacin detallada de una unidad mapeada.

DriveSetLabel

Establece la Etiqueta de Volumen de una unidad.

DriveSpaceFree

Devuelve el espacio libre en disco(en Megabytes)de una ruta


en Megabytes.

DriveSpaceTotal

Devuelve el espacio total libre en disco de una ruta en


Megabytes.

DriveStatus

Devuelve el estado de una unidad como una cadena.

EnvGet

Recupera una variable de entorno.

EnvSet

Escribe en una variable de entorno.

EnvUpdate

Refresca el entorno del SO.

Eval

Devuelve el valor de una variable definida por una cadena.

Execute

Ejecuta una expresin.

Exp

Calcula la potencia de un nmero.

FileChangeDir

Cambia el directorio actual de trabajo.

FileClose

Cierra un fichero de texto previamente abierto.

FileCopy

Copia uno o ms ficheros.

FileCreateNTFSLink

Crea un hardlink NTFS para un archivo o directorio.

FileCreateShortcut

Crea un acceso directo (.lnk) a un fichero.

FileDelete

Elimina uno o ms ficheros.

FileExists

Chequea si un archivo o directorio existe.

FileFindFirstFile

Devuelve un identificador de bsqueda de acuerdo con una


cadena de bsqueda.

FileFindNextFile

Devuelve un nombre de archivo de acuerdo con una


invocacin previa a FileFindFirstFile.

FileFlush

Limpia el buffer de una fichero en disco.

FileGetAttrib

Devuelve una cadena codificada conteniendo los atributos de


un fichero.

FileGetEncoding

Determina la codificacin de texto utilizada en un fichero.


68

FileGetLongName

Devuelve el nombre completo (direccin+nombre) de una ruta


dada.

FileGetPos

Devuelve la posicin actual en un fichero

FileGetShortcut

Devuelve detalles de un acceso directo.

FileGetShortName

Devuelve el nombre corto 8.3 de una direccin+nombre de


archivo dado.

FileGetSize

Devuelve el tamao de un archivo en bytes.

FileGetTime

Devuelve informacin del tiempo y la fecha para un fichero.

FileGetVersion

Devuelve informacin de la versin del "fichero".

FileInstall

Incluye e instala un archivo con el archivo compilado.

FileMove

Mueve uno o ms directorios.

FileOpen

Abre un archivo de texto para lectura o escritura.

FileOpenDialog

Inicia un cuadro de dilogo de Abrir Archivo.

FileRead

Lee un nmero de caracteres desde un fichero previamente


abierto.

FileReadLine

Lee una lnea de texto desde un fichero previamente abierto.

FileRecycle

Enva un archivo o directorio a la papelera de reciclaje (recycle


bin).

FileRecycleEmpty

Vaca la papelera de reciclaje.

FileSaveDialog

Inicializa un dilogo de Salvar Fichero.

FileSelectFolder

Inicializa un dilogo de seleccin de carpeta.

FileSetAttrib

Establece los atributos de uno o ms ficheros.

FileSetPos

Establece la posicin actual en el fichero.

FileSetTime

Establece la marca de tiempo de uno o ms ficheros

FileWrite

Agrega un texto/dato al final de un fichero previamente


abierto.

FileWriteLine

Agrega una lnea de texto al final de un fichero de texto


previamente abierto.

69

Floor

Devuelve un nmero por debajo del entero ms prximo.

FtpSetProxy

Establece el proxy de internet para usar en acceso FTP.

GUICreate

Crea una ventana GUI.

GUICtrlCreateAvi

Crea un control "avi de video" en el GUI.

GUICtrlCreateButton

Crea un control Botn en el GUI.

GUICtrlCreateCheckbox

Crea un control de caja de chequeo (Checkbox) en el GUI.

GUICtrlCreateCombo

Crea un control ComboBox en el GUI.

GUICtrlCreateContextoMenu

Crea un men contextual para un control o una ventana GUI


entera.

GUICtrlCreateDate

Crea un control de fecha en la GUI.

GUICtrlCreateDummy

Crea un control Dummy en la GUI.

GUICtrlCreateEdit

Crea un control Edit en la GUI.

GUICtrlCreateGraphic

Crea un control Graphic en la GUI.

GUICtrlCreateGroup

Crea un control de Grupo en la GUI.

GUICtrlCreateIcon

Crea un control Icono en la GUI.

GUICtrlCreateInput

Crea un control Input en la GUI.

GUICtrlCreateLabel

Crea un control de etiqueta esttica en la GUI.

GUICtrlCreateList

Crea un control List en la GUI.

GUICtrlCreateListView

Crea un control ListView en la GUI.

GUICtrlCreateListViewItem

Crea un item en un control ListView.

GUICtrlCreateMenu

Crea un control Menu en la GUI.

GUICtrlCreateMenuItem

Crea un control MenuItem en la GUI.

GUICtrlCreateMonthCal

Crea un control de calendario para el GUI.

GUICtrlCreateObj

Crea un control ActiveX en la GUI.

GUICtrlCreatePic

Crea un control de Imagen para el GUI.

GUICtrlCreateProgress

Crea un control de barra de progreso en la GUI.

70

GUICtrlCreateRadio

Crea un control botn de Radio en la GUI.

GUICtrlCreateSlider

Crea un control Slider en la GUI.

GUICtrlCreateTab

Crea un control de Tab en la GUI.

GUICtrlCreateTabItem

Crea un control TabItem en la GUI.

GUICtrlCreateTreeView

Crea un control TreeView en la GUI.

GUICtrlCreateTreeViewItem

Crea un control TreeViewItem en la GUI.

GUICtrlCreateUpdown

Crea un control UpDown en la GUI.

GUICtrlDelete

Elimina un control.

GUICtrlGetHandle

Devuelve el identificador (handle) de un control y algn


identificador especial (de item) en (Menu, ContexTMenu,
TreeViewItem).

GUICtrlGetState

Obtiene el estado actual de un control.

GUICtrlRead

Lee el estado o dato de un control.

GUICtrlRecvMsg

Enva un mensaje a un control y recoge informacin en lParam.

GUICtrlRegisterListViewSort

Registra una funcin definida de usuario (UDF) para ejecutarse


durante un ordenamiento interno de un control listview.

GUICtrlSendMsg

Enva un mensaje un control.

GUICtrlSendToDummy

Enva un mensaje a un control Dummy

GUICtrlSetBkColor

Establece el color de fondo de un control.

GUICtrlSetColor

Establece el color del texto de un control.

GUICtrlSetCursor

Establece el icono del cursor del mouse para un control en


particular.

GUICtrlSetData

Modifica la informacin para un control.

GUICtrlSetDefBkColor

Establece el color de fondo por defecto en todos los controles


de una ventana GUI.

GUICtrlSetDefColor

Establece el color de texto por defecto para todos los controles


en una ventana GUI.

GUICtrlSetFont

Establece la fuente para un control.

71

GUICtrlSetGraphic

Modifica el dato para un control.

GUICtrlSetImage

Establece la imagen bitmap o icono para ser usado en un


control.

GUICtrlSetLimit

Limita el nmero de caracteres/pxeles para un control.

GUICtrlSetOnEvent

Define una Funcin de usuario (UDF) para ser invocada cuando


damos clic sobre un control.

GUICtrlSetPos

Cambia la posicin de un control dentro de una ventana GUI.

GUICtrlSetResizing

Define el mtodo de reajuste usado por un control.

GUICtrlSetState

Cambia el estado de un control.

GUICtrlSetStyle

Cambia el estilo de un control.

GUICtrlSetTip

Establece el texto de tip asociado a un control.

GUIDelete

Borra una ventana GUI con todos los controles que esta
contiene.

GUIGetCursorInfo

Obtiene la posicin del cursor relativo a una ventana GUI.

GUIGetMsg

Sondea la GUI para detectar la ocurrencia de algn evento.

GUIGetStyle

Devuelve el estilo de una ventana GUI.

GUIRegisterMsg

Registra una funcin de usuario (UDF) para un ID de mensaje


(WM_MSG) de ventana conocido.

GUISetAccelerators

Establece la tabla de opciones aceleradas de una ventana GUI.

GUISetBkColor

Establece el color de fondo de una ventana GUI.

GUISetCoord

Establece coordenadas absolutas para el Control siguiente.

GUISetCursor

Establece el icono del puntero para una ventana GUI.

GUISetFont

Establece la fuente por defecto para una ventana GUI.

GUISetHelp

Establece el archivo ejecutable que ser ejecutado cuando se


oprime la tecla F1.

GUISetIcon

Establece el icono usado en la ventana GUI.

GUISetOnEvent

Define un funcin de usuario (UDF) para ser llamada cuando


sobre un botn del Sistema damos clic.

72

GUISetState

Cambia el estado de una ventana GUI

GUISetStyle

Cambia el estilos de una ventana GUI.

GUIStartGroup

Define el agrupamiento de algunos controles


subsecuentemente creados.

GUISwitch

Alterna la actual ventana por otra ventana GUI.

Hex

Devuelve la representacin de una cadena o valor binario


convertido a hexadecimal.

HotKeySet

Establece el mtodo de teclado para una funcin de usuario


determinada.

HttpSetProxy

Establece el proxy de internet para tener acceso va http.

HttpSetUserAgent

Establece la cadena user-agent enviada con peticiones


InetGet() y InetRead().

HWnd

Convierte una expresin en un apuntador (handle) HWND.

InetClose

Cierra un identificador (handle) devuelto desde InetGet().

InetGet

Descarga una archivo de Internet usando los protocolos HTTP,


HTTPS o FTP

InetGetInfo

Devuelve detalles de datos para un identificador (handle)


devuelto desde InetGet().

InetGetSize

Devuelve el tamao (en bytes) de un archivo localizado en


internet.

InetRead

Descarga un fichero desde internet usando los protocolos


HTTP, HTTPS o FTP.

IniDelete

Borra un valor de un fichero .ini con formato estndar.

IniRead

Lee un valor desde un fichero .ini con formato estndar.

IniReadSection

Lee todos los pares de valores/claves de una seccin en un


fichero .ini con formato estndar.

IniReadSectionNames

Lee todas las secciones en un fichero .ini con formato estndar.

IniRenameSection

Renombra una seccin en un fichero .ini con formato estndar.

IniWrite

Escribe un valor para un fichero .ini con formato estndar.

73

IniWriteSection

Escribe una seccin para un fichero .ini con formato estndar.

InputBox

Muestra una caja de entrada que requiere del usuario la


entrada de una cadena.

Int

Devuelve la representacin numrica del valor entero (el


nmero completo) de una expresin.

IsAdmin

Verifica que el usuario actual tenga privilegio de administrador.

IsArray

Chequea si una variable es de tipo arreglo.

IsBinary

Chequea si una variable o expresin es de tipo binaria.

IsBool

Chequea si una variable es de tipo booleano.

IsDeclared

Chequea si una variable ha sido declarada.

IsDllStruct

Chequea si una variable es de tipo DllStruct.

IsFloat

Chequea si una variable o expresin es de tipo flotante


(decimal).

IsHWnd

Chequea si una variable es un puntero y un apuntador vlido


de ventana.

IsInt

Chequea si una variable o expresin es de tipo entero.

IsKeyword

Chequea si una variable es una palabra clave (Por ejemplo,


Default).

IsNumber

Chequea si una variable es de tipo numrico.

IsObj

Chequea si una variable o expresin es de tipo objeto.

IsPtr

Cheque si una variable es de tipo puntero.

IsString

Chequea si una variable es de tipo cadena.

Log

Calcula el logaritmo natural de un nmero.

MemGetStats

Devuelve informacin relativa a la memoria.

Mod

Ejecuta una operacin de mdulo.

MouseClick

Realiza una operacin de clic del mouse.

MouseClickDrag

Realiza una operacin clic-y-arrastre con el mouse.

MouseDown

Realiza un evento de presionar el mouse hacia abajo en la


74

posicin actual del mouse.


MouseGetCursor

Devuelve el nmero de ID del cursor actual del mouse.

MouseGetPos

Recupera la posicin actual de mouse.

MouseMove

Mueve el cursor del mouse.

MouseUp

Realiza un evento de presionar el mouse hacia arriba en la


posicin actual del mouse.

MouseWheel

Mueve la rueda del mouse arriba o abajo. Solamente en


NT/2000/XP.

MsgBox

Muestra un simple cuadro de mensaje con tiempo opcional


para expirar.

Number

Devuelve la representacin numrica de una expresin.

ObjCreate

Crea una referencia a un objeto COM del nombre de clase


dado.

ObjEvent

Maneja eventos entrantes del Objeto dado.

ObjGet

Recupera una referencia a un objeto COM de un proceso


existente o nombre de archivo.

ObjName

Devuelve el nombre o descripcin de interfaz de un Objeto.

OnAutoItExitRegister

Registra una funcin para ser llamada cuando AutoIt inicia.

OnAutoItExitUnRegister

Des-registra una funcin que es llamada cuando AutoIt finaliza.

Ping

Enva pings a un host y devuelve el tiempo de ida-y-vuelta.

PixelChecksum

Genera una suma de verificacin(checksum) para una regin


de pixeles.

PixelGetColor

Devuelve el color de un pixel de acuerdo a las coordenadas x,y


del pixel.

PixelSearch

Busca un rectngulo de pixeles el color de pixel especificado.

PluginClose

Cerrar un fichero plugin.

PluginOpen

Abre un fichero de plugin.

ProcessClose

Termina un proceso nombrado.

75

ProcessExists

Revisa si un proceso especificado existe.

ProcessGetStats

Devuelve un arreglo sobre Memoria o informacin de


IO(Entrada y Salida) de un proceso en ejecucin.

ProcessList

Devuelve un arreglo listando los procesos actualmente en


ejecucin (nombres y PIDs)

ProcessSetPriority

Cambia la prioridad de un proceso

ProcessWait

Pausa el script ejecucin hasta que proceso dado exista.

ProcessWaitClose

Pausa el script en ejecucin hasta que dado proceso termine.

ProgressOff

Finaliza la ventana de Progreso.

ProgressOn

Crea una ventana personalizable de barra de progreso.

ProgressSet

Establece la posicin y/o texto de una ventana de Progreso


creada anteriormente.

Ptr

Convierte una expresin en una variante de puntero.

Random

Genera un nmero seudo-aleatorio del tipo flotante.

RegDelete

Elimina una clave del registro.

RegEnumKey

Lee el nombre de una subclave de acuerdo a su instancia.

RegEnumVal

Lee el nombre de un valor de acuerdo a su instancia.

RegRead

Lee un valor del registro.

RegWrite

Crea una clave o valor en el registro.

Round

Devuelve un nmero redondeado a un nmero determinado


de cifras decimales.

Run

Ejecuta un programa externo.

RunAs

Ejecuta un programa externo bajo el contexto de un usuario


diferente.

RunAsWait

Ejecuta un programa externo bajo el contexto de un usuario


diferente y pausa la ejecucin del script hasta que el programa
finaliza.

RunWait

Ejecuta un programa externo y pausa la ejecucin del script


hasta que el programa finaliza.

76

Send

Enva pulsaciones simuladas de teclas a la ventana activa.

SendKeepActive

Intenta mantener activa una ventana especifica durante


Send().

SetError

Establece manualmente el valor de la macro @error.

SetExtended

Manualmente establece el valor del macro @extended.

ShellExecute

Ejecuta un programa externo usando la API de ShellExecute.

ShellExecuteWait

Ejecuta un programa externo usando la API de ShellExecute y


pausa la ejecucin del script hasta que finalice.

Shutdown

Apaga el sistema.

Sin

Calcula el seno de un nmero.

Sleep

Pausa la ejecucin del script.

SoundPlay

Ejecuta un archivo de sonido.

SoundSetWaveVolume

Establece el volumen de onda del sistema por porcentaje.

SplashImageOn

Crea una ventana con imagen personalizada.

SplashOff

Desactiva una ventana de SplashText o SplashImage.

SplashTextOn

Crea una ventana personalizada de texto.

Sqrt

Calcula la raz cuadrada de un nmero.

SRandom

Establece un semilla para la generacin de nmeros aleatorios.

StatusbarGetText

Recupera el texto de una barra de estado estndar.

StderrRead

Lee del flujo de STDERR de un proceso hijo previamente


ejecutado.

StdinWrite

Escribe un nmero de caracteres al flujo de STDIN de un


proceso hijo previamente ejecutado.

StdioClose

Cierra todos los recursos asociados con un proceso


previamente ejecutado redireccin de STDIO.

StdoutRead

Lee del flujo STDOUT de un proceso hijo previamente


ejecutado.

String

Devuelve una representacin de una expresin en cadena de

77

texto.

StringAddCR

Toma una cadena de texto y todos los caracteres de lnea


prefijos ( Chr(10) ) con un carcter de retorno de carro (
Chr(13) )

StringCompare

Compara dos cadenas de texto con opciones.

StringFormat

Devuelve una cadena de texto con formato (similar a la funcin


sprintf() de C )

StringFromASCIIArray

Convierte un arreglo de cdigos ASCII a una cadena.

StringInStr

Revisa si una cadena contiene una subcadena dada.

StringIsAlNum

Revisa si una cadena contiene solamente caracteres


alfanumricos.

StringIsAlpha

Revisa si una cadena contiene solamente caracteres


alfabticos.

StringIsASCII

Revisa si una cadena contiene solamente caracteres ASCII en el


rango 0x00 - 0x7f (0 - 127).

StringIsDigit

Revisa si una cadena contiene solamente caracteres de dgitos


(0-9).

StringIsFloat

Revisa si una cadena es un nmero tipo punto flotante.

StringIsInt

Revisa si una cadena es un entero.

StringIsLower

Revisa si una cadena contiene solamente letras minsculas.

StringIsSpace

Revisa si una cadena contiene solamente caracteres de


espacios en blanco.

StringIsUpper

Revisa si una cadena contiene solamente letras maysculas.

StringIsXDigit

Revisa si una cadena contiene solamente dgitos (0-9) y


caracteres hexadecimales (A-F)

StringLeft

Devuelve un nmero de caracteres a partir del lado izquierdo


de una cadena de texto.

StringLen

Devuelve el nmero de caracteres en una cadena de texto.

StringLower

Convierte a cadena a minsculas.

StringMid

Extrae un nmero de caracteres de una cadena de texto.

78

StringRegExp

Revisa si una cadena encaja en un patrn dado de expresin


regular.

StringRegExpReplace

Reemplaza texto en un cadena basado en un expresin regular.

StringReplace

Reemplaza subcadenas en una cadena.

StringRight

Devuelve un nmero de caracteres del lado izquierdo de una


cadena.

StringSplit

Divide una cadena en varias partes de acuerdo a un


delimitador dado.

StringStripCR

Remueve todos los valor de retorno de carro ( Chr(13) ) de una


cadena.

StringStripWS

Recorta los espacios en blanco de una cadena.

StringToASCIIArray

Convierte una cadena a un arreglo conteniendo el cdigo ASCII


de cada carcter.

StringToBinary

Convierte una cadena en datos binarios.

StringTrimLeft

Corta un nmero de caracteres del lado izquierdo de una


cadena.

StringTrimRight

Corta un nmero de caracteres del lado derecho de una


cadena.

StringUpper

Convierte una cadena a maysculas.

Tan

Calcula la tangente de un nmero.

TCPAccept

Permite una conexin entrante intentando en un socket.

TCPCloseSocket

Cierra un socket de TCP.

TCPConnect

Crea un socket conectado un servidor existente.

TCPListen

Crea un socket en espera para una conexin entrante.

TCPNameToIP

Convierte un nombre de Internet a direccin de IP.

TCPRecv

Recibe datos de un socket conectado.

TCPSend

Enva datos en un socket conectado.

TCPShutdown,
UDPShutdown

Detiene los servicios de TCP/UDP.

79

TCPStartup, UDPStartup

Empieza los servicios de TCP o UDP.

TimerDiff

Devuelve la diferencia en tiempo de una llamada previa a


TimerInit().

TimerInit

Devuelve una marcaDeTiempo (en milisegundos)

ToolTip

Crea un tooltip en cualquier parte de la pantalla.

TrayCreateItem

Crea un control de itemMenu para la bandeja.

TrayCreateMenu

Crea un control de menu para el menu de bandeja.

TrayGetMsg

Consulta cualquier evento ocurrido en un men de bandeja.

TrayItemDelete

Elimina un control de menu/item del men de bandeja.

TrayItemGetHandle

Devuelve el apuntador para un men de bandeja(item).

TrayItemGetState

Obtiene el estado actual de un control.

TrayItemGetText

Obtiene el itemtexto de un control de men/item de bandeja.

TrayItemSetOnEvent

Define un Funcin de usuario para ser invocada cuando un


item del cono de Autoit es clickeado.

TrayItemSetState

Establece el estado de un control menu/item en la bandeja del


sistema.

TrayItemSetText

Establece el texto del item en un control menu/item.

TraySetClick

Establece el modo de clic en el cono de la bandeja - con clics


del mouse se mostrar el men del icono.

TraySetIcon

Carga/establece un icono especificado en la bandeja.

TraySetOnEvent

Define una funcin de usuario que ser invocada cuando una


accin especial ocurre en la bandeja.

TraySetPauseIcon

Carga/establece un icono de pausa en la bandeja especificado.

TraySetState

Establece el estado del icono de la bandeja del sistema.

TraySetToolTip

(Re)Establece el texto tooltip para el icono de bandeja.

TrayTip

Muestra un globo tip desde el icono de AutoIt. (2000/XP


solamente)

UBound

Devuelve el tamao de un arreglo dimensionado.

80

UDPBind

Crea un socket delimitado para una conexin entrante.

UDPCloseSocket

Cierra un socket UDP.

UDPOpen

Abre un socket conectado para un servidor existente.

UDPRecv

Recibe datos de un socket abierto.

UDPSend

Enva un dato por un socket abierto.

VarGetType

Devuelve el tipo de representacin interna de un dato


variante.

WinActivate

Activa (toma el foco) una ventana.

WinActive

Chequea si una ventana est abierta y ha sido actualmente


activada.

WinClose

Cierra una ventana

WinExists

Chequea si una ventana especificada existe.

WinFlash

Provoca parpadeo de una ventana en la barra de tareas.

WinGetCaretPos

Devuelve las coordenadas de intercalamiento para la ventana


en primer plano.

WinGetClassList

Captura las clases internas de una ventana.

WinGetClientSize

Captura el tamao de una ventana determinada de rea


cliente.

WinGetHandle

Devuelve el identificador interno de una ventana.

WinGetPos

Devuelve la posicin y tamao de una ventana dada.

WinGetProcess

Devuelve el ID del proceso (PID) asociado a una ventana.

WinGetState

Devuelve el estado de una ventana dada.

WinGetText

Devuelve el texto de una ventana.

WinGetTitle

Devuelve el ttulo completo de la ventana.

WinKill

Fuerza una ventana a cerrar.

WinList

Devuelve una lista de ventanas.

WinMenuSelectItem

Invoca el item de un men dentro de una ventana.

81

WinMinimizeAll

Minimiza todas las ventanas.

WinMinimizeAllUndo

Deshace la operacin de la funcin WinMinimizeAll.

WinMove

Mueve y/o cambia el tamao de una ventana.

WinSetOnTop

Cambia una ventana colocndole el atributo "Siempre Visible"


(Always On Top)

WinSetState

Muestra, Oculta, minimiza, maximiza, o restaura una ventana.

WinSetTitle

Cambia el ttulo de una ventana.

WinSetTrans

Establece el nivel de trasparencia de una ventana. (Windows


2000/XP o superior)

WinWait

Pausa la ejecucin del script hasta que la ventana solicitada


exista.

WinWaitActive

Pausa la ejecucin de un script hasta que la ventana solicitada


se activa.

WinWaitClose

Pausa la ejecucin del script hasta que la ventana solicitada no


exista.

WinWaitNotActive

Pausa la ejecucin de un scripts hasta que la ventana


especificada no est activa.

Funciones del Usuario


Las funciones del usuario son declaradas usando Func...EndFunc .
Pueden aceptar parmetros y retornar valores segn lo requieran.
Los nombres deben comenzar con una letra cualquiera, o bien con un guin bajo y pueden
contener cualquier combinacin de letras (sin acentos!), nmeros y guiones. Algunos
nombres vlidos para funciones:
MiFunc
Func1
_Mi_Funcion
Un ejemplo de uso para una funcin que duplica un nmero por 10 veces:
$val = 10
For $i = 1 To 10
$doble = MiDoble($val)
82

MsgBox(0, "", $val & " el doble es " & $doble)


$val = $doble
Next
Exit
;funcin que duplica un nmero cualquiera
Func MiDoble($valor)
$valor = $valor * 2
Return $valor
EndFunc

Notas de Funciones
Muchas funciones contienen parmetros opcionales que pueden ser omitidos. Si desea
especificar un parmetro opcional, todos los parmetros anteriores deben ser especificados!
Por ejemplo, considere Run ( "nombredearchivo", ["dirDeTrabajo" [, bandera]] ). Si se desea
especificar la bandera, se debe especificar directorioDeTrabajo .
Muchas funciones Win___ contienen un parmetro opcional llamado "texto". Este parmetro
est destinado para ayudar a diferenciar entre ventanas que tienen ttulos idnticos.
Algunas funciones indican xito/fallo como valor devuelto; otros se indican fijando en la flag
de @error. Ambos tienen las siguientes significacin... @error = 0 ; cuando es igual a cero, es
siempre exitoso Return = vara, pero tpicamente valores no-cero exitosos permiten leer
fcilmente el cdigo...
If algunaFuncUsuario() then ; ...funcin trabaj
If Not someUserFunc() then ; ...funcin fall
$x = FileReadLine("C:\[Link]")
If @error = -1 Then ;fin-de-archivo fue lanzado
Si una funcin puede establecer el flag de @error, se debera revisar siempre antes de usar
un valor devuelto - si @error indica un error entonces el valor devuelto de la funcin es
generalmente indefinido...
@error es siempre establecido a 0 cuando entra en una funcin.
Cuando la documentacin establece que el valor devuelto es = ninguno, AutoIt siempre
devuelve un valor para evitar errores. Valor de 1 es usualmente devuelto, pero no debera
depender de este valor devuelto.
Cuando un parmetro opcional necesita ser definido y es precedido por uno o ms parmetros
opcionales, los parmetros anteriores deben ser dados. Esto tal vez sea "" para un parmetro
de cadena de texto y -1 para otros tipos. Algunas funciones como StringInStr o StringReplace
requieren 0. Ver la descripcin correspondiente del parmetro opcional en cada caso.
83

Referencia del Lenguaje - Comentarios


Aunque se permite solamente una declaracin por lnea, una que fuera extensa puede ser
separada en lneas mltiples mediante un guin bajo " _" precedido por un espacio en blanco
al final del "quiebre" de la lnea. Una definicin de cadena no puede ser separada en diferentes
lneas, a menos que se utilice una concatenacin:
MsgBox(4096,"", "Soy una lnea de texto muy larga, as que" & _
"simplemente me dividieron en dos partes utilizando este recurso.")
El punto y coma (;) es el carcter utilizado para efectuar comentarios. A menos que est en el
interior de una cadena, todo texto que sea escrito a continuacin en la misma lnea, ser
ignorado por el intrprete/compilador.
; La prxima lnea contiene un comentario explicativo al final
Sleep(5000) ;pausa 5 segundos
Puede combinar el guin bajo con el punto y coma para introducir comentarios en lneas y an
tener una declaracin extensa separada con respecto a la lnea siguiente.
dim $b_ ; Este guin no es un carcter de continuacin
dim $k_
Dim $a[8][2] = [ _
[ "Palabra", 4 ], _ ; Commentario 1
[ "Prueba", 3 ], _
[ "pi", 3.14159], _ ; Asocia el nombre con el valor
[ "e", 2.718281828465], _ ; Aqu es lo mismo
[ "prueba;1;2;3", 123], _
[ ';', Asc(';') ], _ ; Este comentario es ignorado, pero las cadenas permanecen.
["", 0] ]
Es posible tambin introducir grandes bloques de comentario en el cdigo usando las
directivas #comments-start y #comments-end.

#comments-start (#cs) #comments-end (#ce)


Especifica que una seccin entera en el script debe ser tomado como comentario.
#comments-start
...
...
#comments-end
Parmetros
84

Ninguno
Comentarios
Las directivas #comments-start y #comments-end puede ser anidadas. Usted puede
tambin usar las palabras claves abreviadas #cs y #ce.
Adicionalmente, pueden ser comentadas!
Ejemplo
#comments-start
MsgBox(4096, "", "Esto no ser ejecutado")
MsgBox(4096, "", "o esto")
#comments-end
;;;
#cs
MsgBox(4096, "", "Esto se imprime si '#cs' es quitado.")
#ce

85

Referencia GUI
AutoIt posee la habilidad de crear simples Interfaces Grficas de Usuario (GUIs) que consisten
en una o ms ventanas y controles.
Conceptos GUI
Una GUI consiste en una o ms ventanas y cada ventana contiene uno o ms controles. Una
GUIs es un "manejador de eventos" capaz de reaccionar ante ciertos eventos que se producen
sobre ella - como cuando un botn es clickeado. La GUI se encuentra en un estado de espera
hasta que un evento es desencadenado. Algo semejante a estar en la puerta esperando al
cartero - te sientas esperar una carta y luego decides que hacer con ella - as trabaja
exactamente una GUI - usted espera venir al cartero.
Por supuesto, usted puede elegir hacer otras tareas mientras la GUI permanece activa - por
ejemplo puede que utilice las funciones GUI para crear una barra de progreso que se actualiza
mientras el script desarrolla complejas operaciones.
Controles GUI
Todos los usuarios deben conocer bien los controles - Un control es todo aquello dentro de
una ventana que puede recibir un click o interaccionar con el usuario. Los tipos de controles
que pueden ser creados con Autoit se listan ms abajo - La mayora de ellos pueden ser
encontrados en muchas ventanas de Windows.
Label

Una cadena de texto plano.

Button

Un Botn simple.

Input

Un simple control de lnea que permite introducir texto dentro del mismo.

Edit

Un control multi-lnea que permite introducir texto dentro del mismo.

Checkbox

Una caja de chequeo que puede ser "marcada" o "desmarcada".

Radio

Un botn circular de chequeo.

Combo

Una lista contenida en una caja.

List

Una lista.

Date

Un control calendario.

Pic

Una imagen.

Icon

Un icono.

Progress

Una Barra de Progreso.

86

Tab

Un grupo de controles contenidos en pestaas.

UpDown

Un control que puede ser adicionado para entrada de controles.

Avi

Muestra un Clip en formato AVI.

Menu

Un men en la parte superior de la ventana.

ContextMenu

Un men que aparece cuando damos click dentro de la ventana.

TreeView

Un control similar al control Explorador de Windows.

Slider

Un control similar al control del volumen de Windows.

ListView

Un control que muestra informacin en columnas.

ListViewItem
Graphic
Dummy

Un control que muestra tems en un control listView.


Un control que muestra grficos dibujados con GUICtrlSetGraphic.
Un control de usuario dummy.

Aqu se muestra una simple ventana GUI que contiene algunos de los controles disponibles.
Como usted notar es posible crear una extensa variedad de GUIs detallados!

Los controles son creados con la funcin GUICtrlCreate... Cuando un control es creado un ID
de Control es devuelto. Lo ms importante a tener en cuenta con el ID de Control es:
El ID de control es un nmero positivo(esto es, un nmero mayor que 0)
87

Cada ID de control es nico - aun cuando existan mltiples ventanas.


El ID de control es realmente el valor del Id de control que se muestra en la 'herramienta de
informacin de ventana de Autoit' AutoIt Window Info Tool ..
Funciones GUI Bsicas
Estas son las principales funciones que usted necesita para crear una GUI. Esto es lo bsico, si
eres listo existen muchas ms que le permitirn realizar avanzados GUIs.
Function

Explanation

GUICreate

Crea una ventana.

GUICtrlCreate...

Crea varios controles en la ventana.

GUISetState

Muestra u oculta la ventana.

GUIGetMsg

Sondea la GUI para ver si un evento ha


ocurrido (Solo modo MessageLoop )

GUICtrlRead

Lee el dato de un control.

GUICtrlSetData

Establece/cambia el dato en un control.

href="../functions/GUICtrlUpdate
[Link]">GUICtrlUpdate...

Cambia varias opciones para un control


(color, estilo, etc.)

Usted necesita #include <GUIConstantsEx.au3> para constantes relativas a GUI. Existen otros
ficheros includes que contienen constantes relativas a varios controles que usted puede en su
GUI.
Antes de escribir cualquier scripts GUI usted debe incluir el fichero GUIConstants.au3 - este
contiene todas las variables y constantes necesarias.
Primero crearemos una ventana, llamada "Hola Mundo" esta tendr 200 por 100 pixeles de
dimensin. Cuando se crea una ventana nueva esta se oculta - debemos establecer el atributo
"Mostrar" (show) para que la ventana pueda ser visible.
#include <GUIConstants.au3>
GUICreate("Hola Mundo", 200, 100)
GUISetState(@SW_SHOW)
Sleep(2000)
El ejemplo anterior mostrar la ventana por dos segundos. Esto no resulta interesante...ahora
vamos a adicionar un texto y un botn OK. El texto ser adicionado en la posicin 30, 10 y el
botn en 70, 50 con un ancho de 60 pixeles.
include <GUIConstants.au3>
GUICreate("Hello World", 200, 100)
GUICtrlCreateLabel("Hola Mundo! Como ests?", 30, 10)
GUICtrlCreateButton("OK", 70, 50, 60)
GUISetState(@SW_SHOW)
88

Sleep(2000)
Esto es muy bueno!, Como hacemos ahora para que reaccione cuando hagamos un clik sobre
el botn? Bueno, este es el momento en que debemos decidir por cual va se van a procesar
los eventos - va lazo de mensajes (MessageLoop) o por la funciones OnEvent.
Modos de Eventos GUI
Como mencionamos ms arriba estos son los dos modos GUI bsicos: modo Lazo de mensajes
(MessageLoop) y modo OnEvent. Los modos son simplemente dos maneras diferentes de
reaccionar a los eventos de la ventana. El modo que usted escoja depender de
sus preferencias personales, y hasta cierto punto tambin del tipo de GUI que usted vaya
a crear. Ambos modos poseen igual capacidad en la creacin de cualquier GUI pero en
ocasiones un modo resulta ms conveniente para una operacin determinada.
El modo por defecto es el modo de lazo de mensajes. Para cambiar al modo OnEvent
defina Opt("GUIOnEventMode", 1) al inicio del script.
Modo de lazo-de mensajes (modo por defecto)
En el modo lazo de mensajes (Message-loop) su script se halla la mayora del tiempo en un
ciclo constante. Este ciclo sondear la GUI usando la funcin GUIGetMsg. Cuando un evento
ocurre se devuelve un valor por la funcin GUIGetMsg que muestra el detalle del evento (un
botn es clickeado, La GUI ha sido cerrada (close), etc.)
En este modo usted solo recibe el evento mientras este activo el chequeo por la funcin
GUIGetMsg debe asegurar que dicho chequeo se realice con una frecuencia alta pues de otro
modo la GUI sera insensible.
Este modo es el mejor para la GUI donde la GUI es el "Rey" y todos los dems objetos estan a
su alrededor esperando un evento.
Ver esta pgina para una explicacin ms detallada de modo MessageLoop
Modo OnEvent
En el modo OnEvent existe un chequeo constante de la GUI hasta encontrar cualquier evento,
entonces la GUI temporalmente se detiene y llama a una funcin definida por usuario (UDF)
para dar respuesta al evento. Por ejemplo, si el usuario da click en el Botn1 de la GUI se
detiene el chequeo y se llama a una funcin definida por usuario previa que atienda al Botn1.
Cuando la funcin es ejecutada el script se resume nuevamente. Este modo es similar al
mtodo usado por forma en Visual Basic.
Este modo es el mejor para GUIs donde la GUI es de importancia secundaria y el script
principal puede realizar otras tareas adems de ocuparse de la GUI.
Ver esta pgina para una explicacin ms detallada del modo OnEvent
Observacin: La diferencia que existe entre ambos modos de manejar eventos es la siguiente:
En el modo Lazo de Mensajes la GUI no se detiene al ocurrir un evento, esta sigue
sondeando a la espera de ms eventos. En el modo OnEvent la GUI se detiene al ocurrir un
evento y ejecuta una UDF, esto significa que la GUI se hace temporalmente insensible hasta
89

que no finalice la UDF, una vez finalizada, la GUI contina con el sondeo a la espera de otro
evento.

Referencia GUI - Modo lazo de mensajes (MessageLoop)


En el modo lazo de mensajes (Message-loop) el script se halla la mayora del tiempo en un
ciclo constante. Este ciclo sondear la GUI usando la funcin GUIGetMsg . Cuando un evento
ocurre se devuelve un valor por la funcin GUIGetMsg que muestra el detalle del evento (un
botn es clickeado, La GUI ha sido cerrada (close), etc.)
El modo Lazo de mensajes (MessageLoop) es el modo de mensajes por defecto de GUIs
en AutoIt - el otro modo posible es el modo OnEvent.
En este modo usted solo recibe el evento mientras este activo el chequeo por la funcin
GUIGetMsg, debe asegurar que dicho chequeo se realice con una frecuencia alta pues de
otro modo la GUI sera insensible.
Formato bsico de Lazo de Mensajes
La forma general del cdigo para Lazo de Mensajes es:
While 1
$msg = GUIGetMsg()
...
...
WEnd
Usualmente un lazo de este tipo pondra la CUP al 100% - afortunadamente la funcin
GUIGetMsg automticamente libera la CPU cuando no hay eventos en espera. No ponga una
'espera' (Sleep) dentro del lazo pues esto podra saturar la CPU - esto solo causa que la GUI se
haga insensible.
GUI Events
Existen tres tipos de mensajes de eventos que GUIGetMsg puede retornar:
Sin Evento
Eventos de Controles
Eventos del Sistema
Sin Evento
Cuando no hay eventos en espera de ser procesados, la funcin GUIGetMsg retorna 0. En una
GUI usual es el evento ms comn.
90

Eventos de Controles
Cuando un control es Clickeado o cambia se enva el evento - este evento es un nmero
positivo que corresponde al IDControl que es devuelto por la funcin GUICtrlCreate....
cuando es creado.
Eventos del Sistema
Son los Eventos del Sistema - Como cuando es cerrada la GUI - son nmeros negativos. Los
diferentes eventos de este tipo son listados ms abajo y se encuentran en GUIConstants.au3:
$GUI_EVENT_CLOSE

;La GUI ha sido cerrada

$GUI_EVENT_MINIMIZE
$GUI_EVENT_RESTORE

;La GUI ha sido minimizada


; La GUI ha sido restaurada

$GUI_EVENT_MAXIMIZE

; La GUI ha sido maximizada

$GUI_EVENT_PRIMARYDOWN
$GUI_EVENT_PRIMARYUP

;Se ha oprimido el botn primario del mouse


;Se ha liberado el botn primario del mouse

$GUI_EVENT_SECONDARYDOWN ;Se ha oprimido el botn secundario del mouse


$GUI_EVENT_SECONDARYUP

;Se ha liberado el botn secundario del mouse

$GUI_EVENT_MOUSEMOVE

; Se ha movido el mouse

$GUI_EVENT_RESIZED

; Ha cambiado de tamao la GUI

$GUI_EVENT_DROPPED

; Se ha soltado un objeto

Ejemplos de GUI
En la pgina principal de la Referencia GUI iniciamos un simple ejemplo de "Hola Mundo" que
puede verse aqu:
#include <GUIConstants.au3>
GUICreate("Hola Mundo", 200, 100)
GUICtrlCreateLabel("Hola Mundo! Cmo ests?", 30, 10)
GUICtrlCreateButton("OK", 70, 50, 60)
GUISetState(@SW_SHOW)
Sleep(2000)
Ahora finalizamos el cdigo utilizando un Lazo de Mensajes (MessageLoop) con la descripcin
de algunos mensajes de eventos. La declaracin Select...Case...EndSelect nos permite tomar
una decisin de acuerdo al evento "atrapado" por GUIGetMsg().
#include <GUIConstants.au3>
GUICreate("Hola Mundo", 200, 100)
91

GUICtrlCreateLabel("Hola Mundo! Cmo ests?", 30, 10)


$okbutton = GUICtrlCreateButton("OK", 70, 50, 60)
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $okbutton ;evento de control
MsgBox(0, "Evento GUI", "Usted presion OK!")
Case $msg = $GUI_EVENT_CLOSE ;evento del sistema
MsgBox(0, "Evento GUI", "Usted clicke CLOSE! Finalizando...")
ExitLoop
EndSelect
WEnd
Esto resulta muy simple. Obviamente al crearse ms ventanas y controles resulta ms
complicado pero el mecanismo siempre es el mismo, aqu solo mostramos lo bsico.
GUIGetMsg Avanzado con Mltiples Ventanas
El ID de Control es nico, aun cuando tenemos mltiples ventanas, de esta forma el cdigo
dado anteriormente trabaja bien con controles y ventanas mltiples. Sin embargo, cuando
procesamos un evento como $GUI_EVENT_CLOSE o $GUI_MOUSEMOVE usted necesita
conocer cual ventana GUI ha generado el evento. Para lograr esto usted debe llamar
a GUIGetMsg de esta forma:
$msg = GUIGetMsg(1)
Cuando es llamada con el parmetro 1 el evento es devuelto en un valor de arreglo , el arreglo
contiene el evento (en $array[0] ) e informacin extra como el apuntador de ventana (window
handle) (en $array[1] ). Si dos ventanas fueran creadas en el ejemplo anterior entonces la
manera correcta de escribir el cdigo sera:
#include <GUIConstants.au3>
$mainwindow = GUICreate("Hola Mundo", 200, 100)
GUICtrlCreateLabel("Hola Mundo! Cmo ests?", 30, 10)
$okbutton = GUICtrlCreateButton("OK", 70, 50, 60)
$dummywindow = GUICreate("Ventana de prueba ", 200, 100)
GUISwitch($mainwindow)
GUISetState(@SW_SHOW)
While 1

92

$msg = GUIGetMsg(1)
Select
Case $msg[0] = $okbutton
MsgBox(0, "GUI Event", "Usted presion OK!")
Case $msg[0] = $GUI_EVENT_CLOSE And $msg[1] = $mainwindow
MsgBox(0, "Evento GUI", "Usted clicke CLOSE en la ventana principal! Finalizando...")
ExitLoop
EndSelect
WEnd
El primer cambio principal que se puede notar es la llamada a la funcin GUISwitch - cuando
una nueva ventana es creada esta se convierte en la ventana por "defecto" para futuras
operaciones GUI (incluyendo la creacin de controles). En nuestro caso deseamos trabajar con
la ventana principal "Hola Mundo", no con la ventana de prueba, entonces
cambiamos. Algunas funciones de GUI permiten que se use los apuntadores (handle) de la
ventana en si misma- estas funciones permitirn conmutar de ventana automticamente. En
nuestro ejemplo esto sera de esta forma:
GUISetState(@SW_SHOW, $mainwindow)
El siguiente cambio a notar es el modo como se llama a la funcin GUIGetMsg y cmo se
interpreta los eventos- note el uso de $msg[0] y $msg[1] - ahora solo salimos del script si el
evento close es enviado y el evento es desde la ventana principal ("Hola Mundo").

93

Referencia GUI - Modo OnEvent


El modo OnEvent en vez de estar constantemente chequeando la GUI para reaccionar ante
cualquier evento hace que la GUI temporalmente pause el script y llama a una funcin definida
por usuario para manejar el evento. Por ejemplo, si usted hace click en el Botn1 la GUI pausa
su script principal y llama a una funcin previa definida por usuario para tratar al Botn1.
Cuando la llamada a la funcin es completada el script se resume. Este modo es similar a modo
de chequeo de evento en Visual Basic.
Mientras la GUI est en ejecucin, su script principal podra realizar cualquier trabajo normal,
pero para facilidad de ejemplo haremos un script principal en "idles" (bajo consumo de CPU),
en un ciclo While infinito.
El modo por defecto es el Lazo de Mensajes (MessageLoop) de esta forma si queremos utilizar
el modo OnEvent tenemos que definir antes: Opt("GUIOnEventMode", 1).
Nota: Observe algo importante: La GUI trabaja de manera "independiente" del script en s. La
GUI puede estar a la espera de un evento mientras el script puede realizar complejas
operaciones.
Formato Bsico de OnEvent
El cdigo general del modo OnEvent es el siguiente:
While 1
Sleep(1000) ;Idle (bajo consumo de CPU)
WEnd
Func Event1()
; Coloque aqu el cdigo que dar respuesta el evento
EndFunc
Func Event2()
; Coloque aqu el cdigo que dar respuesta el evento
EndFunc
Eventos GUIs
En el modo OnEvent la GUI puede generar los siguientes "Eventos":
Eventos de Controles
Eventos del Sistema
Ambos tipos de Evento harn la llamada a una funcin definida por usuario (UDF) ya sea para
GUI (GUISetOnEvent) o para un control (GUICtrlSetOnEvent). Si ninguna funcin es definida

94

para un evento entonces simplemente se ignora. Existen varios macros que podemos utilizar
dentro de la funcin llamada (UDF) los cuales nos dan ciertas informaciones tiles.
Macro

Detalles

@GUI_CTRLID

El ID de Control del control que enva el mensaje O el ID del evento del


Sistema

@GUI_WINHANDLE

El Apuntador (handle) de la GUI que enva el mensaje

@GUI_CTRLHANDLE

El apuntador (Handle) que enva el mensaje (si es aplicable)

Nota: es perfectamente legal utilizar la misma funcin para acontecimientos mltiples, todos
lo que usted necesita en estos casos puede tomarse en la informacin de la macro
@GUI_CTRLID. Por ejemplo, usted puede registrar todos los eventos del sistema en alguna
funcin.
Eventos de Controles
Cuando un control es clickeado o cambia el evento del control es enviado. El evento es
atendido por la funcin definida con GUICtrlSetOnEvent. Dentro de la funcin definida por
usuario, de forma transparente, @GUI_CTRLID es fijado para control ID que es devuelto por la
funcin GUICtrlCreate... cuando es creado.
Eventos del Sistema
Eventos del sistema - Como cuando es cerrada la GUI - son similares a los eventos de los
controles, pero el tipo de evento es definido por @GUI_CTRLID. El evento es enviado a la
funcin definida con GUISetOnEvent. Los eventos posibles del sistema son los siguientes:
$GUI_EVENT_CLOSE

;La GUI ha sido cerrada

$GUI_EVENT_MINIMIZE
$GUI_EVENT_RESTORE

;La GUI ha sido minimizada


; La GUI ha sido restaurada

$GUI_EVENT_MAXIMIZE

; La GUI ha sido maximizada

$GUI_EVENT_PRIMARYDOWN

;Se ha oprimido el botn primario del mouse

$GUI_EVENT_PRIMARYUP

;Se ha liberado el botn primario del mouse

$GUI_EVENT_SECONDARYDOWN ;Se ha oprimido el botn secundario del mouse


$GUI_EVENT_SECONDARYUP

;Se ha liberado el botn secundario del mouse

$GUI_EVENT_MOUSEMOVE

; Se ha movido el mouse

$GUI_EVENT_RESIZED

; Ha cambiado de tamao la GUI

$GUI_EVENT_DROPPED

; Se ha soltado un objeto

95

Ejemplos de GUI
En la pgina principal de la Referencia GUI iniciamos un simple ejemplo de "Hola Mundo" que
puede verse aqu:
#include <GUIConstants.au3>
GUICreate("Hola Mundo", 200, 100)
GUICtrlCreateLabel("Hola Mundo! Cmo ests?", 30, 10)
GUICtrlCreateButton("OK", 70, 50, 60)
GUISetState(@SW_SHOW)
Sleep(2000)
Ahora finalizamos el cdigo usando OnEvents y algunos de los mensajes de eventos definidos
ms arriba.
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1) ; cambio para el modo OnEvent
$mainwindow = GUICreate("Hola Mundo", 200, 100)
GUISetOnEvent($GUI_EVENT_CLOSE, "Click en Close")
GUICtrlCreateLabel("Hola Mundo! Cmo ests?", 30, 10)
$okbutton = GUICtrlCreateButton("OK", 70, 50, 60)
GUICtrlSetOnEvent($okbutton, "OKButton")
GUISetState(@SW_SHOW)
While 1
Sleep(1000)
WEnd
Func OKButton()
;Nota: en este punto @GUI_CTRLID es igual a $okbutton,
;y @GUI_WINHANDLE es igual a $mainwindow
MsgBox(0, "Evento GUI", "Usted presion OK!")
EndFunc
Func CLOSEClicked()
;Nota: en este punto @GUI_CTRLID ser igual a $GUI_EVENT_CLOSE,
;y @GUI_WINHANDLE ser igual a $mainwindow
MsgBox(0, "Evento GUI", "Usted Clicke CLOSE ! Finalizando...")
Exit
EndFunc
Esto resulta simple. Obviamente al crearse ms ventanas y controles resulta ms complicado
pero el mecanismo siempre es el mismo, aqu solo mostramos lo bsico.
96

Operaciones avanzadas y mltiples ventanas


El ID de control es nico siempre que se tenga mltiples ventanas, pero cmo hacer referencia
(handle) a cada ventana.
Aqu se muestra un ejemplo similar en el que existe una ventana principal y otra ventana hijo.
#include <GUIConstants.au3>
Opt("GUIOnEventMode", 1) ; Cambio al modo OnEvent
$mainwindow = GUICreate("Hola Mundo", 200, 100)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUICtrlCreateLabel("Hola Mundo! Cmo ests?", 30, 10)
$okbutton = GUICtrlCreateButton("OK", 70, 50, 60)
GUICtrlSetOnEvent($okbutton, "OKButton")
$dummywindow = GUICreate("Ventana dummy para prueba ", 200, 100)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
GUISwitch($mainwindow)
GUISetState(@SW_SHOW)
While 1
Sleep(1000)
WEnd
Func OKButton()
;Nota: en este punto @GUI_CTRLID ser igual a $okbutton
MsgBox(0, "GUI Event", "Usted presion OK!")
EndFunc
Func CLOSEClicked()
;Nota: en este punto @GUI_CTRLID ser igual a $GUI_EVENT_CLOSE,
;@GUI_WINHANDLE es semejante a $mainwindow o $dummywindow
If @GUI_WINHANDLE = $mainwindow Then
MsgBox(0, "GUI Event", "Usted clicke CLOSE en la ventana principal! finalizando...")
Exit
EndIf
EndFunc
El primer cambio que puede notarse es la llamada a la funcin GUISwitch - cuando se crea una
ventana nueva esta se convierte en la ventana por "defecto" para futuras operaciones GUI
(incluyendo creacin de controles). En nuestro caso deseamos trabajar con la ventana
principal "Hola Mundo", no con la ventana de prueba, entonces hacemos
una(conmutacin)switch. Algunas funciones GUI permiten el uso del apuntador de la ventana
97

(handle) dentro de la misma funcin - estas funciones harn la conmutacin


automticamente. En nuestro ejemplo podramos hacer esto con:
GUISetState(@SW_SHOW, $mainwindow)
Tambin puede notarse que utilizamos la misma funcin OnEvent para el apuntador (handle)
el botn "close" para ambas ventanas y despus usamos @GUI_WINHANDLE para determinar
que ventana envi el mensaje - entonces solo se cierra la GUI cuando el botn CLOSE es
clickeado y el mensaje es llamado desde la ventana principal. Usted puede fcilmente separar
las funciones de cada ventana si lo deseas.
Observe que todas las declaraciones actan de manera muy similar, son apenas diferentes y
cada una puede ser ms apropiada que la otra, dependiendo de la situacin especfica que
usted presente.

98

REFERENCIA DE OBJETOS COM


De las Extensiones COM al cdigo para AutoIt
Una breve introduccin
Que es COM?
Entindase COM, como un "Modelo de Objeto Componente". Es el mtodo de Microsoft para
interconectar software usando una interfaz comn. Esas interfaces se encuentran definidas en
un Objeto COM.
Antes de la existencia de COM, usted deba conocer la implementacin exacta de un programa
antes de poder interactuar con l. Usando COM, tiene ahora la capacidad de "hablarle" a estos
Objetos definidos. Sin embargo, debe tener conocimiento de los nombres de los Objetos que
se utilizan y cules son sus 'propiedades' o los 'mtodos' disponibles.
Que son propiedades o mtodos (de un Objeto)?
Hay dos caractersticas bsicas para un objeto. Podra verse una 'propiedad' como el
almacenamiento de datos para un Objeto dado. Y un 'mtodo' puede ser visto como una
funcin interna llamada a hacer algo con esos datos.
Se necesita COM en un script de AutoIt?
Simplemente depende. AutoIt posee muchsimas funciones incorporadas y una amplia librera
de UDFs. La mayor parte de la programacin puede realizarse con ellas. Sin embargo, si usted
requiere un 'enlace' especial a otras aplicaciones, usando COM debera ahorrar algunas lneas
de script. Los desarrolladores de cdigo deben ser conscientes que la existencia de un Objeto
COM depende EN GRAN MEDIDA del sistema operativo y el software instalado. Los ejemplos
citados abajo fueron todos probados en una versin 'plana' de Windows XP professional con
Microsoft Office 2000.
Un ejemplo de uso con COM en AutoIt
Digamos que se desea minimizar todas las ventanas abiertas. Usted podra hacerlo usando
funciones regulares de AutoIt tales como WinList y WinSetState. Sin embargo, dos lneas de
cdigo COM pueden proporcionar el mismo resultado:
$oShell = ObjCreate("[Link]")
$[Link]
99

Nota al margen: El ejemplo ya no es la manera ms breve de minimizar todas las ventanas,


luego de la incorporacin de la funcin WinMinimizeAll() en AutoIt.
En la primera lnea, creamos un nuevo objeto llamado "[Link]". Es un Objeto interno
de Windows, definido en [Link]. El puntero a este nuevo objeto se asigna a la variable
$oShell. $oShell es desde ahora una variable Objeto.
En la segunda lnea, usamos un Mtodo llamado "MinimizeAll" al objeto oShell. Este
minimizar todas las ventanas.
Todas las versiones de Windows tienen una amplia cantidad de Objetos internos para
propsitos variados. Y aplicaciones como Excel o Word tambin tienen su propio conjunto de
Objetos.
No obstante, en algunas circunstancias se torna complejo obtener una lista de todos los
Objetos definidos existentes en el sistema, con sus correspondientes Propiedades y
Mtodos. Buscar por [Link] o [Link] podra proporcionarle alguna pista acerca
del Objeto 'X' que usted pretende utilizar.
Por ejemplo, puede encontrar informacin sobre el objeto "[Link]" en:
[Link]
Para conseguir un acercamiento a todos los objetos actualmente instalados en su sistema, el
"Visor de Objetos OLE/COM" es una muy til herramienta de ayuda. Ms adelante se ampliar
sobre esta herramienta en una seccin aparte.
Ahora otro ejemplo. Supongamos que se desea capturar el cdigo fuente HTML de cierta
pgina web. Usted podra usar la funcin interna InetGet() para guardar el archivo resultante y
luego leerlo a travs de FileRead(). Pero estas lneas de cdigo hacen lo mismo:
$oHTTP = ObjCreate("[Link].5.1")
$[Link]("GET","[Link]
$[Link]()
$HTMLSource = $[Link]
La variable (de cadena) $HTMLSource ahora contiene el cdigo HTML completo para la pgina
de inicio de [Link] (Este sera, el cuadro HTML superior).
(La informacin sobre el objeto "[Link]" puede encontrarse en:
[Link] )

100

Por favor recuerde: La existencia de Objetos depende del sistema operativo de la


computadora y los programas instalados. Por ejemplo, el objeto [Link].5.1
solamente existe en computadoras que tienen al menos la versin 5 de Internet Explorer
instalada. Cuando usted comparte scripts que usan objetos COM, asegrese que los objetos
existan en esas computadoras.
Las variables que contienen Objetos se comportan algo diferente en relacin a otros tipos de
variables en AutoIt. Un Objeto no es realmente un valor, sino un 'puntero' a algo externo al
script. Por lo tanto no puede realizar aritmtica ni ecuaciones con variables del tipo Objeto.
Cuando le asigne a una variable Objeto un valor diferente, el 'puntero' se liberar
automticamente. Usted puede, por ejemplo, forzar el borrado de un Objeto, asignndole
cualquier valor numrico o de texto.
$oHTTP = ObjCreate("[Link].5.1") ; El objeto es creado
$oHTTP=0 ;El objeto es borrado
No es necesario borrar los Objetos cuando est finalizando. Si un script termina, AutoIt
intentar soltar todas las referencias activas a los Objetos que han sido creados en el script. Lo
mismo sucede con una variable de entorno local, si se defini un Objeto dentro de una
funcin, y esta termina con return.
Automatizacin usando COM
Una aplicacin muy popular del COM es la de 'automatizar' programas. En lugar de usar las
funciones regulares de AutoIt, como lo son Send() o WinActivate(), usted puede hacer uso de
Objetos que estn definidos dentro del programa.
Aqu un ejemplo para 'automatizar' el Microsoft Excel:
$oExcel = ObjCreate("[Link]")
; Crea un Objeto Excel
$[Link] = 1
; Permite mostrarle el Excel a usted
$[Link]
; Agrega un nuevo libro de trabajo
$[Link](1,1).Value="prueba" ; LLena una celda
sleep(4000)
; Ver los resultados durante 4 segundos
$[Link] = 1
; Guardado simulado del libro
$[Link]
; Cierra el Excel
La complejidad para operar con otros programas depender especficamente del programa en
cuestin, y no del script AutoIt. Si algo no funciona como usted esperaba, debera intentar
consultar la documentacin para 'esa aplicacin' en vez de la ayuda de AutoIt.
Declaraciones especiales
En AutoIt, existen dos declaraciones especiales que fueron diseadas para el uso con COM:
101

WITH/ENDWITH y el bucle FOR/IN/NEXT.


WITH..ENDWITH
La declaracin WITH/ENDWITH no agrega funcionalidad, pero le permite escribir cdigo y que
este se interprete de una manera ms sencilla. As, el anterior ejemplo de uso con Excel,
pudiera ser escrito tambin como sigue:
$oExcel = ObjCreate("[Link]")

; Crea un Objeto Excel

WITH $oExcel
.Visible = 1
; Permite mostrarle el Excel a usted
.[Link]
; Agrega un nuevo libro de trabajo
.[Link](1,1).Value="Prueba" ; LLena una celda
sleep(4000)
; Le muestra los resultados 4 segundos
.[Link] = 1
; Guardado simulado del libro de trabajo
.Quit
; Cierra el Excel
ENDWITH
Este ejemplo en particular no resume considerablemente el texto, pero cuando en un objeto
usted use abundantes lneas de propiedades/mtodos, podr acortar trabajo de forma
tangible usando la declaracin WITH.
FOR..IN
El bucle FOR...IN se requiere cuando usa Colecciones. Las Colecciones son un tipo especial de
Objeto, que existe fuera de mltiples sub-Objetos. Podramos compararlos con los Arreglos (de
hecho, actualmente la declaracin FOR..IN tambin funciona con variables del tipo Arreglo).
Bucle FOR..IN usando un Arreglo
Debajo hay un ejemplo de un bucle FOR..IN. Este ejemplo usa un arreglo normal de AutoIt,
por lo tanto nada tiene de un COM. Slo es con el fin de mostrarle el principio de uso:
$String = ""

; Una cadena para mostrarle el propsito

$aArray[0]="a"
; LLenamos un arreglo
$aArray[1]=0
; con algunos
$aArray[2]=1.3434
; diferentes
$aArray[3]="testestestest" ; valores de ejemplo.
FOR $Element IN $aArray ; Aqu comienza...
$String = $String & $Element & @CRLF
NEXT

102

; Ahora muestra los resultados al usuario


Msgbox(0,"Prueba Arreglo For..IN","Resultado: " & @CRLF & $String)
Bucle FOR..IN usando un Objeto
En muchos casos usted no puede utilizar mtodos 'normales' de Objeto para obtener los
elementos que conforman una Coleccin. En trminos 'COM' ellos le dicen a usted como se
'enumera' la serie. Aqu es donde el bucle FOR..IN entra en escena.
En el ejemplo de Excel abajo un bucle de celdas A1:O16 sobre la actual hoja activa. Si una de
las celdas tiene un valor por debajo de 5, el cdigo efectuar un reemplazo con 0 (cero):
$oExcel = ObjCreate("[Link]") ; Crea un Objeto Excel
$[Link] = 1
$[Link]
dim $arr[16][16]
for $i = 0 to 15
for $j = 0 to 15
$arr[$i][$j] = $i
next
next

; Permite mostrarle el Excel a usted


; Agrega un nuevo libro de trabajo

; Estas lineas
; son simplemente
; un ejemplo para
; crear algo de
; contenido para las celdas.

$[Link]("A1:O16").value = $arr ; LLena celdas con nmeros de ejemplo


sleep(2000)

; Aguarda un momento antes de continuar

For $cell in $[Link]("A1:O16")


If $[Link] < 5 Then
$[Link] = 0
Endif
Next
$[Link] = 1 ; Guardado simulado del libro de trabajo
sleep(2000)
; Aguarda un momento antes de continuar
$[Link]
; Cierra Excel
Uso avanzado de COM
Las siguientes caractersticas de AutoItCOM requieren un conocimiento profundo de los
Eventos COM y de control para captura de Errores COM.
Si usted recin se est iniciando en este tipo de programacin, por favor lea antes
documentacin algo ms simple referida a COM.
La Biblia de COM es un libro que tiene por nombre "Inside OLE 2" (Dentro del OLE 2) por Kraig
Brockschmidt (Microsoft Press).
103

Tambin puede encontrar recursos COM en internet (no relacionados con AutoIt):
[Link] (introduccin)
[Link] (sobre Objetos en Visual Basic)
[Link]

(Usando objetos en Java)

[Link] (Eventos de
Objeto en C++)
[Link] (Captura de errores en Visual Basic)
Eventos COM
Por lo general, la Automatizacin COM usa principalmente comunicacin en un nico
sentido. Usted 'solicita' al Objeto mediante cualquier propiedad o resultado a partir de un
mtodo. Sin embargo, un Objeto COM puede en ocasiones 'devolver una respuesta' a su
script.
Podra ser muy oportuno en caso de que usted necesite esperar que suceda alguna accin
relacionada al COM.
En lugar de escribir cantidades de bucles, pregunte al Objeto si algo de su inters sucedi.
Usted puede delegar esa tarea para que el Objeto llame a una UDF especfica en su
script. Entre tanto usted puede ejecutar otras cosas en su cdigo (casi) simultneamente.
No todos los Objetos soportan Eventos. Lea la documentacin sobre el objeto cuidadosamente
para determinar si los soporta o no.
En caso de comprobar que s, el segundo paso es lograr determinar qu tipos. AutoItCOM
puede recibir eventos del tipo 'dispatch' solamente.
Para concluir, usted debe conocer los nombres de los Eventos que el Objeto podra generar,
incluyendo sus argumentos (si los hubiere).
Solo cuando disponga de esta informacin, usted podr comenzar a componer un script AutoIt
que ejecute Eventos COM.
Debajo hay un fragmento del cdigo de un script que demuestra como recibir Eventos desde el
Internet Explorer:
$oIE=ObjCreate("[Link].1") ; Crea un Objeto de Internet Explorer
$EventObject=ObjEvent($oIE,"IEEvent_","DWebBrowserEvents") ; Comienza la recepcin de
Eventos.
104

$[Link]= "[Link] ; Abre una pgina Web de ejemplo <BR>


;Partiendo desde aqu, el Objeto $oIE genera eventos durante la carga del sitio.
;Ellos son capturados en la funciones de evento mostradas ms abajo.
;Aqu usted puede hacer que el script permanezca esperando hasta que el usuario finalice.
...(su cdigo estara aqu)...
$[Link]
; Nosotros detenemos la captura de Eventos IE ahora
$EventObject=0
; Liberamos los Eventos para el Objeto
$[Link]
; Cierra IE
$oIE=0
; Remueve IE desde la memoria (no es necesario)
Exit
; Fin del script principal

; Unas pocas Funciones de Evento para Internet Explorer.


;
; Para una lista completa de Funciones de Evento IE, vea la documentacin de MSDN
Navegador web en:
; [Link]
Func IEEvent_StatusTextChange($Text)
; En el script completo (vea el enlace debajo) le mostramos el contenido en una caja GUI de
Edicin.
GUICtrlSetData ( $GUIEdit, "Estado del texto IE cambi a: " & $Text & @CRLF, "append" )
EndFunc
Func IEEvent_BeforeNavigate($URL, $Flags, $TargetFrameName, $PostData, $Headers,
$Cancel)
; En el script completo (vea el enlace debajo) le mostramos el contenido en una caja GUI de
Edicin.
; Nota: la declaracin es diferente de la que figura en el sitio MSDN.
GUICtrlSetData ( $GUIEdit, "AntesNavegar: " & $URL & " Bandera: " & $Flags &
@CRLF, "append")
EndFunc
Click aqu para ver el script completo.
La lnea principal en el script es:
$EventObject=ObjEvent($oIE,"IEEvent_",...).
Esta funcin toma el objeto $oIE y redirecciona estos eventos a la funciones de AutoIt cuyos
nombres comienzan con MYEvent_. El tercer parmetro es opcional. Se emplea cuando un
Objeto tiene multiples interfaces de Evento y usted no desea que AutoIt las seleccione
automticamente.
El Objeto responsable del redireccionamiento continuo es $EventObject. Esta variable no
requiere de una atencin importante, a menos que quiera detener la captura de eventos.
105

Para terminar con la redireccin, no basta con borrar la variable con $EventObject="". puesto
que el Objeto todava mantiene el 'llamado' con referencia a esta variable, y no la perder sino
hasta que el Objeto mismo la cierre. Usted podra resolver este inconveniente borrando el
Objeto que est 'llamando'. Sin embargo es recomendable hacerlo diciendo al Objeto que ya
no desea recibir los Eventos: $[Link]. Luego puede (sin ser realmente necesario)
limpiar el Evento asignndole cualquier valor, como: $EventObject=""
Si usted conoce los nombres de los Eventos que $oIE alerta, puede implementar los que a
usted le interesan creando UDFs para AutoIt con los nombres
IE
Event_NombreEvento(argumentos opcionales). Asegrese de estar usando el nmero correcto
de argumentos y en el orden correspondiente, como se especifica para esa funcin de
evento. De otra manera usted puede obtener algunos valores inesperados.
Si usted no conoce (por alguna razn) los nombres de los eventos, puede agregar una UDF con
el prefijo unicamente. Por ejemplo: Func IEEvent_($Eventname).
Cuando un evento es recibido sin que IEEvent_ NombreEvento UDF exista, esta funcin ser
llamada en su lugar y el nombre del evento ser guardado en la variable $Eventname.
No es requerido implementar TODAS las funciones de evento. Aquellas que no lo estn,
sencillamente sern ignoradas.
Existen mas scripts de ejemplo que usan funciones de Evento COM en el directorio test para la
versin
BETA
de
AutoIt,
descargue
el
archivo
ZIP
distribuible
desde: [Link]
Limitaciones con Eventos COM en AutoIt
Algunos Objetos (como el 'NavegadorWeb') transfiere argumentos a sus Funciones de Evento
'por referencia'. Esto tiene como objetivo permitir al usuario cambiar esos argumentos y
variables devolviendolas al Objeto. Sin embargo, AutoIt usa su propio juego de variables , el
cual no es compatible con las variables COM. Significa que todos los valores desde Objetos
necesitan ser convertidos en variables de AutoIt, perdiendo as la referencia al espacio de
memoria que se les destin originalmente. Es probable que en un futuro cercano podamos
resolverle a usted esta limitacin!
Captura de Errores COM
Usar COM sin una apropiada captura de errores, suele traer muchas complicaciones.
Especialmente cuando no est familiarizado con el uso de Objetos en su script.
Un script de AutoIt detendr inmediatamente su ejecucin cuando detecte un error COM
. Esta configuracin se encuentra predefinida y de hecho es la ms segura. Siendo este el
caso, deber tomar las medidas necesarias para prevenir que un error ocurra.
106

Solamente si no hay manera de prevenir un error COM, podra emplazar un "Capturador de


Errores" en el cual usted tome una accin despus de que el error sucedi. Esta no es la
solucin propuesta de seguimiento para hacer que el script trabaje correctamente. Ni tampoco
est destinada a capturar errores no relativos al COM (ej: declaraciones y errores en la
sintaxis).
La captura de Errores se implementa en la misma forma que un Evento COM normal, usando
ObjEvent() y el usuario define entonces la Funcin Evento. La nica diferencia es el uso fijo de
la cadena "[Link]" en el lugar del nombre del Objeto.
Un ejemplo:
$oMyError = ObjEvent("[Link]","MyErrFunc") ; Emplaza un capturador de errores propio.
; Aqu se lleva a cabo un fallo deliberado (el objeto no existe)
$oIE = ObjCreate("[Link]")
$[Link] = 1
$[Link]
if @error then Msgbox(0,"","la linea anterior tiene un error.")
Exit

; Este es mi capturador de errores propio


Func MyErrFunc()
$HexNumber=hex($[Link],8)
Msgbox(0,"","Se intercept un error COM!" & @CRLF & _
"El nmero es: " & $HexNumber & @CRLF & _
"La descripcin obtenida es: " & $[Link] )
SetError(1) ; algo que colocamos para controlar cuando la funcin retorna
Endfunc
Acerca del Capturador de Errores de Evento, algo especial es lo que el Objeto retorna. Este es
un Objeto de Error en AutoIt que contiene algunas propiedades y mtodos tiles. Su
implementacin est parcialmente basada en el Objeto "Err" de VB(script):
Propiedades del Objeto AutoIt Error:
.number

El valor Windows HRESULT de un llamado COM

.windescript
El texto FormatWinError() derivado desde .number
ion
.source

Nombre del Objeto que gener el error (contenidos desde [Link])

107

.description

La descripcin del Objeto que origin el error (contenido desde


[Link])

.helpfile

Archivo de ayuda del Objeto que origin el error (contenido desde


[Link])

.helpcontext

Nmero Id contextual para el archivo de ayuda del Objeto (contenido desde


[Link])

.lastdllerror El nmero de retorno desde GetLastError()


.scriptline

La linea del script en la cual el error fue generado

Mtodos del Objeto AutoIt Error:


.raise Promueve un Evento de error, iniciado por el usuario
.clear Limpia el contenido del Objeto Error (Ej: nmero a 0, cadena en "")

Nota para los desarrolladores de UDF


Unicamente puede disponer de UN Capturador de Errores de Evento por Script de AutoIt. Si
est escribiendo UDFs con contenido COM, para revisar si el usuario emplaz un Capturador
de Errores propio, proceda como sigue:
$sFuncName = ObjEvent("[Link]")
if $sFuncName <> "" then Msgbox (0,"Prueba","El usuario ya emplaz una funcin de Captura
de Errores: " & $sFuncName)
En caso de que no hubiera un Capturador de Errores activo, puede entonces emplazar
temporalmente el suyo durante el curso al llamado de la UDF.
Sin embargo, nunca podr detener uno ya existente sin liberar antes la variable que le fue
asignada al mismo. Si el autor del script hubiera emplazado un Capturador de Errores COM, es
responsabilidad de aquel utilizar una funcin apropiada que pueda contemplar tambin
errores COM generados por las UDFs.
El Visor de Objetos OLE/COM
En ingls llamada "OLE/COM Object Viewer", es una herramienta muy conveniente para el
objetivo de espiar en todos los objetos COM actualmente instalados en el sistema. Es una
108

parte del Windows 2000 resource kit y puede ser descargado gratuitamente en:
[Link]
El instalador del programa es algo rstico. No le crear ningn cono de acceso en el Men
Inicio. En su lugar, se instalar el archivo [Link] en el directorio C:\Archivos de
Programa\Resource Kit (instalacin predeterminada).
Cuando corra el [Link], algunos sistemas alertarn sobre un archivo faltante con nombre
[Link]. Este archivo es requerido, pero contrariamente a lo que uno podra suponer
lgico, no se encuentra incluido en el instalador. Puede obtener este dll desde una versin
antigua del [Link] en: [Link] Este paquete ahora instalar los archivos de manera
predeterminada en la ruta C:\MSTOOLS\BIN. Como usted unicamente necesita el archivo
[Link], copie el mismo al directorio donde [Link] se localiza, y luego registre el dll
usando la linea de comandos: regsvr32 [Link].
Veamos ahora un ejemplo con el Oleviewer. Ejecutelo y siga esta rama: Object Classes>Grouped by Component Category->Control->Microsoft Web Browser.

En la columna a la izquierda usted ver todas las interfaces COM que han sido definidas para
este objeto. Hablaremos de ella ms tarde. A continuacin observe con detenimiento la
columna de la derecha. Esta contiene mucha informacin para el uso de este objeto en un
script de AutoIt. Lo ms importante es "VersionIndependentProgID". Este ser el nombre a
emplear con la funcin ObjCreate, ObjGet u ObjEvent. Adems contiene el directorio y nombre
del archivo para el objeto. Pudiera ser un EXE, un DLL o un archivo OCX. InProcServer32
109

significa que el objeto corre en el mismo hilo que su script (en-proceso). Cuando visualice en
cambio LocalServer32, sepa que el objeto correr como un proceso separado. El objeto debe
tambin contener un tipo de librera (la linea a continuacin de "TypeLib="), de lo contrario no
es posible utilizarlo en un script de AutoIt.
Las interfaces para la columna ubicada a la izquierda son usadas de diversas maneras a los
fines de interactuar con el objeto. Algunas son empleadas para almacenamiento (IStorage,
IPersist), otras para insertarlas en un GUI (IOleObject, IOleControl). Son los usos en
AutoIt con IDispatch para la interfaz de automatizacin. La misma pone al 'descubierto' todos
los mtodos de escritura de cdigo y propiedades que el objeto soporta. Si no existiesen, usted
no podr utilizar el objeto en un script de AutoIt.
A continuacin centramos la mirada en esta interfaz. Click-derecho sobre el nombre IDispatch
y seleccionamos "View..." desde el men contextual. Ahora click en el botn "View TypeInfo..."
. (Nota: si el mismo aparece inhabilitado, sucedi que no tiene registrado el archivo
[Link] , o el objeto no tiene una librera del tipo.)

La ventana "ITypeInfo Viewer" solamente mostrar la informacin que proporciona el objeto.


Si el desarrollador decide no incluir un archivo de ayuda, usted ver unicamente los
mtodos/propiedades y nada ms que eso. La librera "Microsoft Web Browser" de cualquier
manera es bastante extensa. Haga click en un item de la columna izquierda, y entonces la
descripcin ser mostrada a la derecha. En ocasiones tendr que revisar las "Inherited
Interfaces" para obtener ms mtodos para el objeto.
110

La sintxis para los mtodos/propiedades descriptas aqu figuran al estilo C/C++. Una
propiedad descripta como "HRESULT Resizable([in] VARIANT_BOOL pbOffline)", deber ser
transcripta al lenguaje AutoIt de esta forma: $Resizable=$[Link] ($Object contiene
el objeto creado con ObjCreate u ObjGet).
Trminos propensos a confusin
Estos trminos son por lo general confundidos con COM, pero su significado es diferente:
OOP = Programacin Orientada a Objetos. Una tcnica de programacin con la cual los
componentes del software son agrupados en bloques reutilizables conocidos como Objetos.
DDE = Intercambio dinmico de datos.
Podra decirse que es predecesor del COM. Lo us IPC para transferir informacin y comandos
entre aplicaciones diferentes.
OLE =Enlace al Objeto e Inclusin
En su primer versin, OLE fue una versin extendida del DDE para 'insertar' datos en un
programa desde otro. La generacin actual del OLE es establecimiento del COM y forma parte
del ActiveX.
Automatizacin = Esta es una va para manipulacin de los Objetos en otras aplicaciones. Se
utiliza con OLE, ActiveX y COM.
ActiveX = La siguiente generacin OLE con Automatizacin, desarrollado desde el inicio con el
propsito de servir de interfaz entre aplicaciones conectadas en una red funcional
(especialmente navegadores web). ActiveX se disea en base al COM.
DCOM = COM Distribuido. Una leve modificacin del COM, que posibilita comunicacin entre
diferentes computadoras fsicas.
.NET (punto Net) = No es realmente una porcin de software, sera un 'concepto' ideado por
Microsoft para interconectar simplemente de "todo" a travs de (su) software. "punto Net" es
empleado mayormente para servicios basados en Web.
COMunista = No es parte integrante del COM, sino alguien que cree en el comunismo (una
teora que sostiene que la gente ordinaria debera poseer toda la propiedad).

111

Referencia de Palabras Claves


Abajo se muestra una lista completa de las Palabras Reservadas en AutoIt.

Keyword

Descripcin

False / True

Valores bolanos para ser usados en expresiones lgicas.

#comments-start

Especifica que una seccin entera en el script debe ser


tomado como comentario.

ContinueCase

En un bloque Select o Switch, aborta el actual Case y


continua en el siguiente.

ContinueLoop

Continua un ciclo While/Do/For.

Default

Palabra reservada usada dentro de llamadas a funciones.

Dim / Global / Local / Const

Declara una variable, una constante, o crea un arreglo.

Do...Until

Ciclo basado en una expresin.

Enum

Enumera constantes.

Exit

Termina la ejecucin del script.

ExitLoop

Termina un ciclo While/Do/For

For...To...Step...Next

Ciclo basado en una expresin.

For...In...Next

Enumera elementos en un objeto de coleccin en un


arreglo.

Func...Return...EndFunc

Define una Funcin de Usuario que toma cero o ms


argumentos y devuelve opcionalmente un resultado.

If...Then

Declaracin condicional simple.

If...ElseIf...Else...EndIf

Declaracin condicional.

#include-once

Especifica que el fichero actual pueda establecerse una vez.

#include

Incluye archivos en el script actual.

#NoAutoIt3Execute

Especifica que el actual script compilado no puede correr


con los parmetros /AutoIt3ExecuteLine o
/AutoIt3ExecuteScript.

#NoTrayIcon

Indica que el icono de AutoIt en la barra de tareas no ser


mostrado cuando el script sea ejecutado.

#OnAutoItStartRegister

Registra una funcin para ser llamada cuando AutoIt inicia.

ReDim

Redimensiona un arreglo existente.

#RequireAdmin

Especifica que el actual script requiere derechos de


administrador.

Select...Case...EndSelect

Declaracin condicional
112

Static

Declara una variable esttica o crea un arreglo esttico.

Switch...Case...EndSwitch

Declaracin condicional.

While...WEnd

Ciclo basado en una expresin.

With...EndWith

Usado para reducir referencias largas a variables de tipo


objeto.

#comments-start
Especifica que una seccin entera en el script debe ser tomado como comentario.
#comments-start
...
...
#comments-end
Parmetros
Ninguno
Comentarios
Las directivas #comments-start y #comments-end puede ser anidadas. Usted puede tambin
usar las palabras claves abreviadas #cs y #ce. Adicionalmente, pueden ser comentadas!
Relativo
Ejemplo
#comments-start
MsgBox(4096, "", "Esto no ser ejecutado")
MsgBox(4096, "", "o esto")
#comments-end
;;; #cs
MsgBox(4096, "", "Esto se imprime si '#cs' es quitado.")
#ce

#include
Incluye archivos en el script actual.
#include "[ruta\]nombre de fichero"
#include <nombre de fichero>
Parmetros
nombre de

El nombre del archivo del actual script para ser incluido. Ruta es opcional. Este
113

fichero

debe ser una cadena - No puede ser una variable.


Si "..." es usado, el nombre de archivo es tomado como relativo al actual script.
If <...> es usado el nombre de archivo es tomado como relativo al directorio
include de la librera (usualmente C:\Program Files\AutoIt3\Include). La librera
include contiene algunas funciones de usuario pre-escritas listas para su uso!

Comentarios
En un script de AutoIt , otros scripts puede ser incluido usando el comando #include"
Si usted incluye un archivo con una funcin de usuario duplicada recibir un error: "Duplicate
function". Cuando se incluye un archivo, para asegurarse de que no contiene funciones
duplicadas debe escribirse al principio una lnea que contenga #include-once para prevenir el
error.
Existe un valor especial en el registro que puede ser creado en la siguiente direccin:
"HKEY_CURRENT_USER\Software\AutoIt v3\AutoIt" llamado "Include". Este de de tipo REG_SZ
(cadena). Este valor tiene una lista de directorio delimitados por "punto y coma" (;) para la
localizacin de archivos cuando se utiliza #include's en adicin con las localizaciones estndar.
El orden de bsqueda usado por AutoIt depende de cual forma de #include usted use. En la
tabla de abajo se muestra el orden propuesto para la bsqueda.
Usando #include <>
Librera
estndar

La ruta del intrprete actual en ejecucin con "\Include" adicionado a la


bsqueda.

Librera
definida de
usuario.

El valor de registro mencionado anteriormente es ledo y cada directorio es


buscado en el orden en que aparecen.

Directorio de
El directorio desde el que se est ejecutando el script actualmente.
script
Usando #include "" (Constituye el inverso de #include <>).
Directorio de
El directorio desde el que se est ejecutando el script actualmente.
script
Librera
definida de
usuario

El valor de registro mencionado anteriormente es ledo y cada directorio es


buscado en el orden en que aparecen.

Librera
estndar

La ruta del intrprete actual en ejecucin con "\Include" adicionado a la


bsqueda.

Una nota acerca de uso de la opcin /AutoIt3ExecuteScript. Puesto que la Librera estndar es
buscada por el directorio actual del intrprete, Las funciones de la Librera estndar no sern
encontradas; la Librera estndar solo puede ser encontrada ejecutando [Link]. Es
recomendable que usted compile sus scritp con el formato .a3x antes de intentar ejecutar el
script utilizando /AutoIt3ExecuteScript.
114

Aut2Exe usa el mismo algoritmo que [Link] con la sola diferencia que este busca el
subdirectorio de include como si fuera el subdirectorio hermano de si mismo (..\Include).
Si Opt("TrayIconDebug",1) es fijado solamente nombres de ficheros de 64 include pueden ser
mostrados en el traytooltip. Para otros nombres de archivos no ser mostrado.
Relativo
#include-once
Ejemplo
;;; TIME.AU3 ;;;
MsgBox(0,"", "La hora es" & @HOUR & ":" & @MIN & ":" & @SEC)
;;; SCRIPT.AU3 ;;;
#include "TIME.AU3"
MsgBox(0,"", "Ejemplo")
#include "TIME.AU3"
Exit
; Ejecutar el script.au3 con tres mensajes de salida:
; uno con el tiempo, uno con: 'Example', y otro con el tiempo.

#include-once
Especifica que el fichero actual pueda establecerse una vez.
#include-once
Parmetros
Ninguno
Comentarios
Si usted include el mismo archivo conteniendo una funcin de usuario ms de una vez, usted
obtendr un error "Duplicate function". Cuando escriba un archivo incluido que pueda estar
usando de este modo, coloque en la lnea superior: #include-once para prevenir que este
pueda estar ms de una vez.
Relativo
#include
Ejemplo
;;; LIBRARY.AU3 ;;;
115

#include-once
Func myFunc()
MsgBox(0,"", "Hola desde library.au3")
EndFunc
;;; SCRIPT.AU3 ;;;
#include "Library.au3"
#include "Library.au3" ;enva un error si #include-once no es usado
MsgBox(0, "Ejemplo", "Esto es desde el fichero 'script.au3'")
myFunc()
Exit
; Ejecutar el script.au3 con dos mensajes:
; uno diciendo "Esto es desde el fichero 'script.au3"
; y otro diciendo "Hola desde library.au3"

#NoTrayIcon
Indica que el icono de AutoIt en la barra de tareas no ser mostrado cuando el script sea
ejecutado.
#NoTrayIcon
Parmetros
Ninguno
Comentarios
Es posible utilizar Opt("TrayIconHide", 1) para remover el icono de la barra de tarea pero este
ser visible por un segundo mientras se inicia el script. Colocando la directiva #NoTrayIcon en
la parte superior de su script se asegura de que el icono no sea mostrado.
Usted puede tambin volver a mostrar el icono utilizando Opt("TrayIconHide", 0)
Relativo
TrayIconHide (Option)
Ejemplo
#NoTrayIcon
MsgBox(4096,"Click OK","Muestra el icono de bandeja por 5 segundos...")
Opt("TrayIconHide", 0) ;le quita el modo oculto del icono
Sleep(5000)

#OnAutoItStartRegister
116

Registra una funcin para ser llamada cuando AutoIt inicia.


#OnAutoItStartRegister "funcin"
Parmetros
funcin

El nombre de la funcin a llamar..

Comentarios
Ninguno.
Relativo
Ninguno.
Ejemplo
#OnAutoItStartRegister "MyTestFunc"
#OnAutoItStartRegister "MyTestFunc2"
Sleep(1000)
Func MyTestFunc()
MsgBox(64, "Start Resultado 2", 'Mensaje de Start desde MyTestFunc()')
EndFunc
Func MyTestFunc2()
MsgBox(64, "Start Resultado 3", 'Mensaje de Start desde MyTestFunc()')
EndFunc

#NoAutoIt3Execute
Especifica que el actual script compilado no puede correr con los parmetros
/AutoIt3ExecuteLine o /AutoIt3ExecuteScript.
#NoAutoIt3Execute
Parmetros
Ninguno.
Comentarios
El lanzamiento de un script compilado es terminado con el cdigo de salida = -1 si
/AutoIt3ExecuteLine o /AutoIt3ExecuteScript es usado.
Relativo
Ninguno.
117

#RequireAdmin
Especifica que el actual script requiere derechos de administrador.
#RequireAdmin
Parmetros
Ninguno
Comentarios
Esta funcin fue primeramente creada para proveer un funcionamiento correcto de AutoIt
para el Control de Cuentas de Usuarios de Windows Vista (UAC) (Sin embargo, tambin trabaja
bajo Windows 2000 y Windows XP). Para ms detalles ver AutoIt en Windows Vista.
Como esta funcin inicia nuevos procesos, algunas funciones como Consolewrite() no puede
ser capturados (SciTe no mostrar nada).
Relativo
IsAdmin
Ejemplo
#RequireAdmin
MsgBox(4096,"Info","Now running with admin rights")

Func...Return...EndFunc
Define una Funcin de Usuario que toma cero o ms argumentos y devuelve opcionalmente un
resultado.
Func NombreFuncion ( [Const] [ByRef] $parametro1, ..., [Const] [ByRef] $parametroN,
$opcionalpar1 = valor, ...)
...
[Return [valor]]
EndFunc
Parmetros
Los parmetros son fijados por usted. Luego puede llamar la funcin desde cualquier otra
parte del script.
Comentarios
La palabra clave Const es opcional e indica que el valor del parmetro no cambiar durante la
ejecucin de la funcin. Una variable declarada con Const solo puede ser pasada a la funcin
con el parmetro Const.
118

La palabra clave ByRef indica que el parmetro ser tratado como una referencia al objeto
original. El comportamiento por defecto es hacer una copia del parmetro a una nueva
variable, sin embargo, ByRef vincula la nueva variable con el parmetro original, es decir, se
convierte en un alias. ByRef es usado tpicamente cuando la funcin espera un dato
voluminoso, como largos arreglos donde el hacer una copia implica un consumo en el
rendimiento. Note que no solamente nombres de varibles pueden ser pasados como
parmetros ByRef, variables temporales no nombradas, como los valores de retorno de una
funcin, tambin pueden ser pasados como ByRef. Un literal no puede ser pasado como
parmetro ByRef.
Si se utiliza las palabras reservadas ByRef y Const conjuntamente como parmetro de funcin,
el orden en que aparecen no tiene importancia, siempre que se coloquen delante del nombre
de la variable que se desea modificar.
Arreglos enteros puede ser pasado a funciones (y ser devueltos por ellas) usando simplemente
el nombre del arreglo sin los corchetes: "[]". Los Arreglos deberan ser pasados en las
funciones-Definidas-Usuario usando la palabra clave ByRef para evitar que se haga una copia
de todo el arreglo.
Los parmetros opciones son definidos asignndole un valor predefinido. El valor puede ser
una variable global, macro o valor literal. Los parmetros opcionales siempre aparecen al final
de la funcin. Todos los parmetros despus del primer parmetro opcional deben ser
opcionales. Dentro de la funcin, el nmero de parmetros determinados cuando la funcin es
llamada son obtenidos utilizando el macro @NUMPARAMS (ver ejemplo 2).
Use la palabra clave Return para salir de la funcin. A diferencia de las funciones internas, las
funciones-Definidas-Usuario retornan 0 a menos que sea especificado un valor despus de
Return para ser devuelto por la funcin.
Note que la declaracin de una funcin no puede aparecer dentro de la declaracin de otra
funcin (no pueden ser anidadas).
Relativo
Dim/Global/Local, #include, Const
Ejemplo
Example1()
Example2()
; example1
Func Example1()
; Script de ejemplo con tres funciones de usuario
; Observe el uso de variables, ByRef, y Return
119

Local $foo = 2
Local $bar = 5
msgBox(0,"Hoy es " & today(), "$foo igual " & $foo)
swap($foo, $bar)
msgBox(0,"Despus de intercambiar $foo y $bar", "$foo ahora contiene " & $foo)
msgBox(0,"Finalmente", "El mayor de 3 y 4 es " & max(3,4))
EndFunc ;==>Example1
Func swap(ByRef $a, ByRef $b) ;intercambia el contenido de dos variables
Local $t
$t = $a
$a = $b
$b = $t
EndFunc
Func today() ;Devuelve la fecha actual en el formato mm/dd/yyyy
return (@MON & "/" & @MDAY & "/" & @YEAR)
EndFunc
Func max($x, $y) ;Devuelve el mayor de dos nmeros
If $x > $y Then
return $x
Else
return $y
EndIf
EndFunc
;Final del script de ejemplo 1
; ejemplo2
Func Example2()
; ejemplo utilizando la macro @NumParams
Test_Numparams(1,2,3,4,5,6,7,8,9,10,11,12,13,14)
EndFunc ;==>Example2
Func Test_Numparams($v1 = 0, $v2 = 0, $v3 = 0, $v4 = 0, $v5 = 0, $v6 = 0, $v7 = 0, $v8 = 0, $v9
= 0, _
$v10 = 0, $v11 = 0, $v12 = 0, $v13 = 0, $v14 = 0, $v15 = 0, $v16 = 0, $v17 = 0, $v18 = 0, $v19
= 0)
Local $val
For $i = 1 To @NumParams
$val &= Eval("v" & $i) & " "
Next
MsgBox(0, "@NumParams example", "@NumParams =" & @NumParams & @CRLF &
@CRLF & $val)
EndFunc
;Final del script de ejemplo 2

Dim / Global / Local / Const

120

Declara una variable, una constante, o crea un arreglo.


Dim [Const] $variable [ = inicializacin ]
Dim [Const] $arreglo[subscript 1]...[subscript n] [ = inicializacin]
Parmetros
const

[opcional] Si esta presente, La palabra clave Const crea una Constante en vez de
una variable.

$variable

El nombre de la variable/constante para ser declarada.

inicializacin

El valor con el que se inicializar la variable. Una constante debe tener una
inicializacin siempre. La inicializacin puede ser la llamada a una funcin.

subscript

El nmero de elementos que determinan la dimensin del arreglo, indexado por


0 hasta n-1.

Comentarios
Las palabras claves Dim/Local/Global desempean funciones semejantes:
1. Declara variables antes de que usted las use (similar a VBScript)
2. Crea un arreglo (vector)
Nota: En AutoIt usted puede crear una variable simplemente por asignacin de un valor
($MiVariable = 0) pero algunas personas prefieren declarar las variables. Si
AutoItSetOption("MustDeclareVars", 1) es activado, entonces las variables deben ser
declaradas.
Usted puede tambin declarar mltiple variables en una sola lnea:
Dim $a, $b, $c
Y tambin inicializarlas:
Dim $a = 2, $b = 10, $c = 20
Para crear las constantes se sigue de manera similar:
Const $a = 2, $b = 10, $c = 20
Dim Const $d = 21, $e = Exp(1)
Local Const $f = 5, $g = 7, $h = -2
Una vez creada, usted no puede cambiar el valor de una constante. Tambin, usted no puede
cambiar una variable existente en una constante.
Para inicializar un arreglo, especifique los valores dentro de corchetes ([]) , separados por
comas. Para mltiples dimensiones, anide las inicializaciones. Usted puede especificar menos
121

elementos que los declarados, pero no ms. Tambin puede utilizar una llamada de funcin en
la inicializacin. Si la llamada de la funcin devuelve un arreglo, entonces el primer elemento
del arreglo ser tomado.
Dim $Array1[12]=[3, 7.5, "string"], $arreglo[5] = [8, 4, 5, 9, 1]
Dim $Grid[2][4]=[["Paul", "Jim", "Richard", "Louis"], [485.44, 160.68, 275.16, 320.00]]
Dim $Test[5] = [3, 1, StringSplit("Abe|Jack|Bobby|Marty", "|"), Cos(0)]
La diferencia entre Dim, Local y Global es el entorno en que estas son declaradas:
Dim = Entorno local si el nombre de variable no existe globalmente (en dicho caso la variable
rehsa del entorno global!)
Global = Fuerza la creacin de la variable a un entorno global
Local = Fuerza la creacin de la variable en entorno Local/Function.
Usted debe usar Local o Global, en lugar de Dim, para determinar explcitamente el entorno
deseado para variable/constante/arreglo.
Cuando utiliza variables, el entorno local es chequeado primero y despus el entorno global.
Cuando creamos un arreglo usted debe limitar a lo sumo 64 dimensiones y/o un total de 16
millones de elementos.
Una caracterstica nica de AutoIt es la habilidad de copiar arreglos de esta forma:
$mycopy = $myarray
En este caso $mycopy ser una copia exacta de $myarray y tendr sus dimensiones - no es
requerido usar Dim para establecer primero las dimensiones.
Si AutoItSetOption("MustDeclareVars", 1) esta activo entonces la variable $mycopy debera
ser declarada primero, pero usted no necesita establecer dimensin alguna. Si la variable
$mycopy ya es un arreglo o tiene un valor simple este ser borrado antes de que tenga lugar la
copia.
Para borrar un arreglo (puede que usted tenga un largo arreglo global y desea liberar
memoria), simplemente asigne un valor simple al mismo:
$array = 0
Esto borrar el arreglo y asignar a la variable el valor 0.
Al declarar el mismo nombre de la variable esta se borrar y ser reseteada a los valores
actuales. Declarando una variable con un simple valor en el mismo entorno no cambia el valor
de la variable.

122

Si usted declara una variable con el mismo nombre como parmetro, usando Local dentro de
una funcin de usuario, un error ocurrir (no puede haber dos variables locales dentro de una
funcin). Global puede ser usado para asignar variables globales dentro de una funcin, pero si
una variable local (o parmetro) tiene el mismo nombre de una variable local, entonces la
variable local ser usada en ves de la global. Para esto es recomendable asignar nombres
distintos a variables locales y globales.
Relativo
UBound, ReDim, Static, UBound, ReDim, AutoItSetOption
Ejemplo
; Ejemplo 1 - Declarando variables
Dim $x, $y = 23, $z
Global $_PI = 3.14159, $RADIUS
Local $_daysWorking = 5
; Ejemplo 2 - Declarando arreglos
Dim $weeklyWorkSchedule[$_daysWorking]
Global $chessBoard[8][8]
Local $mouseCoordinates[2], $windowStats[4]
; Ejemplo 3 - Declarandos variables constantes
Const $x1 = 11, $y1 = 23, $z1 = 55
Global Const $PI = 3.14159, $E = 2.71828
Local Const $daysWorking = 5

ContinueCase
En un bloque Select o Switch, aborta el actual Case y continua en el siguiente.
ContinueCase
Parmetros
Ninguno
Comentarios
Normalmente en un bloque Select o Switch, un Case termina cuando la prxima declaracin
CASE es encontrada. Utilize ContinueCase para ordenar a AutoIt que detenga la ejecucin del
CASE actual e inicie la ejecucin del prximo CASE.
Si prueba ejecutar ContinueCase fuera de un bloque Select o Switch se produce un error fatal.
Relativo
123

Select...EndSelect, Switch...EndSwitch
Ejemplo
$msg = ""
$szName = InputBox(Default, "Por favor entre una palabra.", "", " M", Default, Default, Default,
Default, 10)
Switch @error
Case 2
$msg = "Intervalo "
ContinueCase
Case 1; Continuando en el previo Case
$msg &= "Cacelacin"
Case 0
Switch $szName
Case "a", "e", "i", "o", "u"
$msg = "Vocal"
Case "QP"
$msg = "Matemticas"
Case "Q" to "QZ"
$msg = "Ciencias"
Case Else
$msg = "Otros"
EndSwitch
Case Else
$msg = "Algo sali muy mal."
EndSwitch
MsgBox(0, Default, $msg)

ContinueLoop
Continua un ciclo While/Do/For.
ContinueLoop [nivel]
Parmetros
nivel

[opcional] El nivel del ciclo para reiniciar. Por defecto es 1 (significa el ciclo
actual).

Comentarios

124

ContinueLoop continua la ejecucin del ciclo testeando la expresin (para declaraciones While,
Until o Next).
Un nivel negativo o cero no surte efecto.
Aunque ningn programa que use ContinueLoop puede ser reescrito usando la declaracin IfElseIf-EndIf, ContinueLoop puede hacer los Scripts largos ms fciles de entender.
Tenga cuidado con ciclos While/Do; usted puede crear ciclos infinitos usando ContinueLoop
incorrectamente.
Relativo
ExitLoop, For, While, Do
Ejemplo
;Imprime todos los nmeros de 1 al 10 excepto el nmero 7
For $i = 1 to 10
If $i = 7 Then ContinueLoop
MsgBox(0, "El valor de $i es:", $i)
Next

Default
Palabra reservada usada dentro de llamadas a funciones.
$var = Default
Parmetros
Ninguno
Comentarios
Esta palabra reservada no debe ser usada en una expresin de cmputo general. AutoIt no la
detecta por ser de implementacin compleja.
Cuando es usado en parmetros a pasar, el comportamiento es especfico segn la
correspondiente documentacin de la funcin.
Para UDFs es el script el responsable de chequear si el parmetro ha sido bien establecido para
la palabra reservada Default y que representa el comportamiento que se desea.
El parmetro pasado ser pasado como palabra reservada Default no como un valor optativo,
si es definido.
Relativo
IsKeyWord

125

Ejemplo
WinMove("[active]","",default, default, 200,300) ; solo cambia el tamao de la ventan activa
(no la mueve)
MyFunc2(Default,Default)
Func MyFunc2($Param1 = Default, $Param2 = 'Dos', $Param3 = Default)
If $Param1 = Default Then $Param1 = 'Uno'
If $Param3 = Default Then $Param3 = 'Tres'
MsgBox(0, 'Parmetros', '1 = ' & $Param1 & @LF & _
'2 = ' & $Param2 & @LF & _
'3 = ' & $Param3)
EndFunc

Do...Until
Ciclo basado en una expresin.
Do
declaracin
...
Until <expresin>
Parmetros

expresin

La declaracin entre Do y Until son ejecutado mientras la expresin sea


verdadera.

Comentarios
La declaracin Do...Until pueden ser anidadas. La expresin es testeada despus que el ciclo es
ejecutado, de este modo el ciclo ser ejecutada uno o ms veces.
Relativo
ContinueLoop, ExitLoop
Ejemplo
$i = 0
Do
MsgBox(0, "Valor de $i es:", $i)

126

$i = $i + 1
Until $i = 10

Enum
Enumera constantes.
[entorno] Enum [Step <ValorGrado>] <constantlist>
Parmetros
entorno

[opcional] El entorno para Enum, puede ser Local, Global, Dim o ninguno. Si es
ninguno, es utilizado el entorno para Dim.

ValorGrado

[opcional] Por defecto el grado es adicionando 1. Otros posibles mtodos son:


*n, +n, -n donde n es el nmero completo.

constantlist

Una lista de constantes para ser enumeradas.

Comentarios
Por defecto, la primera constante ser 0 y el resto ser incrementando al valor anterior en 1.
Cuando se utiliza el operador multiplicar, la primera constante se le asignar 1 y el resto ser
incrementada multiplicando el valor anterior por la unidad establecida en (n).
Las constantes pueden ser asignadas explcitamente por cualquier declaracin vlida.
Relativo
Ejemplo
Global Enum $E1VAR1, $E1VAR2, $E1VAR3
MsgBox(4096, "", "Se espera 0: " & $E1VAR1)
MsgBox(4096, "", "Se espera 1: " & $E1VAR2)
MsgBox(4096, "", "Se espera 2: " & $E1VAR3)
Global Enum $E2VAR1 = 10, $E2VAR2, $E2VAR3 = 15
MsgBox(4096, "", "Se espera 10: " & $E2VAR1)
MsgBox(4096, "", "Se espera 11: " & $E2VAR2)
MsgBox(4096, "", "Se espera 15: " & $E2VAR3)
Global Enum Step *2 $E3VAR1, $E3VAR2, $E3VAR3
MsgBox(4096, "", "Se espera 1: " & $E3VAR1)
MsgBox(4096, "", "Se espera 2: " & $E3VAR2)
MsgBox(4096, "", "Se espera 4: " & $E3VAR3)

Exit
Termina la ejecucin del script.
Exit [cdigo de retorno]

127

Parmetros

cdigo de
retorno

[opcional] Entero que devuelve el script al finalizar. Este cdigo puede ser usado
por Windows o por una variable del DOS %ERRORLEVEL%. Por defecto es 0. Los
Scripts normalmente establecen el error a 0 si son ejecutados correctamente; si
error es 1 entonces este indica tpicamente que el script no fue ejecutado
correctamente.

Comentarios

El parmetro, si es incluido, puede ser encerrado entre parntesis. De esta manera, los
siguientes son vlidos: Exit, Exit 0, y Exit(0). Sin embargo, Exit() es invlido.
El cdigo puede ser devuelto en una funcin OnAutoItExitRegister por @EXITCODE.
Relativo
ExitLoop, OnAutoItExitRegister
Ejemplo
;Primer Ejemplo
Exit
;Segundo Ejemplo
; Termina el script si no existe argumentos de lnea de comandos
If $CmdLine[0] = 0 Then Exit(1)
;Tercero Ejemplo
; Abre un fichero espesificado como primer argumento de lnea de comandos
$file = FileOpen($CmdLine[1], 0)
; Chequea si el fichero abierto fu leido satisfactoriamente
If $file = -1 Then Exit(2)
; Si el fichero esta vacio termina el script (script satisfactorio)
$line = FileReadLine($file)
If @error = -1 Then Exit
;Coloque el cdigo para procesar el fichero aqu
FileClose($file)
Exit ;es opcional como ltima lnea del script

ExitLoop
128

Termina un ciclo While/Do/For


ExitLoop [nivel]
Parmetros

nivel

[opcional] El nmero correspondiente del nivel del ciclo que desea terminar. Por
defecto es 1 (el ciclo actual).

Comentarios

Un nivel negativo o cero no surte efecto.


ExitLoop har terminar un ciclo While, Do o For.
ExitLoop resulta muy til, de otro modo necesita ejecutar un chequeo de error en ambos Looptest y el loop-body.
Relativo
ContinueLoop, Exit, For, Do, While
Ejemplo
$sum = 0
While 1 ;uso de un ciclo infinito hasta que ExitLoop sea invocado
$ans = InputBox("Ejecutando total=" & $sum, _
" Entre un nmero positivo. (Un nmero negativo existe)")
If $ans < 0 Then ExitLoop
$sum = $sum + $ans
WEnd
MsgBox(0,"La suma fu", $sum)

False / True
Valores bolanos para ser usados en expresiones lgicas.
$var = False
$var = True
Parmetros
Ninguno
Comentarios
129

Estas palabras claves no deben ser usados en expresiones en las que AutoIt no detecta su 'uso
inadecuado' con resultados impredecibles.
Relativo
Ninguno.
Ejemplo
$bool= False
if NOT $bool = true Then Msgbox(0,"comparacin booleana", "OK")

For...To...Step...Next
Ciclo basado en una expresin.
For <variable> = <inicio> To <parada> [Step <incremento>]
declaracin
...
Next
Parmetros
variable

variable usada para el contador.

inicio

El valor inicial de la variable.

parada

El valor final de la variable.

incremento

[opcional] El valor numrico (puede ser fraccionario) por el cual el contador es


incrementado en cada ciclo. Por defecto es 1.

Comentarios

La variable ser creada automticamente con entorno LOCAL, aun cuando MustDeclareVars
sea usado.
Declaraciones For...Next pueden ser anidadas. El ciclo FOR termina cuando el valor de la
variable excede el valor de stop. Si incremento o parada es una variable, su valor es ledo
solamente la primera ves que el ciclo es ejecutado.
Un ciclo for es ejecutado cero veces si:
inicio > parada y step > 0, o
inicio < parada y step es < 0
Relativo
130

ContinueLoop, ExitLoop
Ejemplo
For $i = 5 to 1 Step -1
MsgBox(0, "Cuenta regresiva!", $i)
Next
MsgBox(0,"", "Gran Suceso!")

For...In...Next
Enumera elementos en un objeto de coleccin en un arreglo.
For <$Variable> In <expresin>
declaracin
...
Next
Parmetros
Variable

Una variable para la cual un elemento es asignado.

expresin

Debe ser una expresin que represente un Objeto, o un arreglo con al menos un
elemento.

Comentarios
La variable ser creada automticamente con entorno LOCAL, aun cuando MustDeclareVars
sea usado.
Si la expresin es un objeto de coleccin sin elementos o un arreglo multidimensional, el ciclo
ser obviado y la variable contendr una cadena vaca.
Si la expresin no es un Object o un Arreglo, el script se detiene con un error, a menos que un
identificador COM Error sea configurado.
Los arreglos en AutoIt son de solo lectura cuando utilizamos For...In. Mientras usted puede
asignar un valor a la variable dentro del ciclo For...In, este valor no se refleja en el arreglo en s
mismo. Para modificar el contenido de un arreglo durante la enumeracin use un ciclo For...To.
Declaraciones For...In...Next pueden ser anidadas.
Relativo
With...EndWith
Ejemplo

131

;Usando un arreglo
Dim $aArray[4]
$aArray[0]="a"
$aArray[1]=0
$aArray[2]=1.3434
$aArray[3]="test"
$string = ""
FOR $element IN $aArray
$string = $string & $element & @CRLF
NEXT
Msgbox(0,"For..IN Arraytest","Resultado es: " & @CRLF & $string)
;Usando un objeto de coleccin
$oShell = ObjCreate("[Link]")
$oShellWindows=$[Link]
if Isobj($oShellWindows) then
$string=""
for $Window in $oShellWindows
$String = $String & $[Link] & @CRLF
next
msgbox(0,"","Usted tiene las siguientes ventana abiertas:" & @CRLF & $String)
else
msgbox(0,""," Usted no ha abierto ventana alguna.")
endif

If...Then
Declaracin condicional simple.
If <expresin> Then declaracin
Parmetros
expresin

Si la expresin es verdadera, la declaracin es ejecutada.

Comentarios
132

Esta versin de la declaracin If es usado para ejecutar un enunciado simple sin anteponer
nada antes del EndIf.
La expresin puede contener operadores bolanos de AND, OR, y NOT as como operadores
lgicos <, <=, >, >=, =, ==, y <> agrupados con parntesis como desee.
Relativo
If...Else...EndIf, Select...Case...EndSelect, Switch...EndSwitch
Ejemplo
;Termina el script si no existen argumento de lnea de comandos
If $CmdLine[0] = 0 Then Exit
;Alternativa:
If $CmdLine[0] = 0 Then
Exit
EndIf

If...ElseIf...Else...EndIf
Declaracin condicional.
If <expresin> Then
declaracin
...
[ElseIf expresin-n Then
[elseif declaracin ... ]]
...
[Else
[declaracin else]
...
EndIf
Parmetros

expresin

Si la expresin es verdadera, el primer bloque de cdigo es ejecutado. Si resulta


falso lo anterior, entonces la primera condicin ElseIf verdadera es ejecutada .
De lo contrario, el bloque "Else" es ejecutado.

Comentarios
Las declaraciones IF pueden ser anidadas.

133

La expresin puede contener operadores bolanos de AND, OR, y NOT as como operadores
lgicos <, <=, >, >=, =, ==, y <> agrupados con parntesis como desee.
Relativo
If...Then, Select...Case...EndSelect, Switch...EndSwitch
Ejemplo
If $var > 0 Then
MsgBox(4096,"", "Valor positivo.")
ElseIf $var < 0 Then
MsgBox(4096,"", "Valor negativo.")
Else
If StringIsXDigit ($var) Then
MsgBox(4096,"", "Valor debe ser hexadecimal!")
Else
MsgBox(4096,"", "El valor debe ser cadena o cero")
EndIf
EndIf

ReDim
Redimensiona un arreglo existente.
ReDim $arreglo[subscript 1]...[subscript n]
Parmetros
$arreglo

El nombre de el arreglo para reajustar.

subscript

El nmero de elementos a crear para la dimensin del arreglo, indexado por 0 a


n-1.

Comentarios
La palabra clave ReDim es similar a Dim, Excepto que ReDim conserva los valores en el arreglo
en lugar de eliminar los valores mientras se reajusta la dimensin del arreglo. El nmero de
dimensiones debe ser el mismo, o el arreglo anterior ser ignorado por ReDim. El arreglo debe
mantener el entorno (Global o Local) que presentaba antes del reajuste.
Relativo
Dim, Ubound
134

Ejemplo
; Example Resizing an array
Dim $I, $K, $T, $MSG
Dim $X[4][6], $Y[4][6]
For $I = 0 To 3
For $K = 0 To 5
$T = Int(Random(20) + 1) ;Get random numbers between 1 and 20
$X[$I][$K] = $T
$Y[$I][$K] = $T
Next
Next
ReDim $X[3][8]
Dim $Y[3][8]
$MSG = ""
For $I = 0 To UBound($X, 1) - 1
For $K = 0 To UBound($X, 2) - 1
If $K > 0 Then $MSG = $MSG & ", "
$MSG = $MSG & $X[$I][$K]
Next
$MSG = $MSG & @CR
Next
MsgBox(0, "ReDim Demo", $MSG)
$MSG = ""
For $I = 0 To UBound($Y, 1) - 1
For $K = 0 To UBound($Y, 2) - 1
If $K > 0 Then $MSG = $MSG & ", "
$MSG = $MSG & $Y[$I][$K]
Next
$MSG = $MSG & @CR
Next
MsgBox(0, "ReDim Demo", $MSG)

Select...Case...EndSelect
Declaracin condicional
Select
Case <expresin>
declaracin1
135

...
[Case
declaracin2
...]
[Case Else
declaracinN
...]
EndSelect
Parmetros
Si la expresin es verdadera toda la declaracin hasta el prximo Case o
Case
declaracin EndSelect es ejecutado. Si ms de una declaracin CASE es
<expresin>
verdadera, solamente la primera es ejecutada.
Comentarios
Las declaraciones Select pueden ser anidadas.
La expresin puede contener operadores bolanos de AND, OR, y NOT as como operadores
lgicos <, <=, >, >=, =, ==, y <> agrupados con parntesis como desee.
Relativo
If...Then, If...Else...EndIf, Switch...EndSwitch, ContinueCase
Ejemplo
$var = 0
$var2= ""
Select
Case $var = 1
MsgBox(0, "", "First Case expression was true")
Case $var2 = "test"
MsgBox(0, "", "Second Case expression was true")
Case Else
MsgBox(0, "", "No preceding case was true!")
EndSelect

Static
Declara una variable esttica o crea un arreglo esttico.

136

Static [Alcance] $variable [ = inicializador ]


Static [Alcance] $arreglo[dimensin 1]...[dimensin n] [ = inicializador ]
Parmetros
Alcance

Un modificador opcional, Local o Global que indica donde la variable es visible.

$variable

El nombre de la variable a declarar esttica.

inicializador

El valor que ser inicialmente asignado a la variable. El inicializador puede ser


una llamada de funcin que involucre operaciones matemticas o comparacin
de cadenas. Este inicializador es solo evaluado la primera vez que la declaracin
de la variable aparace.

dimensin

El nmero de elementos que indica la dimensin del arreglo, indexado de 0 a n1.

Comentarios
La palabra reservada Static puede aparecer en una linea antes del espesificador opcional de
alcance , o despus. e.j. Local Static o Static Local ambas formas con aceptables.
Si el modificador de alcance Local es usado, entonces la variable statices visible y usable solo
en la funcin en qla cual es declarada. Si el modificador de alcance Global es usado, entonces
la variable static es visible y usable en todas las partes de script; en esta forma, una Global
Static no tiene muchas difeencias de una variable Global. Si el modificador de alcamce no es
usado, entonces la variable static ser creada con alcance local; en esta forma, Static es similar
a
Dim.
La diferencia entre Local y Static es el tiempo de vida de la variable. Las variables Locales son
solamente almacenadas mientras la funcin es llamada y son visibles solo dentro de la funcin
en la cual es declarada; cuando la funcin retorna, todas estas variables locales son destruidas.
Las variables estticas son asimismo visibles solo en la funcin donde son declaradas, pero
continuan existiendo, es decir, reteniendo el ltimo valor asignado, an despus de que la
funcin halla finalizado. Cuando se acceda a variables, el alcance local es chequeado primero y
despus el alcance global.
La palabra reservada Static ejecuta una funcin similar a las palabras reservadas
Global/Local/Dim.
1. Todas ellas declaran una variable antes de ser usada.
2. Todas ellas crean un arreglo.
Nota: Las variables Static deben ser declaradas usando la palabra reservada Static antes de ser
usadas, no tiene importancia como AutoItSetOption("MustDeclareVars") es fijado. Las
variables estticas no pueden ser Const.
Usted puede tambin declarar mltiples variables estticas en una sola lnea:
Static $a, $b, $c
137

E inicializar las variables:


Static $a = 2, $b = 10, $c = 20
Cuando se inicializa unavariable static, el valor de inicializacin es evaluado y asignado solo la
primera vez, cuando la variable es creada. En todos los subsecuentes pases, el inicializador es
ignorado.
Ver Local para ms informacin acerca del uso de arreglos, el cual tiene la misma
funcionalizada como en Local, excepto para:
1. La Reiniciaizacin de una variable Static no tendr efecto
2. El reajuste de tamao de una arreglo Static es similar a un ReDim.
3. Usted no puede cambiar una variable esttica en variable local o global ni viceversa.
Si usted desea reajustar un arrglo, siempre use Static, no Redim.
Relativo
Local, UBound, ReDim, AutoItSetOption
Ejemplo
; Ejemplos de variables estticas.
Opt("MustDeclareVars", 1)
Func Test1()
Static $STbFirstPass = 1
If $STbFirstPass Then
$STbFirstPass = 0
; Ejecutar tareas en el primer tiempo
EndIf
; Otras cosas que la funcin har
EndFunc ;==>Test1
Func Accumulate($State)
Static $Values[9]
Local $I
If IsNumber($State) Then
Switch $State
Case -1
; Reseteo
For $I = 0 To 8
138

$Values[$I] = 0
Next
Return True
Case -2
Return $Values
Case 0 To UBound($Values) - 1
$Values[$State] += 1
Return $Values[$State]
Case Else
If $State < 0 Then
SetError(1, 0)
Return False
Else
Static $Values[$State + 1] ; Reajuste del arreglo para acomodar los nuevos valores.
$Values[$State] = 1
Return 1
EndIf
EndSwitch
Else
SetError(2, 0)
EndIf
EndFunc ;==>Accumulate
Global $I
Test1()
For $I = 1 To 99
Accumulate(Random(0, 20, 1))
Next
For $I In Accumulate(-2)
ConsoleWrite($I & ", ")
Next
ConsoleWrite("\n");
Test1()
Aviso: Esta caracterstica es experimental. Puede no funcionar, puede contener errores, ser
cambiado o removido sin aviso alguno.
No reporte ningn fallo o recomiende nuevas ideas acerca de esta caracterstica.
USAR BAJO SU PROPIO RIESGO.

Switch...Case...EndSwitch
139

Declaracin condicional.
Switch <expresin>
Case <valor> [a <valor>] [,<valor> [a <valor>] ...]
declaracin1
...
[Case <valor> [a <valor>] [,<valor> [a <valor>] ...]
declaracin2
...]
[Case Else
declaracinN
...]
EndSwitch
Parmetros
Una expresin que devuelve un valor. Este valor es entonces comparado con los
<expresin> valores de cada case hasta que se encuentre una coincidencia. Esta expresin es
evaluada exactamente una vez dentro de la estructura.
<valor>
a<valor>

el case es ejecutado si la expresin esta entre los dos valores.

<valor>

El case es ejecutado si la expresin coincide con el valor.

Comentarios
Si ningn de los casos coincide con el valor que sigue a Switch, entonces la seccin Case Else, si
esta presente, es ejecutado. Si no coincide ningn cases y la seccin Case Else no esta definida,
entonces ningn cdigo dentro de la estructura Switch, aparte de la condicin, ser ejecutado.
Las declaraciones Switch pueden ser anidadas.
Relativo
If...Then, If...Else...EndIf, Select...EndSelect, ContinueCase
Ejemplo
Switch @HOUR
Case 6 To 11
$msg = "Buenas Das"
Case 12 To 17
$msg = "Buenas Tardes"
Case 18 To 21
$msg = "Buenas Noches"
Case Else
140

$msg = "Qu usted esta haciendo arriba?"


EndSwitch
MsgBox(0, Default, $msg)

With...EndWith
Usado para reducir referencias largas a variables de tipo objeto.
With <expresin>
declaracin
...
EndWith

Parmetros
expresin

Debe ser una expresin de tipo objeto.

Comentarios
Las declaraciones With...EndWith NO pueden ser anidadas.
Relativo
For...In...Next
Ejemplo
$oExcel = ObjCreate("[Link]")
$[Link] =1
$[Link]
With $[Link]
.cells(2,2).value = 1
.range("A1:B2").clear
EndWith
$[Link]

While...WEnd
Ciclo basado en una expresin.

141

While <expresin>
declaracin
...
WEnd
Parmetros

expresin

Si la expresin es verdadera la toda la declaracin hasta la declaracin WEnd es


ejecutado. El ciclo continua indefinidamente mientras la expresin sea
verdadera.

Comentarios
Las declaraciones While...WEnd pueden ser anidadas.
La expresin es testeada antes que el ciclo sea ejecutado de esta manera el ciclo es ejecutado
cero o ms veces.
Para crear un ciclo infinito, usted puede usar un nmero diferente de cero en expresin.
Relativo
ContinueLoop, ExitLoop
Ejemplo
$i = 0
While $i <= 10
MsgBox(0, "Value de $i es:", $i)
$i = $i + 1
WEnd

142

Referencia de Macros
Debajo hay una lista en orden alfabtica de todos los marcos disponibles en AutoIt.
Macro

Descripcin

@AppDataCommonDir

Ruta a la carpeta comn de Datos de aplicacin.

@AppDataDir

Ruta de la carpeta de Datos de Aplicacin del usuario actual.

@AutoItExe

La direccin completa y nombre de archivo del archivo


ejecutable AutoIt actualmente en ejecucin. Para archivos
compilados es la ruta completa del script compilado.

@AutoItPID

PID del proceso ejecutando el script.

@AutoItVersion

Nmero de Versin de AutoIt tal como [Link]

@AutoItX64

Devuelve 1 si el script est ejecutndose bajo la versin nativa de


x64 de AutoIt.

@COM_EventObj

Objeto del evento COM est siendo notificado. Vlido solamente


en la funcin de eventos COM.

@CommonFilesDir

ruta a la carpeta de Archivos Comunes (Common Files)

@Compiled

Devuelve 1 si el script es ejecutable compilado; de otra manera,


devuelve 0.

@ComputerName

Nombre de la Computadora en la red.

@ComSpec

valor de %comspec%, el interpretador secundario especificado


de comandos; primordialmente para usos de lnea de comando,
ejemplo Run(@ComSpec & " /k help | more")

@CPUArch

Devuelve "X86" cuando la CPU es una CPU de 32-bit y "X64"


cuando la CPU es de 64-bit.

@CR

Retorno de Carro, Chr(13); algunas veces es usado para


interrupcin de lnea.

@CRLF

= @CR & @LF; ocasionalmente usado para interrupcin de


lneas.

@DesktopCommonDir

ruta a la carpeta de Escritorio (Desktop)

@DesktopDir

ruta a la carpeta del Escritorio del usuario

@DesktopHeight

Altura de la pantalla del escritorio en pxeles. (resolucin


vertical)

@DesktopWidth

Ancho de la pantalla del escritorio en pxeles. (resolucin


horizontal)

@DesktopDepth

Rango de la pantalla del escritorio en bits por pxel.


143

@DesktopRefresh

Tasa de refresco de la pantalla del escritorio en hercios.

@DocumentsCommonDir

ruta de la carpeta a Documentos

@error

Bandera de estado de error. Ver funcin SetError.

@exitCode

Cdigo de Salida establecido por el enunciado Exit.

@exitMethod

Mtodo de salida. Ver la Funcin OnAutoItExitRegister().

@extended

Valor devuelto por la funcin Extended - usado en ciertas


funciones tal como StringReplace.

@FavoritesCommonDir

ruta a Favoritos

@FavoritesDir

ruta a la carpeta de Favoritos del usuario actual

@GUI_CtrlId

Identificador del ltimo control pulsado. Vlido solamente en


una funcin de evento. Ver la funcin GUICtrlSetOnEvent.

@GUI_CtrlHandle

Identificador del ltimo handle pulsado. Vlido solamente en


una funcin de evento. Ver la funcin GUICtrlSetOnEvent.

@GUI_DragId

Identificador del ltimo control arrastrado. Vlido solamente en


una funcin de Evento de Arrastre (Drop Event). Ver la funcin
GUISetOnEvent.

@GUI_DragFile

Nombre del archivo que est siendo arrastrado. Vlido


solamente en una funcin de Evento de Arrastre (Drop Event).
Ver la funcin GUISetOnEvent.

@GUI_DropId

Identificador del control arrastrado. Vlido solamente en una


funcin de Evento de Arrastre (Drop Event). Ver la funcin
GUISetOnEvent.

@GUI_WinHandle

El handle de la ltima ventana GUI pulsada. Vlido solamente en


Funcin de evento. Ver la funcin GUICtrlSetOnEvent.

@HomeDrive

Letra de la unidad conteniendo al directorio de inicio del usuario.

@HomePath

Parte del Directorio de Inicio del usuario actual.


Para obtener la direccin completa, usarlo en conjunto con
@HomeDrive.

@HomeShare

Servidor y nombre de recurso compartido del directorio inicio


del usuario actual.

@HOUR

Valor de Horas del reloj en formato de 24-horas. Rango es 00 a


23

@HotKeyPressed

ltimo hotkey presionado. Ver la funcin HotKeySet.

@IPAddress1

Direccin IP del primer adaptador de red. Tiende a devolver


[Link] en algunas computadoras.

@IPAddress2

Direccin IP del segundo adaptador de red. Devuelve [Link] si


no es aplicable.
144

@IPAddress3

Direccin IP del tercer adaptador de red. Devuelve [Link] si no


es aplicable.

@IPAddress4

Direccin IP del cuarto adaptador de red. Devuelve [Link] si no


es aplicable.

@KBLayout

Devuelve cdigo de acuerdo al esquema del Teclado. Ver


Apndice para posibles valores.

@LF

Avance de lnea, Chr(10); tpicamente usado para saltos de lnea.

@LogonDNSDomain

Inicio de sesin de dominio de DNS.

@LogonDomain

Inicio de sesin de dominio.

@LogonServer

Inicio de sesin de servidor.

@MDAY

Da del mes actual. Rango es de 01 a 31

@MIN

Valor de los minutos del reloj. Rango es de 00 a 59

@MON

Mes en curso. Rango es de 01 a 12

@MSEC

Valores de Milisegundos de reloj. Rango entre 00 y 999

@MUILang

Retorna el cdigo multilenguaje si es disponible (En Vista


funciona por defecto). Ver Apndice para posibles valores.

@MyDocumentsDir

ruta de la carpeta Mis Documentos

@NumParams

Nmero de parmetros utilizados para llamar a los usuarios


funciones

@OSArch

Devuelve un valor de los siguientes: "X86", "IA64", "X64" - Esto


es el tipo de arquitectura del sistema operativo actual en
ejecucin.

@OSBuild

Devuelve el nmero de build del Sistema Operativo. Por ejemplo,


Windows 2003 Server devuelve 3790

@OSLang

Devuelve cdigo de acuerdo al lenguaje del Sistema


Operativo. Ver Apndice para valores posibles.

@OSServicePack

Informacin de Service pack en la forma de "Service Pack 3"

@OSTYPE

Devuelve "WIN32_NT" para


NT/2000/XP/2003/Vista/2008/Win7/2008R2.

@OSVersion

Devuelve uno de los siguientes: "WIN_2008R2", "WIN_7",


"WIN_2008", "WIN_VISTA", "WIN_2003", "WIN_XP",
"WIN_XPe", "WIN_2000".

@ProcessorArch

Devuelve un valor de los siguientes: "WIN_2008", "WIN_VISTA",


"WIN_2003","WIN_XP", "WIN_2000"

@ProgramFilesDir

ruta a la carpeta de Archivos de Programa

@ProgramsCommonDir

ruta a la carpeta del Men de Inicio


145

@ProgramsDir

ruta a la carpeta de Programas del usuario actual (carpeta de


Men de Inicio)

@ScriptDir

Directorio conteniendo el script ejecutndose. (El resultado no


contiene una pleca al final)

@ScriptFullPath

Equivalente a @ScriptDir & "\" & @ScriptName

@ScriptLineNumber

Nmero de lnea que est siendo ejecutada en el script actual.


til para enunciados de depuracin especialmente cuando una
funcin es llamada para evaluarse. (No es significante en un
script compilado)

@ScriptName

Nombre largo del archivo script en ejecucin.

@SEC

Valor en segundos de la hora. Rango es 00 a 59

@StartMenuCommonDir

ruta de acceso para el men Inicio comn

@StartMenuDir

ruta de acceso para el men Inicio del usuario actual

@StartupCommonDir

ruta a la carpeta de Inicio

@StartupDir

carpeta del inicio del usuario actual

@SW_DISABLE

Desactiva la ventana.

@SW_ENABLE

Activa la ventana.

@SW_HIDE

Oculta la ventana y activa otra.

@SW_LOCK

Bloquea la ventana evitando as pintar sobre ella.

@SW_MAXIMIZE

Maximiza la ventana especificada.

@SW_MINIMIZE

Minimiza la ventana especificada y activa la prxima al frente


segn el orden en Z.

@SW_RESTORE

Activa y muestra la ventana. Si la ventana est minimizada o


maximizada, el sistema restaura a su posicin y tamao original.
Una aplicacin debera especificar esta bandera cuando se
restaura una ventana minimizada.

@SW_SHOW

Activa la ventana y muestra en su posicin y tamao actual.

@SW_SHOWDEFAULT

Establece el estado de muestra de una ventana basado en el


valor SW_ especificado por el programa que inici la aplicacin.

@SW_SHOWMAXIMIZED

Activa la ventana y la muestra como ventana maximizada.

@SW_SHOWMINIMIZED

Activa la ventana y la muestra como ventana minimizada.

@SW_SHOWMINNOACTIVE

Muestra la ventana como ventana minimizada. Este valor es


similar a @SW_SHOWMINIMIZED, excepto que la ventana no es
activada.

@SW_SHOWNA

Muestra la ventana en su tamao actual y posicin. Este valor es


similar a @SW_SHOW, excepto que la ventana no es activada.
146

@SW_SHOWNOACTIVATE

Muestra una ventana en su ms reciente posicin y tamao. Este


valor es similar a @SW_SHOWNORMAL, excepto que la ventana
no es activada.

@SW_SHOWNORMAL

Activa y muestra una ventana. Si la ventana est minimizada o


maximizada, el sistema restaura su posicin y tamao original.
Una aplicacin debera especificar esta bandera cuando est
mostrando la ventana por primera vez.

@SW_UNLOCK

Desbloquea una ventana bloqueada para re muestreo.

@SystemDir

ruta a la carpeta de Windows' System (o el System32)

@TAB

carcter Tab, Chr(9)

@TempDir

Ruta a la carpeta de archivos temporales.

@TRAY_ID

Identificador del ltimo tem pulsado durante una accin en un


TraySet(Item)OnEvent.

@TrayIconFlashing

Devuelve 1 si el cono de bandeja est parpadeando; de otra


manera, devuelve 0.

@TrayIconVisible

Devuelve 1 si el cono de bandeja est visible; de otra manera,


devuelve 0.

@UserProfileDir

Ruta a la carpeta del perfil del usuario actual.

@UserName

ID del usuario actual que ha iniciado sesin.

@WDAY

Numrico el da de la semana. La escala es de 1 a 7, que


corresponde de domingo a sbado.

@WindowsDir

ruta a la carpeta de Windows

@WorkingDir

Directorio actual de trabajo activo. (Los resultados no contiene


una barra invertida)

@YDAY

Da actual del ao. El rango es de 1 a 366 (o 001 a 365 si no es un


ao bisiesto)

@YEAR

Ao actual en cuatro-dgitos

Macros relativos a AutoIt


Debajo hay una lista con los macros relativos a AutoIt.
Macro

Description

@Compiled

Devuelve 1 si el script es ejecutable compilado; de otra manera,


devuelve 0.

@error

Bandera de estado de error. Ver funcin SetError.


147

@exitCode

Cdigo de Salida establecido por el enunciado Exit.

@exitMethod

Mtodo de salida. Ver la Funcin OnAutoItExitRegister()

@extended

Valor devuelto por la funcin Extended - usado en ciertas


funciones tal como StringReplace.

@NumParams

Nmero de parmetros utilizados para llamar a los usuarios


funciones

@ScriptName

Nombre largo del archivo script en ejecucin.

@ScriptDir

Directorio conteniendo el script ejecutndose. (El resultado no


contiene una pleca al final)

@ScriptFullPath

Equivalente a @ScriptDir & "" & @ScriptName

@ScriptLineNumber

Nmero de lnea que est siendo ejecutada en el script actual.


til para enunciados de depuracin especialmente cuando una
funcin es llamada para evaluarse. (No es significante en un
script compilado)

@WorkingDir

Directorio actual de trabajo activo. (Los resultados no contiene


una barra invertida)

@AutoItExe

La direccin completa y nombre de archivo del archivo


ejecutable AutoIt actualmente en ejecucin. Para archivos
compilados es la ruta completa del script compilado.

@AutoItPID

PID del proceso ejecutando el script.

@AutoItVersion

Nmero de Versin de AutoIt tal como [Link]

@AutoItX64

Devuelve 1 si el script est ejecutndose bajo la versin nativa de


x64 de AutoIt.

@COM_EventObj

Objeto del evento COM est siendo notificado. Vlido solamente


en la funcin de eventos COM.

@GUI_CtrlId

Identificador del ltimo control pulsado. Vlido solamente en


una funcin de evento. Ver la funcin GUICtrlSetOnEvent.

@GUI_CtrlHandle

Identificador del ltimo handle pulsado. Vlido solamente en


una funcin de evento. Ver la funcin GUICtrlSetOnEvent.

@GUI_DragID

Identificador del ltimo control arrastrado. Vlido solamente en


una funcin de Evento de Arrastre (Drop Event). Ver la funcin
GUISetOnEvent.

@GUI_DragFile

Nombre del archivo que est siendo arrastrado. Vlido


solamente en una funcin de Evento de Arrastre (Drop Event).
Ver la funcin GUISetOnEvent.

@GUI_DropID

Identificador del control arrastrado. Vlido solamente en una


148

funcin de Evento de Arrastre (Drop Event). Ver la funcin


GUISetOnEvent.
@GUI_WinHandle

Last click GUI Window handle. Only valid in an event Function.


Ver la Funcin GUICtrlSetOnEvent.

@HotKeyPressed

El handle de la ltima ventana GUI pulsada. Vlido solamente en


Funcin de evento. Ver la funcin GUICtrlSetOnEvent.

Para usar con las funciones WinSetState, Run, RunWait, FileCreateShortcut y FileGetShortcut:
@SW_DISABLE

Desactiva la ventana.

@SW_ENABLE

Activa la ventana.

@SW_HIDE

Oculta la ventana y activa otra.

@SW_LOCK

Bloquea la ventana evitando as pintar sobre ella.

@SW_MAXIMIZE

Maximiza la ventana especificada.

@SW_MINIMIZE

Minimiza la ventana especificada y activa la prxima al frente


segn el orden en Z.

@SW_RESTORE

Activa y muestra la ventana. Si la ventana est minimizada o


maximizada, el sistema restaura a su posicin y tamao original.
Una aplicacin debera especificar esta bandera cuando se
restaura una ventana minimizada.

@SW_SHOW

Activa la ventana y muestra en su posicin y tamao actual.

@SW_SHOWDEFAULT

Establece el estado de muestra de una ventana basado en el


valor SW_ especificado por el programa que inici la aplicacin.

@SW_SHOWMAXIMIZED

Activa la ventana y la muestra como ventana maximizada.

@SW_SHOWMINIMIZED

Activa la ventana y la muestra como ventana minimizada.

@SW_SHOWMINNOACTIVE

Muestra la ventana como ventana minimizada. Este valor es


similar a @SW_SHOWMINIMIZED, excepto que la ventana no es
activada.

@SW_SHOWNA

Muestra la ventana en su tamao actual y posicin. Este valor es


similar a @SW_SHOW, excepto que la ventana no es activada.

@SW_SHOWNOACTIVATE

Muestra una ventana en su ms reciente posicin y tamao. Este


valor es similar a @SW_SHOWNORMAL, excepto que la ventana
no es activada.

@SW_SHOWNORMAL

Activa y muestra una ventana. Si la ventana est minimizada o


maximizada, el sistema restaura su posicin y tamao original.
Una aplicacin debera especificar esta bandera cuando est
mostrando la ventana por primera vez.

@SW_UNLOCK

Desbloquea una ventana bloqueada para re muestreo.


149

@TRAY_ID

Identificador del ltimo Item pulsado durante una accin en un


TraySet(Item)OnEvent.

@TrayIconFlashing

Devuelve 1 si el cono de bandeja est parpadeando; de otra


manera, devuelve 0.

@TrayIconVisible

Devuelve 1 si el cono de bandeja est visible; de otra manera,


devuelve 0.

@CR

Retorno de Carro, Chr(13); algunas veces es usado para


interrupcin de lnea.

@LF

Avance de lnea, Chr(10); tpicamente usado para saltos de lnea.

@CRLF

= @CR & @LF; ocasionalmente usado para interrupcin de


lneas.

@TAB

carcter Tab, Chr(9)

Macros Relativos a Directorios


Debajo hay una lista con los macros de Directorios. Note que las rutas NO contienen la barra
al final.
Macro

Descripcin

Macros para los datos de "Todos los usuarios".


@AppDataCommonDir

ruta a la carpeta comn de Datos de aplicacin

@DesktopCommonDir

ruta a la carpeta de Escritorio (Desktop)

@DocumentsCommonDir

ruta de la carpeta a Documentos

@FavoritesCommonDir

ruta a Favoritos

@ProgramsCommonDir

ruta a la carpeta del Men de Inicio

@StartMenuCommonDir

ruta de acceso para el men Inicio comn

@StartupCommonDir

ruta a la carpeta de Inicio

Macros para los datos del usuario actual.


@AppDataDir

ruta de la carpeta de Datos de Aplicacin del usuario actual

@DesktopDir

ruta a la carpeta del Escritorio del usuario

@MyDocumentsDir

ruta de la carpeta Mis Documentos

@FavoritesDir

ruta a la carpeta de Favoritos del usuario actual

@ProgramsDir

ruta a la carpeta de Programas del usuario actual (carpeta de


Men de Inicio)

150

@StartMenuDir

ruta de acceso para el men Inicio del usuario actual

@StartupDir

carpeta del inicio del usuario actual

@UserProfileDir

Ruta a la carpeta del perfil del usuario actual.

Otros macros para el sistema:


@HomeDrive

Letra de la unidad conteniendo al directorio de inicio del usuario.

@HomePath

Parte del Directorio de Inicio del usuario actual. Para obtener la


direccin completa, usarlo en conjunto con @HomeDrive.

@HomeShare

Servidor y nombre de recurso compartido del directorio inicio


del usuario actual.

@LogonDNSDomain

Inicio de sesin de dominio de DNS.

@LogonDomain

Inicio de sesin de dominio.

@LogonServer

Inicio de sesin de servidor.

@ProgramFilesDir

ruta a la carpeta de Archivos de Programa

@CommonFilesDir

ruta a la carpeta de Archivos Comunes (Common Files)

@WindowsDir

ruta a la carpeta de Windows

@SystemDir

ruta a la carpeta de Windows' System (o el System32)

@TempDir

Ruta a la carpeta de archivos temporales.

@ComSpec

valor de %comspec%, el interpretador secundario especificado


de comandos; primordialmente para usos de lnea de comando,
ejemplo Run(@ComSpec & " /k help | more")

Macros Relativos a Informacin del Sistema


Debajo hay una lista de los macros de informacin del Sistema.
Macro

Descripcin

@CPUArch

Devuelve "X86" cuando la CPU de de 32-bit y "X64" cuando la


CPU es de 64-bit.

@KBLayout

Devuelve cdigo de acuerdo al esquema del Teclado. Ver


Apndice para posibles valores.

@MUILang

Devuelve el cdigo indicando Multi Lenguaje si es disponible (en


Vista trabaja bien por defecto). Ver Apndice para valores
posibles.

@OSArch

Devuelve un valor de los siguientes: "X86", "IA64", "X64" - Esto


es el tipo de arquitectura del Sistema Operativo actualmente en
ejecucin.
151

@OSLang

Devuelve cdigo de acuerdo al lenguaje del Sistema


Operativo. Ver Apndice para valores posibles.

@OSTYPE

Devuelve "WIN32_NT" for


NT/2000/XP/2003/Vista/2008/Win7/2008R2.

@OSVersion

Devuelve un valor de los siguientes: "WIN_2008R2", "WIN_7",


"WIN_2008", "WIN_VISTA", "WIN_2003", "WIN_XP",
"WIN_XPe", "WIN_2000".

@OSBuild

Devuelve el nmero de build del Sistema Operativo. Por


ejemplo, Windows 2003 Server devuelve 3790

@OSServicePack

Informacin de Service pack en la forma de "Service Pack 3" o,


para Windows 95, devolver "B"

@ComputerName

Nombre de la Computadora en la red.

@UserName

ID del usuario actual que ha iniciado sesin.

@IPAddress1

Direccin IP del primer adaptador de red. Tiende a devolver


[Link] en algunas computadoras.

@IPAddress2

Direccin IP del segundo adaptador de red. Devuelve [Link] si


no es aplicable.

@IPAddress3

Direccin IP del tercer adaptador de red. Devuelve [Link] si no


es aplicable.

@IPAddress4

Direccin IP del cuarto adaptador de red. Devuelve [Link] si no


es aplicable.

@DesktopHeight

Altura de la pantalla del escritorio en pxeles. (resolucin


vertical)

@DesktopWidth

Ancho de la pantalla del escritorio en pxeles. (resolucin


horizontal)

@DesktopDepth

Rango de la pantalla del escritorio en bits por pxel.

@DesktopRefresh

Tasa de refresco de la pantalla del escritorio en hercios.

Marcos Relativos a Fecha y Hora


Debajo hay una lista de macros relacionados con Tiempo y Fecha macros. Note que la mayora
de los valores devueltos, su longitud es de dos dgitos.
Macro

Descripcin

@MSEC

Valores milisegundos de reloj. Rango entre 00 y 999

@SEC

Valor en segundos de la hora. Rango es 00 a 59

152

@MIN

Valor de los minutos del reloj. Rango es de 00 a 59

@HOUR

Valor de Horas del reloj en formato de 24-horas. Rango es 00 a


23

@MDAY

Da del mes actual. Rango es de 01 a 31

@MON

Mes en curso. Rango es de 01 a 12

@YEAR

Ao actual en cuatro-dgitos

@WDAY

Numrico el da de la semana. La escala es de 1 a 7, que


corresponde de domingo a sbado.

@YDAY

Da actual del ao. El rango es de 1 a 366 (o de 001 a 365 si no es


un ao bisiesto)

153

REFERENCIA DE FUNCIONES
Arriba ya tenis la lista de las principales funciones de autoit no la vamos a escribir otra vez,
si bien os pasamos a clasificarlas y explicarlas

Notas de Funciones
Muchas funciones contienen parmetros opcionales que pueden ser omitidos. Si desea
especificar un parmetro opcional, todos los parmetros anteriores deben ser especificados!
Por ejemplo, considere Run ( "nombredearchivo", ["dirDeTrabajo" [, bandera]] ). Si se desea
especificar la bandera, se debe especificar directorioDeTrabajo .
Muchas funciones Win___ contienen un parmetro opcional llamado "texto". Este parmetro
est destinado para ayudar a diferenciar entre ventanas que tienen ttulos idnticos.
Algunas funciones indican xito/fallo como valor devuelto; otros se indican fijando en la flag
de
@error.
Ambos
tienen
las
siguientes
significacin...
@error
=
0
;
cuando
es
igual
a
cero,
es
siempre
exitoso
Return = vara, pero tpicamente valores no-cero exitosos permiten leer fcilmente el cdigo...
If algunaFuncUsuario() then ; ...funcin trabaj
If Not someUserFunc() then ; ...funcin fall
$x = FileReadLine("C:\[Link]")
If @error = -1 Then ;fin-de-archivo fu lanzado
Si una funcin puede establecer el flag de @error, se debera revisar siempre antes de usar
un valor devuelto - si @error indica un error entonces el valor devuelto de la funcin es
generalmente indefinido...
@error es siempre establecido a 0 cuando entra en una funcin.
Cuando la documentacin establece que el valor devuelto es = ninguno, AutoIt siempre
devuelve un valor para evitar errores. Valor de 1 es usualmente devuelto, pero no debera
depender de este valor devuelto.
Cuando un parmetro opcional necesita ser definido y es precedido por uno o ms parmetros
opcionales, los parmetros anteriores deben ser dados. Esto tal vez sea "" para un parmetro
de cadena de texto y -1 para otros tipos. Algunas funciones como StringInStr o StringReplace
requieren 0. Ver la descripcin correspondiente del parmetro opcional en cada caso.

154

Referencia de Administracin de entorno


A continuacin se muestra una lista completa de las funciones de Administracin de
entorno disponibles en AutoIt. Click en una de ellas para obtener detalles de su
descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes
GUI Incluidas si usted necesita usarlo para constantes de controles.

Funcin

Descripcin

ClipGet

Recupera texto del portapapeles.

ClipPut

Escribe texto en el portapapeles.

EnvGet

Recupera una variable de entorno.

EnvSet

Escribe en una variable de entorno.

EnvUpdate

Refresca el entorno del SO.

MemGetStats

Devuelve informacin relativa a la memoria.

ClipGet
Devuelve el texto del portapapeles.
ClipGet
Parmetros
Ninguno.
Valor de retorno
Con xito:

Devuelve una cadena conteniendo el texto en el portapapeles.

Al Fallar:

Establece [Link] a 1 si el portapapeles esta vaco o no contiene texto.

Comentarios
Ninguno.
155

Relativo
ClipPut
Ejemplo
Set oAutoIt = [Link]("[Link]")
texto = [Link]()
[Link] "Clipboard contains:" & texto

ClipPut
Escribe texto al portapapeles.
ClipPut "valor"
Parmetros
valor

El texto para ser escrito al portapapeles.

Valor de retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0.

Comentarios
Cualquier contenido en el portapapeles es sobrescrito.
Relativo
ClipGet
Ejemplo
Set oAutoIt = [Link]("[Link]")
[Link] "I am copied to the clipboard"

EnvGet
Recupera una variable de entorno.
EnvGet ( "Variable" )
Parmetros

156

Variable

Nombre de la variable de entorno a acceder tales como "TEMP" o "PATH".

Valor de Retorno
Devuelve la variable solicitada (o una cadena vaca si la variable no existe).
Comentarios
Ninguno
Relativo
EnvSet, EnvUpdate
Ejemplo
$var = EnvGet("PATH")
MsgBox(4096, "Path de la variable es:", $var)

EnvSet
Escribe en una variable de entorno.
EnvSet ( "Variable" [, "valor"] )
Parmetros
Variable

Nombre de la variable de entorno para acceder.

valor

[opcional] Valor a fijar en la variable de entorno. Si un valor no es usado la


variable ser eliminada.

Valor de Retorno
Con xitos

Devuelve un valor diferente de 0.

Al Fallar

Devuelve 0.

Comentarios
Una variable de entorno establecida de esta forma solamente puede ser accedida por
programas como AutoIt (Run, RunWait). Una vez que AutoIt finaliza, la variable deja de existir.

Relativo
EnvGet, EnvUpdate
157

Ejemplo
EnvSet("MYENV", "esto es un test")

EnvUpdate
Refresca el entorno del SO.
EnvUpdate ( )
Parmetros
Ninguno
Valor de Retorno
Con xitos

Ninguno

Al Fallar

Establece @error a 1.

Comentarios
El efecto es similar a reiniciar el sistema. Por ejemplo, al cambiar la ruta de entorno %ruta%
este cambio no tendr efecto hasta que no se invoque EnvUpdate (o Reinicie/apague el
sistema operativo).
Relativo
EnvGet, EnvSet
Ejemplo
EnvUpdate()

MemGetStats
Devuelve informacin relativa a la memoria.
MemGetStats ( )
Parmetros
Ninguno
Valor de Retorno

158

Devuelve un arreglo de siete elementos conteniendo informacin de la memoria:


$arreglo[0] = Carga de memoria (Porcentaje de memoria en uso)
$arreglo[1] = RAM fsica total
$arreglo[2] = RAM fsica disponible
$arreglo[3] = Archivo de paginacin total
$arreglo[4] = Archivo de paginacin disponible
$arreglo[5] = Virtual total
$arreglo[6] = Virtual disponible
Todas las unidades de memoria se expresan en kilobytes.
Comentarios
Ninguno
Relativo
Ninguno.
Ejemplo
$mem = MemGetStats()
MsgBox(0, "RAM fsica total (KB):", $mem[1])

159

Referencia de Administracin de fichero, Directorio y Disco


A continuacin se muestra una lista completa de las funciones de Administracin de
fichero,Directorio y Disco disponibles en AutoIt. Click en una de ellas para obtener detalles de
su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.

Funcin

Descripcin

ConsoleRead

Lee datos desde la secuencia STDIN del proceso de script de AutoIt.

ConsoleWrite

Escribe datos en la secuencia de STDOUT. Algunos editores de texto


pueden leer dicha secuencia como otros programas.

ConsoleWriteError

Escribe datos en la secuencia de STDERR. Algunos editores de texto


pueden leer dicha secuencia como otros programas.

DirCopy

Copia un directorio conjuntamente con sus subdirectorios y archivos


(Similar a xcopy).

DirCreate

Crea un directorio/carpeta.

DirGetSize

Devuelve el tamao en bytes de un directorio dado.

DirMove

Mueve un directorio y todos sus subdirectorios y ficheros.

DirRemove

Borra un directorio/carpeta.

DriveGetDrive

Devuelve un arreglo devolviendo las unidades enumeradas.

DriveGetFileSystem

Devuelve el Tipo de Sistema de Archivo de una unidad.

DriveGetLabel

Devuelve la Etiqueta de Volumen de una unidad, si lo posee.

DriveGetSerial

Devuelve el Nmero de Serie de una unidad.

DriveGetType

Devuelve tipo de unidad.

160

DriveMapAdd

Mapea una unidad de red.

DriveMapDel

Desconecta una unidad de red.

DriveMapGet

Recupera informacin detallada de una unidad mapeada.

DriveSetLabel

Establece la Etiqueta de Volumen de una unidad.

DriveSpaceFree

Devuelve el espacio libre en disco(en Megabytes)de una ruta en


Megabytes.

DriveSpaceTotal

Devuelve el espacio total libre en disco de una ruta en Megabytes.

DriveStatus

Devuelve el estado de una unidad como una cadena.

FileChangeDir

Cambia el directorio actual de trabajo.

FileClose

Cierra un fichero de texto previamente abierto.

FileCopy

Copia uno o ms ficheros.

FileCreateNTFSLink

Crea un hardlink NTFS para un archivo o directorio.

FileCreateShortcut

Crea un acceso directo (.lnk) a un fichero.

FileDelete

Elimina uno o ms ficheros.

FileExists

Chequea si un archivo o directorio existe.

FileFindFirstFile

Devuelve un identificador de bsqueda de acuerdo con una cadena de


bsqueda.

FileFindNextFile

Devuelve un nombre de archivo de acuerdo con una invocacin previa


a FileFindFirstFile.

FileFlush

Limpia el buffer de una fichero en disco.

FileGetAttrib

Devuelve una cadena codificada conteniendo los atributos de un


fichero.

161

FileGetEncoding

Determina la codificacin de texto utilizada en un fichero.

FileGetLongName

Devuelve el nombre completo (direccin+nombre) de una ruta dada.

FileGetPos

Devuelve la posicin actual en un fichero

FileGetShortcut

Devuelve detalles de un acceso directo.

FileGetShortName

Devuelve el nombre corto 8.3 de una direccin+nombre de archivo


dado.

FileGetSize

Devuelve el tamao de un archivo en bytes.

FileGetTime

Devuelve informacin del tiempo y la fecha para un fichero.

FileGetVersion

Devuelve informacin de la versin del "fichero".

FileInstall

Incluye e instala un archivo con el archivo compilado.

FileMove

Mueve uno o ms directorios.

FileOpen

Abre un archivo de texto para lectura o escritura.

FileOpenDialog

Inicia un cuadro de dilogo de Abrir Archivo.

FileRead

Lee un nmero de caracteres desde un fichero previamente abierto.

FileReadLine

Lee una lnea de texto desde un fichero previamente abierto.

FileRecycle

Enva un archivo o directorio a la papelera de reciclaje (recycle bin).

FileRecycleEmpty

Vaca la papelera de reciclaje.

FileSaveDialog

Inicializa un dilogo de Salvar Fichero.

FileSelectFolder

Inicializa un dilogo de seleccin de carpeta.

FileSetAttrib

Establece los atributos de uno o ms ficheros.

162

FileSetPos

Establece la posicin actual en el fichero.

FileSetTime

Establece la marca de tiempo de uno o ms ficheros

FileWrite

Agrega un texto/dato al final de un fichero previamente abierto.

FileWriteLine

Agrega una lnea de texto al final de un fichero de texto previamente


abierto.

IniDelete

Borra un valor de un fichero .ini con formato estndar.

IniRead

Lee un valor desde un fichero .ini con formato estndar.

IniReadSection

Lee todos los pares de valores/claves de una seccin en un fichero .ini


con formato estndar.

IniReadSectionNames Lee todas las secciones en un fichero .ini con formato estndar.
IniRenameSection

Renombra una seccin en un fichero .ini con formato estndar.

IniWrite

Escribe un valor para un fichero .ini con formato estndar.

IniWriteSection

Escribe una seccin para un fichero .ini con formato estndar.

ConsoleRead
Lee datos desde la secuencia STDIN del proceso de script de AutoIt.
ConsoleRead ( [peek = false[, binario = false ]])
Parmetros
peek

[optional] Si es true la funcin no remueve los caracteres ledos desde la


secuencia.

binario

[optional] Si es true la funcin la funcin lee el dato como binario en vez de


texto (por defecto es texto).

163

Valor de Retorno
Con xitos

Devuelve el dato ledo. @extended contiene el nmero de bytes ledos.

Al Fallar

Establece @error a no-cero si EOF es alcanzado, STDIN no esta conectado a otro


proceso o error.

Comentarios
ConsoleRead lee desde la secuencia de la consola estndar de los procesos de script de AutoIt,
que es normalmente usado como consola de aplicacin para leer las entradas de los procesos.
ConsoleRead no bloquea, esta devolver inmediatamente. Para obtener todos los datos, debe
ser invocado en un ciclo.
Examinando la secuencia de entrada no se borran los datos del buffer, sin embargo, este no
devuelve el dato disponible como normal.
Por defecto, el dato es devuelto en formato texto. Utilizando operaciones binarias, el dato
puede ser devuelto en formato binario.

Relativo
ConsoleWrite, ConsoleWriteError, Run

Ejemplo
; Compilar este escript a "[Link]".
; Abrir el pront de comandos en el directorio donde recide [Link]
; Tipea lo siguiente en la lnea de comandos:
; echo Hola! | [Link]
; Cuando se invoque una ventana de consola, el anterior comando muestra (hecho)el texto
"Hola!"
; Pero en lugar de mostrar esto, el | avisa a la consola que el smbolo pipe indica el "STDIN
stream del proceso [Link]
If Not @Compiled Then
MsgBox(0, "", "Este script debe ser compilado en orden har mostrar correctamente su
funcionamiento.")
Exit -1

164

EndIf
Local $data
While True
$data &= ConsoleRead()
If @error Then ExitLoop
Sleep(25)
WEnd
MsgBox(0, "", "Recivido: " & @CRLF & @CRLF & $data)

ConsoleWrite
Escribe datos en la secuencia de STDOUT. Algunos editores de texto pueden leer dicha
secuencia como otros programas.
ConsoleWrite ( "dato" )
Parmetros
dato

El dato para mostrar en la secuencia de salida. Este puede ser texto o binario.

Valor de Retorno
La cantidad de dato escrito. Si la escritura es binaria, el nmero de bytes escritos, si la escritura
es textual, el nmero de caracteres escritos.
Comentarios
El propsito dicha funcin es escribir en la secuencia de STDOUT. Algunos editores de texto
populares pueden leer dicha secuencia. Los script compilados como consola tiene una
secuencia
STDOUT.
Esta funcin no escribe en consola del DOS a menos que el script sea compilado como
aplicacin de consola.
Los caracteres son convertidos a ANSI antes de ser escritos.
Los datos binarios son escritos tan como aparecen. Estos no son convertidos a cadena. Para
imprimir una represenacin hexadecimal de un datos binarios, use la funcin String() para un
cambio explcito del dato a cadena.
Relativo
165

ConsoleWriteError, ConsoleRead
Ejemplo
Local $var = "Test"
ConsoleWrite("var=" & $var & @CRLF)
; Correr esto en un editor de texto (eje. Scite) que pueda atrapar la consola de salida y ver
como produce: "var=Test"

ConsoleWriteError
Escribe datos en la secuencia de STDERR. Algunos editores de texto pueden leer dicha
secuencia como otros programas.
ConsoleWriteError ( "dato" )
Parmetros
dato

El dato para mostrar en la secuencia de salida. Este puede ser texto o binario.

Valor de Retorno
La cantidad de dato escrito. Si la escritura es binaria, el nmero de bytes escritos, si la escritura
es textual, el nmero de caracteres escritos.

Comentarios
El propsito dicha funcin es escribir en la secuencia de STDERR. Algunos editores de texto
populares pueden leer dicha secuencia. Los script compilados como consola tiene una
secuencia
STDERR.
Esta funcin no escribe en consola del DOS a menos que el script sea compilado como
aplicacin de consola.
Los caracteres son convertidos a ANSI antes de ser escritos.
Los datos binarios son escritos tan como aparecen. Estos no son convertidos a cadena. Para
imprimir una represenacin hexadecimal de un datos binarios, use la funcin String() para un
cambio explcito del dato a cadena.
Relativo
ConsoleWrite, ConsoleRead
166

Ejemplo
Local $var = "Test"
ConsoleWriteError("var=" & $var & @CRLF)
; Correr esto en un editor de texto (eje. Scite) que pueda atrapar la consola de salida y ver
como produce: "var=Test"

DirCopy
Copia un directorio conjuntamente con sus subdirectorios y archivos (Similar a xcopy).
DirCopy ( "dir fuente", "dir destino" [, flag] )
Parmetros
dir fuente

Ruta del directorio fuente (sin backslash"\" al final). Eje. "C:\Path1"

dir destino

Ruta del directorio destino (sin backslash"\" al final). Eje. "C:\Path_Copy"

flag

[opcional] determina la forma como son sobrescritos los ficheros si estos


existen:
0 = (por defecto) no sobrescribir ficheros existente
1 = sobrescribir ficheros existente

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si existe un error durante la copia.

Comentarios
Si la estructura del directorio destino no existe, este ser creado (si es posible).
Relativo
DirRemove, FileCopy
Ejemplo
DirCopy(@MyDocumentsDir, "C:\Backups\MyDocs", 1)

DirGetSize
167

Devuelve el tamao en bytes de un directorio dado.


DirGetSize ( "ruta" [, flag] )
Parmetros
ruta

La ruta del directorio para obtener el tamao, Eje. "C:\Windows".

flag

[opcional] Determina el comportamiento del resultado de esta funcin, puede


ser una combinacin de lo siguiente:
0 = (por defecto)
1 = Modo extendido On -> devuelve un arreglo con informacin extendida (ver
observaciones).
2 = No obtiene el tamao de los archivos en los subdirectorios (modo recursivo
Off)

Valor de Retorno
Con xitos
Al Fallar

Devuelve >= 0 (el tamao)


Devuelve -1 y fija @error a 1 si la ruta no existe.

Comentarios
Si el script es pausado entonces esta funcin se detendr; continuar una vez que el script
halla salido de la pausa!
Si usted elige el modo extendido entonces se devolver un arreglo lineal con la siguiente
configuracin:
$arreglo[0] = Tamao
$arreglo[1] = Contador de ficheros
$arreglo[2] = Contador de carpetas
Relativo
Ninguno.
Ejemplo
$Size = DirGetTamao(@HomeDrive)
Msgbox(0,"","Tamao(MegaBytes):" & Round($Size / 1024 / 1024))
$Size = DirGetTamao(@WindowsDir, 2)
Msgbox(0,"","Tamao(MegaBytes):" & Round($Size / 1024 / 1024))
$timer = TimerInit()
$Size = DirGetTamao("\\[Link]\h$",1)
$diff = Round(TimerDiff($timer) / 1000) ; Tiempo en segundos
If IsArray($Size) Then
168

Msgbox(0,"DirGetSize-Info","Tamao(Bytes):" & $Size[0] & @LF _


& "Ficheros:" & $Size[1] & @LF & "Dirrectorios:" & $Size[2] & @LF _
& "TimeDiff(Sec):" & $diff)
EndIf

DirMove
Mueve un directorio y todos sus subdirectorios y ficheros.
DirMove ( dir fuente, dir destino [, flag] )
Parmetros
dir fuente

Ruta del directorio fuente (sin backslash al final). Eje. "C:\Path1"

dir destino

Ruta del directorio destino (sin backslash al final). Eje. "C:\Path_Copy"

flag

[opcional] Determina si se han de sobrescribir los archivos existentes:


0 = (por defecto) no sobrescribe los archivos existentes
1 = sobrescribe los archivos existentes

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si ocurre un error en la operacin.

Comentarios
Si la fuente y el destino se encuentran en volmenes diferentes o rutas UNC entonces es usado
una operacin copy/delete para optimizar la operacin.
Si el destino ya existe y parmetro de sobre escritura es dado entonces el directorio fuente
ser movido hacia dentro del directorio destino.
Debido a que AutoIt carece de una funcin "DirRename", use DirMove para renombrar una
carpeta!
Relativo
DirRemove, FileMove
Ejemplo
DirMove(@MyDocumentsDir, "C:\Backups\MyDocs")

169

DirRemove
Borra un directorio/carpeta.
DirRemove ( "ruta" [, recursivo] )
Parmetros
ruta

Ruta del directorio a borrar.

recursivo

[opcional] use esta opcin para especificar si desea borrar los subdirectorios
tambin.
0 = (por defecto) no borra los archivos y subdirectorios
1 = Borra archivos y subdirectorios (semejante al comando del DOS: DelTree)

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si existe un error en la operacin (o si el directorio no existe).

Comentarios
Algunos atributos de directorios pueden hacer imposible la operacin de borrar.
Relativo
DirCreate, FileRecycle, DirCopy, DirMove, FileDelete
Ejemplo
; Borra C:\Test1 y todos los subdirectorios y ficheros
DirRemove("C:\Test1", 1)

DriveGetDrive
Devuelve un arreglo devolviendo las unidades enumeradas.
DriveGetDrive ( "Tipo" )
Parmetros
Tipo

Tipo de unidad a encontrar:


"ALL", "CDROM", "REMOVABLE", "FIXED", "NETWORK", "RAMDISK", o

170

"UNKNOWN"

Valor de Retorno
Con xitos

Devuelve un arreglo de cadenas (letra de la unidad seguida por una coma) de las
unidades encontradas. El elemento de ndice cero contiene el nmero de
unidades encontradas.

Al Fallar

Devuelve "" y establece el valor de @error en 1.

Comentarios
Ninguno
Relativo
DriveGetFileSystem, DriveGetLabel, DriveGetSerial, DriveGetType, DriveSetLabel,
DriveSpaceFree, DriveSpaceTotal, DriveStatus

Ejemplo
$var = DriveGetDrive( "all" )
If NOT @error Then
MsgBox(4096,"", "Encontrado " & $var[0] & " Unidades")
For $i = 1 to $var[0]
MsgBox(4096,"Unidad " & $i, $var[$i])
Next
EndIf

DriveGetFileSystem
Devuelve el Tipo de Sistema de Archivo de una unidad.
DriveGetFileSystem ( "ruta" )
Parmetros
ruta

Ruta de la unidad para recibir la informacin.

Valor de Retorno
171

Con xitos

Devuelve el Tipo de Sistema de Archivo como una cadena; ver


tabla ms abajo.

Al Fallar

Establece @error a 1.

Valor de
Retorno

Interpretacin

1 (numrico)

Unidad NO contiene medio (CD, Floppy, Zip) o el medio esta sin formatear
(RAW).

"FAT"

Sistema de archivos tpicos para unidades menores de ~500 MB tales como


Floppy, RAM disks, USB "pen", etc.

"FAT32"

Sistema de archivos tpicos para unidades de disco duros en Windows 9x/Me.

"NTFS"

Sistema de archivos tpicos para unidades de disco duros en Windows


NT/2000/XP.

"NWFS"

Sistema de archivos tpicos para servidores de archivos Novell Netware.

"CDFS"

Tpicamente indica un CD (o una imagen ISO montado como unidad CD virtual).

"UDF"

Tpicamente indica un DVD.

Comentarios
La lista completa de valores de retorno puede estar incompleta.

Relativo
DriveGetDrive, DriveGetLabel, DriveGetSerial, DriveGetType, DriveSetLabel, DriveSpaceFree,
DriveSpaceTotal, DriveStatus

Ejemplo
$var = DriveGetFileSystem( "c:\" )
MsgBox(4096,"Tipo de Sistema de Archivo:", $var)

DriveGetLabel

172

Devuelve la Etiqueta de Volumen de una unidad, si lo posee.


DriveGetLabel ( "ruta" )
Parmetros
ruta

Ruta de la unidad para obtener la informacin.

Valor de Retorno
Con xitos

Devuelve la etiqueta de Volumen de una unidad como una cadena.

Al Fallar

Establece @error a 1.

Comentarios
Ninguno

Relativo
DriveGetDrive, DriveGetFileSystem, DriveGetSerial, DriveGetType, DriveSetLabel,
DriveSpaceFree, DriveSpaceTotal, DriveStatus

Ejemplo
$var = DriveGetLabel( "c:\" )
MsgBox(4096,"Etiqueta de volumen: ",$var)

DriveGetSerial
Devuelve el Nmero de Serie de una unidad.
DriveGetSerial ( "ruta" )
Parmetros
ruta

Ruta de la unidad para obtener la informacin.

Valor de Retorno
173

Con xitos

Devuelve el Nmero de Serie de una unidad como una cadena.

Al Fallar

Establece @error a 1.

Comentarios
El valor devuelto no es el nmero de serial de hardware como el encontrado en la etiqueta de
la unidad, este es el ID del Volumen de Windows para la unidad.

Relativo
DriveGetDrive, DriveGetFileSystem, DriveGetLabel, DriveGetType, DriveSetLabel,
DriveSpaceFree, DriveSpaceTotal, DriveStatus

Ejemplo
$var = DriveGetSerial( "c:\" )
MsgBox(4096, "Nmero de serial: ", $var)

DriveGetType
Devuelve tipo de unidad.
DriveGetType ( "ruta" )
Parmetros
ruta

Ruta de la unidad para obtener informacin.

Valor de Retorno
Con xitos

Devuelve el tipo de unidad: "Unknown", "Removable", "Fixed", "Network",


"CDROM", "RAMDisk"

Al Fallar

Devuelve "" y establece el valor de @error en 1.

Comentarios
La lista completa de valores puede estar incompleta.

174

Relativo
DriveGetDrive,
DriveGetFileSystem,
DriveGetLabel,
DriveSpaceFree, DriveSpaceTotal, DriveStatus, CDTray

DriveGetSerial,

DriveSetLabel,

Ejemplo
$var = DriveGetType( "c:\" )
MsgBox(4096, "Tipo de Unidad:", $var)

DriveMapAdd
Mapea una unidad de red.
DriveMapAdd ( "dispositivo", "recurso remoto" [, flags [, "usuario" [, "contrasea"]]] )
Parmetros

dispositivo

El dispositivo a mapear, Por ejemplo "O:" o "LPT1:". Si usted pasa una cadena
vaca por este parmetro se realiza una conexin pero ningn dispositivo es
mapeado. Si usted especifica "*" una letra de unidad no en uso ser
automticamente seleccionada.

recurso
remoto

El recurso remoto para conectar en la forma "\\server\share".

flags

[opcional]Una combinacin de los siguientes valores:


0 = por defecto
1 = Mapeo persistente
8 = Mostrar el dilogo de autentificacin.

usuario

[opcional] El nombre de usuario para autentificar la conexin. En la forma


"NombreUsuario" o "dominio\NombreUsuario".

contrasea

[opcional] La contrasea para ser usada en la conexin.

Valor de Retorno
Con xitos

Devuelve 1. (Ver comentarios)

175

Al Fallar

Devuelve 0 si el nuevo mapeo no puede ser creado y fija @error (ver ms


abajo). (Ver Comentarios)

Comentarios
Cuando la funcin falla (devuelve 0) @error contiene la siguiente informacin extendida:
1 = Indefinido / otro error. @extended es establecido con el retorno de la API Windows
2 = Acceso al recurso remoto denegado
3 = El dispositivo ya ha sido asignado
4 = Nombre de dispositivo invlido
5 = Recurso remoto no vlido
6 = Contrasea no vlida
Nota: Cuando usamos "*" para el parmetro dispositivo la letra de la unidad seleccionada ser
devuelto en lugar de 1 o 0, Eje. "U:". Si ocurre un error utilizando "*" entonces una cadena
vaca "" ser devuelta.
Si definimos el usuario/contrasea ser presentado al computador remoto para validar la
credencial.

Relativo
DriveMapDel, DriveMapGet

Ejemplo

; Mapea la unidad X a \\myserver\stuff usando el usuario actual


DriveMapAdd("X:", "\\myserver\stuff")
; Mapea la unidad X a \\myserver2\stuff2 usando el usuario "jon" desde "domainx" con clave
"tickle"
DriveMapAdd("X:", "\\myserver2\stuff2", 0, "domainx\jon", "tickle")

DriveMapDel
Desconecta una unidad de red.

176

DriveMapDel ( "unidad" )
Parmetros
unidad

El dispositivo a desconectar, Eje. "O:" o "LPT1:".

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si la operacin no es satisfactoria.

Comentarios
Si la letra de una unidad conectada no existe puede utilizar el nombre de la conexin para
desconectarla, Eje. \\server\share

Relativo
DriveMapAdd, DriveMapGet

Ejemplo
; Mapea la unidad X a \\myserver\stuff usando el usuario actual
DriveMapAdd("X:", "\\myserver\stuff")
; Disconectando
DriveMapDel("X:")

DriveMapGet
Recupera informacin detallada de una unidad mapeada.
DriveMapGet ( "dispositivo )
Parmetros
dispositivo

La letra del dispositivo (unidad o impresora) para consultar, Eje. "O:" o "LPT1:"

Valor de Retorno

177

Con xitos

Devuelve detalles del mapeo, Eje. \\server\share

Al Fallar

Devuelve una cadena vaca "" y establece el valor de @error en 1.

Comentarios
Ninguno

Relativo
DriveMapAdd, DriveMapDel

Ejemplo

; Mapea la unidad X a \\myserver\stuff usando el usuario actual


DriveMapAdd("X:", "\\myserver\stuff")
; Obtiene detalles del mapeado
MsgBox(0, "Drive X: es mapeado a", DriveMapGet("X:"))

DriveSetLabel
Establece la Etiqueta de Volumen de una unidad.
DriveSetLabel ( "ruta", "etiqueta" )
Parmetros
ruta

Ruta de la unidad a cambiar.

etiqueta

Nueva etiqueta de volumen de la unidad. (11 caracteres es el mximo usado)

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0.

Comentarios
178

Muchas unidades de disco duro tienen una etiqueta de volumen de 11 caracteres como
mximo, y DriveSetLabel fallar si la longitud es excedida. Tambin, las etiquetas en
particiones FAT32 tiende a revertir todas las letras a capitales.

Relativo
DriveGetDrive, DriveGetFileSystem, DriveGetLabel, DriveGetSerial, DriveGetType,
DriveSpaceFree, DriveSpaceTotal, DriveStatus

Ejemplo
DriveSetLabel("C:\", "Nueva_etiqueta")

DriveSpaceFree
Devuelve el espacio libre en disco(en Megabytes)de una ruta en Megabytes.
DriveSpaceFree ( "ruta" )
Parmetros
ruta

Ruta de la unidad para recibir la informacin.

Valor de Retorno
Con xitos

Devuelve el espacio libre en disco en Megabytes como nmero flotante


(decimal).

Al Fallar

Devuelve 0 y establece el valor de @error en 1.

Comentarios
DriveSpaceFree puede trabajar cuando es dada una ruta completa (que existe). Sin embargo,
una ruta de archivo no es vlida.
Use la funcin Round() para redondear el resultado de acuerdo a la precisin deseada.

179

Relativo
DriveGetDrive, DriveGetFileSystem, DriveGetLabel, DriveGetSerial, DriveGetType,
DriveSetLabel, DriveSpaceTotal, DriveStatus

Ejemplo
$var = DriveSpaceFree( "c:\" )
MsgBox(4096, "Espacio libre en C:", $var & " MB")

DriveSpaceTotal
Devuelve el espacio total libre en disco de una ruta en Megabytes.
DriveSpaceTotal ( "ruta" )
Parmetros
ruta

Ruta de la unidad para recibir la informacin.

Valor de Retorno
Con xitos

Devuelve el espacio libre en disco en Megabytes como nmero flotante


(decimal).

Al Fallar

Establece @error a 1.

Comentarios
DriveSpaceFree puede trabajar cuando es dada una ruta completa (que existe). Sin embargo,
una ruta de archivo no es vlida.

Relativo
DriveGetDrive, DriveGetFileSystem, DriveGetLabel, DriveGetSerial, DriveGetType,
DriveSetLabel, DriveSpaceFree, DriveStatus, FileGetSize

Ejemplo
$var = DriveSpaceTotal( "c:\" )
MsgBox(4096, "Espacio total en C:", $var & " MB")
180

DriveStatus
Devuelve el estado de una unidad como una cadena.
DriveStatus ( "ruta" )
Parmetros
ruta

Ruta de la unidad para recibir la informacin.

Valor de Retorno
Valor

Interpretacin

UNKNOWN

Unidad puede ser formateada (RAW).

READY

Tpico de discos duros y unidades que contienen medios removibles.

NOTREADY

Tpico de discos floppy y unidades de CD que no son medios.

INVALID

Puede indicar que la letra de unidad no existe o unidad de red mapeada no es


accesible.

Comentarios
La lista completa de valores de retorno puede estar incompleta.
DriveStatus puede trabajar cuando es dada una ruta completa (que existe). Sin embargo, una
ruta de archivo no es vlida.

Relativo
DriveGetDrive, DriveGetFileSystem, DriveGetLabel, DriveGetSerial, DriveGetType,
DriveSetLabel, DriveSpaceFree, DriveSpaceTotal, CDTray, FileExists

Ejemplo
$var = DriveStatus( "c:\" )
MsgBox(4096,"Estatus",$var)
181

FileChangeDir
Cambia el directorio actual de trabajo.
FileChangeDir ( "ruta" )
Parmetros
ruta

La ruta para hacer el actual directorio de trabajo.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si el directorio de trabajo no cambia.

Comentarios
Ninguno

Relativo
@WorkingDir

Ejemplo
FileChangeDir(@WindowsDir)

FileClose
Cierra un fichero de texto previamente abierto.
FileClose ( Apuntador_Fichero )
Parmetros
Apuntador_Fichero El apuntador de un fichero, devuelto por una llamada previa a FileOpen.

182

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si el Apuntador_Fichero no es vlido.

Comentarios
Al finalizar, AutoIt automticamente cierra cualquier archivo abierto, pero utilizar FileClose es
una buena idea.
Esta funcin es tambin usada cerrar bsquedas de apuntadores (handles) devueltos por
FileFindFirstFile().

Relativo
FileFindFirstFile, FileOpen, FileFindNextFile, FileFlush

Ejemplo
$handle = FileOpen("[Link]", 0)
FileClose($handle)

FileCopy
Copia uno o ms ficheros.
FileCopy ( "fuente", "destino" [, flag] )
Parmetros
fuente

La ruta fuente de los ficheros a copiar. Comodines son soportados.

destino

La ruta de destino de los ficheros a copiar.

flag

[opcional] Determina si son sobrescritos los ficheros existentes.


Puede ser una combinacin de lo siguiente:
0 = (por defecto) no sobrescribe los ficheros existentes

183

1 = sobrescribe los ficheros existentes


8 = Crea una estructura del directorio destino de no existir este (Ver
observaciones).

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0.

Comentarios
El directorio destino debe existir, excepto cuando la opcin es puesta a '8'.
Por instancia la opcin en combinacin '9' (1 + 8) sobrescribe los ficheros existentes y prechequea si el directorio destino existe de lo contrario lo crea automticamente.
Ver FileFindFirstFile para una discusin sobre comodines.
Algunos atributos de archivos pueden hacer la sobre escritura imposible.

Relativo
FileMove, FileDelete, DirCopy, DirCreate

Ejemplo
FileCopy("C:\*.au3", "D:\mydir\*.*")
; Mtodo para copiar una carpeta (con su contenido)
DirCreate("C:\new")
FileCopy("C:\old\*.*", "C:\new\")
FileCopy("C:\Temp\*.txt", "C:\Temp\TxtFiles\", 8)
; CORRECTO - 'TxtFiles' Es ahora el directorio blanco y los nombres del archivo son dados por los
nombres de la fuente
FileCopy("C:\Temp\*.txt", "C:\Temp\TxtFiles\", 9) ; Flag = 1 + 8 (overwrite + create target
directory structure)
; Copa los ficheros txt desde la fuente al directorio blanco y sobrescribe archivos de blanco con
mismo nombre

184

FileCreateNTFSLink
Crea un hardlink NTFS para un archivo o directorio.
FileCreateNTFSLink ( "fuente", "hardlink" [, flag] )
Parmetros
fuente

La ruta del recurso para crear el hardlink.

hardlink

Ruta del hardlink.

flag

[opcional] Determina si son sobrescritos los ficheros existentes.


Puede ser una combinacin de lo siguiente:
0 = (por defecto) no sobrescribe los ficheros existentes
1 = no sobrescribe los ficheros existentes

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0.

Comentarios
El directorio destino debe existir.
Esta funcin funciona solamente en volmenes con sistema de archivos NTFS.
Si la fuente es un fichero, el hardlink debe estar en el mismo volumen.

Si la fuente es un directorio un volumen puede ser permitido.


FileDelete o FileMove puede ser usado en hardlink.
Para manejar el enlace con el explorador usted puede usar la extensin shell NTFSLink

Relativo
FileCreateShortcut

185

Ejemplo
FileChangeDir(@ScriptDir)
DirCreate('directorio')
FileWriteLine("[Link]","test")
MsgBox(0,"Hardlink", FileCreateNTFSLink("[Link]", "dir\[Link]", 1))

FileCreateShortcut
Crea un acceso directo (.lnk) a un fichero.
FileCreateShortcut ("fichero", "lnk" [, "workdir" [, "argumentos" [, "descripcin" [, "icono" [,
"hotkey" [, icono nmero [, estado]]]]]]] )
Parmetros
fichero

La ruta completa del nombre del archivo del cual se va a crear al acceso directo.

lnk

La ruta completa del nombre del archivo para crear el enlace.

workdir

[opcional] Directorio de trabajo.

argumentos [opcional] Argumentos de archivo adicionales.


descripcin

[opcional] Descripcin del fichero.

icono

[opcional] Ruta completa del icono o del fichero de iconos a utilizar.

hotkey

[opcional] Combinacin de teclas - Con el mismo formato de Send().

icono
nmero

[opcional] La instancia del icono a utilizar (usualmente 0)

estado

[opcional] El estado del acceso directo al ser este ejecutado. Puede ser
@SW_SHOWNORMAL, @SW_SHOWMINNOACTIVE o @SW_SHOWMAXIMIZED

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si lnk no puede ser creado.

Comentarios
186

Los Hotkeys para accesos en Windows son de la siguiente forma: Ctrl+Alt+X, Ctrl+Shift+X,
Shift+Alt+X, Ctrl+NumPadKey, o Alt+NumPadKey donde X representa una letra, nmero,
puntuacin, o tecla de funcin. Si usted especifica una forma no vlida, Windows usa por
defecto Ctrl+Alt
Note que Windows distingue nmero del teclado numrico de nmeros regulares y teclas de
puntuacin. FileCreateShortcut le permite a usted crear accesos Ctrl+X y Alt+X (que Windows
permite solamente cuando X es un NumPadKey); Sin embargo, usted debe evitar estos
asignamientos para evitar conflictos con combinaciones de teclas(Hotkey).
Windows prohbe ESC, ENTER, TAB, SPACEBAR, PRINT SCREEN, SHIFT, o BACKSPACE para usar
combinaciones de teclas(Hotkey).
FileCreateShortcut no requiere un blanco puntual, directorio de trabajo, icono, combinacin
de teclas (Hotkey) en orden para crear "satisfactoriamente" fichero LNK; Sin embargo, la ruta
destino del archivo LNK debe ser vlido! Si la combinacin de teclas ya esta en uso, su nuevo
acceso directo toma precedencia. Tambin, si usted crea un acceso directo con alguna
ruta\nombre de un acceso ya existente, este sobrescribe el antiguo y toma precedencia.

Relativo
FileGetShortcut, FileCreateNTFSLink

Ejemplo
; establece el mtodo de teclado ctrl+alt+t
FileCreateShortcut(@WindowsDir & "\[Link]",@DesktopDir & "\Shortcut
[Link]",@WindowsDir,"/e,c:\", "This is an Explorer link;-)", @SystemDir & "\[Link]", "^!t",
"15", @SW_MINIMIZE)

FileDelete
Elimina uno o ms ficheros.
FileDelete ( "ruta" )
Parmetros
ruta

La ruta de los ficheros a borrar. Comodines son soportados.

Valor de Retorno

187

Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si los archivos no son borrados o no existen.

Comentarios
Note: Si la "ruta" pasada a FileDelete es una carpeta, los archivos dentro de la carpeta sern
borrados como si usted especificara el comodn *.*.
Ver FileFindFirstFile para una discusin sobre los comodines.
Algunos atributos de archivo pueden hacer imposible la eliminacin.

Relativo
FileCopy, FileMove, FileRecycle, DirRemove, FileRecycleEmpty

Ejemplo
FileDelete("D:\*.tmp")

FileExists
Chequea si un archivo o directorio existe.
FileExists ( "ruta" )
Parmetros
Ruta

El directorio o archivo a revisar.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si la ruta/fichero no existe.

Comentarios
FileExists devuelve 0 si usted especifica una unidad floppy que no contiene ningn disco.
188

Relativo
FileGetAttrib, DriveStatus

Ejemplo
If FileExists("C:\[Link]") Then
MsgBox(4096, "fichero C:\[Link]", "Existe")
Else
MsgBox(4096," fichero C:\[Link]", "no existe")
EndIf
If FileExists("C:\") Then
MsgBox(4096, "Directorio C:\ ", "Existe")
Else
MsgBox(4096,"Directorio C:\ " , "No existe")
EndIf
If FileExists("D:") Then
MsgBox(4096, "Unidad D: ", "Existe")
Else
MsgBox(4096,"Unidad D: ", "No existe")
EndIf

FileFindFirstFile
Devuelve un identificador de bsqueda de acuerdo con una cadena de bsqueda.
FileFindFirstFile ( "NombreFichero" )
Parmetros
NombreFichero Cadena de bsqueda del fichero. (* y ? comodines son soportados)

Valor de Retorno
Con xitos

Devuelve un identificador "handle" de bsqueda para usar subsecuentemente


con funciones FileFindNextFile.

Al Fallar

Devuelve -1 si ocurre un error. Si la carpeta esta vaca @error es fijado a un 1.

Comentarios
189

La cadena de bsqueda no es sensible a mayscula y minsculas.


Comodines: En general, * denota cero o ms caracteres, y ? denota cero o un carcter. Si su
cadena de bsqueda del archivo contiene solamente comodines (o es "*.*"), entonces ver el
ejemplo ms abajo para el valor de retorno!
Usted puede utilizar solamente comodines con una parte del nombre del archivo o la
extensin ej. a*.b?.
?? es equivalente a * (no descrito en la documentacin de Microsoft).
Cuando se utilizan extensiones de 3 caracteres cualquier extensin que comience con 3
caracteres ser coincidente, .ej. "*.log" coincide con "test.log_1". (no descrito en la
documentacin de Microsoft).
Cuando usted tiene una bsqueda finalizada con funciones FileFind... Usted puede invocar
FileClose() para liberar el identificador de bsqueda.
Los nombres de los directorios son retornados de acuerdo a los comodines si los hay.

Relativo
FileClose, FileFindNextFile

Ejemplo
; Muestra los nombres de ficheros y todos los ficheros en el directorio actual
$search = FileFindFirstFile("*.*")
; Chequea si la bsquea a sido satisfactoria
If $search = -1 Then
MsgBox(0, "Error", "No fiheros/directorios coincidentes con el criterio anterior")
Exit
EndIf
While 1
$file = FileFindNextFile($search)
If @error Then ExitLoop
MsgBox(4096, "Fichero:", $file)
WEnd
; Cierra el identificador de la bsqueda
FileClose($search)

FileFlush
Limpia el buffer de una fichero en disco.
190

FileFlush ( identificador )
Parmetros
identificador Un identificador a un fichero previamente abierto con FileOpen().

Valor de Retorno
Con xitos:

Devuelve true si el buffer fu limpiado (o no necesita ser limpiado).

Al Fallar:

Devuelve false.

Comentarios
Un fichero es limpiado cuando el identificador es cerrado o cuando el buffer interno de
Windows esta lleno. Esta funcin fuerza a un limpiado inmediato del buffer.
Esta funcin puede ser usada solamente con identificadores devueltos por FileOpen().
Relativo
FileClose, FileOpen, FileWrite, FileWriteLine, FileSetPos

Ejemplo
Local Const $sFile = "[Link]"
Local $hFile = FileOpen($sFile, 1)
; Chequea si el fichero es correctamente abierto para escritura:
If $hFile = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
;Escribiendo algo en el fichero.
FileWriteLine($hFile, "Line1")
; ejecutar notepad para mostrar que el fichero esta vaco debido a que no se ha flusheado
todava.
RunWait("[Link] " & $sFile)
; Flusheo del fichero en el disco.
FileFlush($hFile)
; ejecutar notepad para mostrar que el contenido del fichero es ahora flusheado en el disco.
RunWait("[Link] " & $sFile)
191

; Cierra el identificador.
FileClose($hFile)
; Limpia el fichero temporal
FileDelete($sFile)

FileGetAttrib
Devuelve una cadena codificada conteniendo los atributos de un fichero.
FileGetAttrib ( nombreFichero )
Parmetros
nombreFichero nombreFichero (o directorio) a revisar.

Valor de Retorno
Con xitos

Devuelve una cadena codificada conteniendo los atributos de un archivo.

Al Fallar

Devuelve "" (cadena vaca) y establece el valor de @error en 1.

Comentarios
La cadena devuelta puede ser una combinacin de estas letras "RASHNDOCT":
"R" = READONLY
"A" = ARCHIVE
"S" = SYSTEM
"H" = HIDDEN
"N" = NORMAL
"D" = DIRECTORY
"O" = OFFLINE
"C" = COMPRESSED (compresin NTFS , no compresin ZIP)
"T" = TEMPORARY
Relativo
FileGetTime, FileSetAttrib, FileExists, FileGetSize, FileSetTime

Ejemplo
$attrib = FileGetAttrib("c:\[Link]")
192

If @error Then
MsgBox(4096,"Error", "No se puede obtener los atributos.")
Exit
Else
If StringInStr($attrib, "R") Then
MsgBox(4096,"", "Fichero de solo lectura.")
EndIf
EndIf
; Muestra toda la informacin de los atributos como texto en la forma de un
; Arreglo confiando en el echo de que cada letra mayscua es nica
; Entinda como este trabajo es un buen ejecicio de cadena...
$input = StringSplit("R,A,S,H,N,D,O,C,T",",")
$output = StringSplit("Read-only /, Archive /, System /, Hidden /" & _
", Normal /, Directory /, Offline /, Compressed /, Temporary /", ",")
For $i = 1 to 9
$attrib = StringReplace($attrib, $input[$i], $output[$i], 0, 1)
; ltimo parmetro en StringReplace significa caso sensitivo
Next
$attrib = StringTrimRight($attrib, 2) ;removiendo los slash
MsgBox(0,"Atributos totales del fichero:", $attrib)

FileGetEncoding
Determina la codificacin de texto utilizada en un fichero.
FileGetEncoding ( "filehandle/filename" [, modo] )
Parmetros
El identificador del fichero, retornado de una llamada previa de FileOpen.
filehandle/filename Alternativamente puede utilizar una cadena con la ruta del fichero como
primer parmetro.
[opcional] El modo de deteccin UTF8 para usar.
1 = Chequea todo el fichero para secuencias UTF8 (por defecto)
2 = Chequea la primera parte del fichero para secuencias UTF8 (igual
como FileOpen usa por defecto)

modo

Valor de Retorno
Con xitos:

Devuelve el fichero codificado usando valores similares para la funcin


FileOpen:

193

0 = ANSI
32 = UTF16 Little Endian.
64 = UTF16 Big Endian.
128 = UTF8 (with BOM).
256 = (sin BOM).
Al Fallar:

Devuelve -1.

Comentarios
Si un nombre de fichero es dado es vez de un identificador de fichero - el fichero ser abierto y
cerrado durante la llamada a la funcin.
Nota: No mezcle nombres de fichero e identificadores de ficheros, ej., no abra un fichero con
FileOpen y luego use un nombre de fichero en esta funcin. Use cualquiera de ambos mtodos
de referenciar el fcihero, no ambos!
Si un identificador de fichero es usado entonces el parmetro "modo" no tendr efecto - el
modo usado por FileOpen tomar precedencia.

Relativo
FileOpen, FileRead, FileReadLine, FileWrite, FileWriteLine

FileGetLongName
Devuelve el nombre completo (direccin+nombre) de una ruta dada.
FileGetLongName ( fichero [, flag] )
Parmetros
fichero

full ruta y archivo nombre a convertir.

flag

[opcional] si es 1 el archivo puede tener directorio relativo, Eje. "..\[Link]"

Valor de Retorno

194

Con xitos

Devuelve el nombre completo de un archivo.

Al Fallar

Devuelve el parmetro y establece el valor de @error en 1.

Comentarios
Ninguno

Relativo
FileGetShortName

Ejemplo
$a = FileGetLongName(@HomeDrive & "\PROGRA~1\")
msgbox(0,"nombre largo de fichero", $a)
;$a es probablemente "x:\Program Files"

FileGetPos
Devuelve la posicin actual en un fichero
FileGetPos ( identificador )
Parmetros
identificador Un identificador a un fichero previamente abieto con FileOpen().

Valor de Retorno
Con xitos:

Devuelve la posicin del desplazamiento (offset) a partir del inicio del fichero
(Primer ndice es 0).

Al Fallar:

Devuelve 0 y establece @error.

Comentarios
El retorno al fallar es 0 pero 0 es tambin una posicin vlida de fciehro as que consulte
@error para determinar la condicin de error.

195

Relativo
FileSetPos, FileRead, FileReadLine, FileWrite, FileWriteLine, FileOpen

Ejemplo
#include <Constants.au3>
Local Const $sFile = "[Link]"
Local $hFile = FileOpen($sFile, 2)
; Chequea si el fichero es correctamente abierto para escritura.
If $hFile = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
;Escribiendo algo en el fichero.
FileWriteLine($hFile, "Line1")
FileWriteLine($hFile, "Line2")
FileWriteLine($hFile, "Line3")
; Flusheo del fichero en el disco.
FileFlush($hFile)
; Chequeando la posicin en el fichero y probando leer el contenido de la posicin actual.
MsgBox(0, "", "Position: " & FileGetPos($hFile) & @CRLF & "Data: " & @CRLF &
FileRead($hFile))
; Ahora, ajusta la posicin al inicio del fichero.
Local $n = FileSetPos($hFile, 0, $FILE_BEGIN)
; Chequeando la posicin del fichero y probando leer el contenido de la posicin actual.
MsgBox(0, "", "Position: " & FileGetPos($hFile) & @CRLF & "Data: " & @CRLF &
FileRead($hFile))
; Cierra el identificador.
FileClose($hFile)
; Limpia el fichero temporal
FileDelete($sFile)

FileGetShortcut
Devuelve detalles de un acceso directo.

196

FileGetShortcut ( "lnk" )
Parmetros
lnk

Ruta completa del fichero de acceso directo.

Valor de Retorno
Con xitos

Devuelve un arreglo que contiene la informacin del acceso directo. Ver


observaciones.

Al Fallar

Establece @error en 1 si el acceso directo no puede ser accedido.

Comentarios
El arreglo devuelto por esta funcin es un arreglo unidimensional conteniendo los siguientes
elementos:
$arreglo[0] = Ruta del acceso directo
$arreglo[1] = Directorio de trabajo
$arreglo[2] = Argumentos
$arreglo[3] = Descripcin
$arreglo[4] = Nombre de fichero del icono
$arreglo[5] = ndice del icono
$arreglo[6] = El estado del acceso directo (@SW_SHOWNORMAL, @SW_SHOWMINNOACTIVE,
@SW_SHOWMAXIMIZED)

Relativo
FileCreateShortcut

Ejemplo
; Establece el mtodo de teclado ctrl+alt+t
FileCreateShortcut(@WindowsDir & "\[Link]",@DesktopDir & "\Shortcut
[Link]",@WindowsDir,"/e,c:\", "This is an Explorer link;-)", @SystemDir & "\[Link]", "^!t",
"15", @SW_MINIMIZE)
; Lee en la direccin del mtodo de teclado
$details = FileGetShortcut(@DesktopDir & "\Shortcut [Link]")
MsgBox(0, "Path:", $details[0])

197

FileGetShortName
Devuelve el nombre corto 8.3 de una direccin+nombre de archivo dado.
FileGetShortName ( fichero [, flag] )
Parmetros
fichero

Ruta completa del nombre del fichero de fichero a convertir.

flag

[opcional] si es 1 el archivo puede tener directorio relativo, Eje. "..\[Link]"

Valor de Retorno
Con xitos

Devuelve el nombre corto 8.3 de una direccin+nombre de archivo.

Al Fallar

Devuelve el parmetro y establece el valor de @error en 1.

Comentarios
El archivo necesita existir pero no hay posibilidad de detectar ~ si existen varios ficheros que
tienen iguales los 8 primeros caracteres.

Relativo
FileGetLongName

Ejemplo
$a = FileGetShortName(@HomeDrive & "\Program Files")
msgbox(0,"long file name", $a)
;$a es probablemente "x:\PROGRA~1"

FileGetSize
Devuelve el tamao de un archivo en bytes.
FileGetSize ( nombreFichero )

198

Parmetros
nombreFichero nombreFichero para revisar.

Valor de Retorno
Con xitos

Devuelve el tamao de el archivo en bytes.

Al Fallar

Devuelve 0 y fija el @error a 1.

Comentarios
No trabaja en directorios.
Dividir el resultado entre 1024 para obtener el equivalente en kilobyte, o divide entre 1048576
para obtener el equivalente en megabyte.

Relativo
FileGetAttrib, FileGetTime, DriveSpaceTotal, FileGetVersion

Ejemplo
$size = FileGetSize("[Link]")

FileGetTime
Devuelve informacin del tiempo y la fecha para un fichero.
FileGetTime ( nombreFichero [, opcin [, formato]] )
Parmetros
nombreFichero Nombre del fichero para revisar.

opciones

[opcional] indica el timestamp (marca de tiempo)


0 = Modificado (por defecto)
1 = Creado
2 = Accedido

formato

[opcional] para especificar el tipo de retorno


0 = retorna un arreglo (por defecto)
199

1 = retorna una cadena YYYYMMDDHHMMSS

Valor de Retorno
Con xitos

Devuelve un arreglo o cadena que contiene informacin del tiempo del archivo.
Ver observaciones.

Al Fallar

Devuelve 0 y establece el valor de @error en 1.

Comentarios
El arreglo es unidimensional conteniendo seis elementos:

$arreglo[0] = ao (cuatro dgitos)


$arreglo[1] = mes (rango 01 - 12)
$arreglo[2] = da (rango 01 - 31)
$arreglo[3] = hora (rango 00 - 23)
$arreglo[4] = min (rango 00 - 59)
$arreglo[5] = seg (rango 00 - 59)
Note que los valores devueltos son normalizados con ceros.

Relativo
FileGetSize, FileGetAttrib, FileGetVersion, FileSetTime, FileSetAttrib

Ejemplo
$t = FileGetTime(@Windowsdir & "\[Link]", 1)
If Not @error Then
$yyyymd = $t[0] & "/" & $t[1] & "/" & $t[2]
MsgBox(0, "Creacin de la fecha en [Link]", $yyyymd)
EndIf

FileGetVersion
Devuelve informacin de la versin del "fichero".
FileGetVersion ( nombreFichero [,"stringname"] )

200

Parmetros
nombreFichero Nombre del fichero para revisar.

stringname

[opcional] nombre del campo para intentar recobrar la informacin desde el


encabezado de informacin de versin del archivo.

Valor de Retorno
Con xitos

Devuelve una cadena conteniendo la informacin de la versin , Eje. "[Link]".

Al Fallar

Devuelve "[Link]" si no hay informacin de versin(o otro error) o "" cuando


recupera un stringname, y establece el valor de @error en 1.

Comentarios
stringname puede ser bsicamente uno de estos :
Comments, InternalName, ProductName, CompanyName, LegalCopyright, ProductVersion,
FileDescription, LegalTrademarks, PrivateBuild, FileVersion, OriginalFilename, SpecialBuild
O uno especial "CompiledScript" el cual es establecido para un script compilado.
FileGetVersion(@AutoItExe, "CompiledScript") devolver "AutoIt v3 Script : 3, 2, 1, 2".
Otro stringname especial es "DefaultLangCodepage" puede ser usado para recuperar el
language y codepage por defecto.
El language y codepage puede ser usado si lo necesita para diferenciar el "stringname" ej.
"080904b0\Comments" (ver MSDN StringFileInfo en la funcin VerQueryValue).

Relativo
FileGetSize, FileGetTime

Ejemplo
$ver = FileGetVersion("[Link]")
MsgBox(0, "Versin del Explorer", $ver)

FileInstall

201

Incluye e instala un archivo con el archivo compilado.


FileInstall ( "fuente", "destino" [, flag] )
Parmetros
fuente

La ruta fuente del archivo para compilar. Esto debe ser una cadena literal; no
puede ser una variable o el resultado de una llamada de funcin. esto puede
ser una direccin relativa (usando .\ o ..\ en la ruta) para el fichero fuente (.au3).

destino

El directorio destino con backslash si se usa hasta el directorio. Este puede ser
una variable.

flag

[opcional] Determina si son sobrescritos los archivos existentes.


0 = (por defecto) no sobrescribe los ficheros existentes
1 = sobrescribe los ficheros existentes

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0.

Comentarios
La funcin FileInstall es designada para incluir archivos en un script de AutoIt compilado. Estos
archivos incluidos pueden entonces ser "extrados" durante la ejecucin del script compilado.
Tenga presente que los archivos como imgenes pueden incrementar el tamao de un script
compilado.
El archivo fuente debe ser una cadena de texto y no puede ser una variable, un clculo o una
llamada de funcin. El fichero debe poderse encontrar durante la compilacin, sin embargo,
variables, clculos y llamadas de funciones no lo pueden resolver mientras el scripts este
corriendo sobre s msmo, despus de la compilacin, haciendo idanecuado definir el fichero
fuente.
Cuando esta funcin es usada de un script no-compilado, una operacin de copiar es realizada.
(para probar facilmente en fase de pre-compilacin).
Los archivos pueden mantener su fecha original de creacin cuando se instalan.
La ruta del directorio de destino debe realmente existir antes de que esta funcin sea llamada,
o FileInstall fallar, devolviendo 0 y no creando el fichero, o la direccin. Ver DirCreate() para
informacin acerca de la creacin de directorios.
202

Los atributos de fichero de un fichero existente pueden prevenir que este sea sobrescrito. Use
FileDelete() o FileSetAttrib() para asegurarse que el fichero pueda ser instalado sin problemas.

Relativo
DirCreate, FileDelete, FileSetAttrib

Ejemplo
; Incluye un bitmap encontrado en "C:\[Link]" con el programa compilado ey colocarlo en
"D:\mydir\[Link]" cuando este es ejecutado
$b = True
If $b = True Then FileInstall("C:\[Link]", "D:\mydir\[Link]")

FileMove
Mueve uno o ms directorios.
FileMove ( "fuente", "destino" [, flag] )
Parmetros
fuente

La ruta fuente y el nombre del fichero a mover. (comodines * son soportados)

destino

La ruta destino y el nombre del fichero movidos. (comodines * son soportados)

flag

[opcional] Determina si los archivos existentes sern sobrescritos.


Puede ser una combinacin de lo siguiente:
0 = (por defecto) No sobrescribe los ficheros existentes
1 = comodines * son soportados
8 = Crea una estructura de directorio destino si este no existe (Ver
comentarios).

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si fuente no puede ser movido o si destino ya existe y flag=0.

Comentarios

203

Si las rutas fuente y destino son en diferentes volmenes una operacin de copiar y borrar es
ejecutada para mejorar la operacin de mover.
Debido a que AutoIt carece de una funcin "FileRename", use FileMove para renombrar un
fichero!
El directorio destino debe existir, excepto cuando se usa la opcin '8'.
Por instancia la combinacin '9' (1 + 8) sobrescribe los ficheros existentes y pre-chequea si el
directorio destino no existe y lo crea automticamente.
Algunos atributos de archivo pueden hacer imposible la operacin de mover.

Relativo
FileCopy, FileDelete, FileRecycle, DirMove

Ejemplo
FileMove("C:\foo.au3", "D:\mydir\bak.au3")
; Segundo ejemplo:
; usando la bandera '1' (sobreescribiendo) y '8' (Autocreando la estructura del
directorioblanco) juntamente
; mueve todos los ficheros txt desde temp a txtfiles y prechequea si
; la estructura del directorio blanco existe, si no, es creado automticamente.
FileMove(@TempDir & "\*.txt", @TempDir & "\TxtFiles\", 9)

FileOpen
Abre un archivo de texto para lectura o escritura.
FileOpen ( nombreFichero, [, mode ] )
Parmetros
nombreFichero nombreFichero de texto para abrir.
[opcional]
Modo modo
para abrir el
fichero como.

Modo (lectura o escritura) en la apertura del archivo.


Puede ser una combinacin de lo siguiente:
0 = Modo lectura (por defecto)
1 = Modo escritura (se coloca al final del fichero)
2 = Modo escritura (borra contenido previo)
204

8 = Crea una estructura de directorio si esta no existe(ver Comentarios).


16 = Fuerza a modo binario (byte)(Ver Comentarios).
32 = Usa modo Unicode UTF16 Little Endian en lectura y escritura. La lectura
no sobreescribe el BOM existente.
64 = Usa modo Unicode UTF16 Big Endian cuando escribe texto con FileWrite
y FileWriteLine (por defecto usa ANSI)
128 = Usa Unicode UTF8 (con BOM) modo lectura y escritura. La lectura no
sobreescribe el BOM existente.
256 = Usar Unicode UTF8 (sin BOM) modos lectura y escritura.
16384 = Cuando se habre para lectura y no existe BOM, usa la deteccin
completa de UTF8. Si esto no es usado entonces solo la parte inicial del
fichero es chequeado para UTF8.
La ruta del directorio debe existir siempre (excepto usando solo '8' - Ver
Comentarios).

Valor de Retorno
Con xitos

Devuelve un identificador "handle" del archivo para uso con las subsecuentes
funciones de fichero.

Al Fallar

Devuelve -1 si ocurre un error.

Comentarios

El identificador de fichero debe ser cerrado con la funcin FileClose()


Un fichero puede fallar al abrir debido a permisos o atributos.
El modo por defecto cuando se escribe texto es ANSI - use el flag unicode para cambiar
esto. Cuando se escriben ficheros unicode,el modo por defecto en Windows, (y ms
rpido en AutoIt debido a la misma conversin) este es UTF16 Little Endian (modo 32).
Abriendo un fichero en modo escritura se crea el fichero si este no existe. Los
directorios no son creados a menos que se especifique el flag correcto.
Cuando se lee o se escribe a traves de un identificador (handle) de fichero, la funcin
FileSetPos() debe ser usada para actualizar la posicin actual dentro del fichero.

Relativo
FileClose, FileFlush, FileRead, FileReadLine, FileWrite, FileWriteLine, FileGetPos, FileSetPos

Ejemplo
$file = FileOpen("[Link]", 0)
; Cheque si el fichero abierto es ledo correctamente
205

If $file = -1 Then
MsgBox(0, "Error", "Incapaz de abrir el fichero.")
Exit
EndIf
FileClose($file)

; Otro ejemplo que crea automticamente la estructura de directorio


$file = FileOpen("[Link]", 10) ; que es similar a 2 + 8 (borrar + crear directorio)
If $file = -1 Then
MsgBox(0, "Error", "Incapaz de abrir el fichero.")
Exit
EndIf
FileClose($file)

FileOpenDialog
Inicia un cuadro de dilogo de Abrir Archivo.
FileOpenDialog ("ttulo", "init dir", "filtro" [, opciones [, "nombre por defecto" [, hwnd]]])
Parmetros
ttulo

Texto ttulo del Dilogo GUI.

init dir

Directorio inicial seleccionado en el rbol de archivos del GUI.

filtro

Filtro de ficheros simple tales como "All (*.*)" o "Text archivos (*.txt)" o filtro de
ficheros mltiple tales como "All (*.*)|Text archivos (*.txt)" (Ver Comentarios).

opciones

[opcional] Opciones de Dilogo: Para usar ms de una opcin, sumar los valores
deseados.
1 = Fichero debe existir (si el usuario tipea un nombreFichero)
2 = Ruta debe existir (si el usuario tipea una ruta, finalizado con un backslash)
4 = Permite mltiple seleccin
8 = Prompt para crear un nuevo fichero (si este no existe)

nombre por
defecto

[opcional] Sugerir un nombre de archivo para ser abierto. Por defecto esta vaco
("").

hwnd

[opcional] El identificador de ventana padre de este dilogo.

206

Valor de Retorno
Con xitos

Devuelve la ruta completa del fichero(s) seleccionado. El resultado para


mltiples selecciones se devuelve en la forma "Directory|fichero1|fichero2|..."

Al Fallar

Establece @error a:

@error:

1 - fall la seleccin del fichero.


2 - filtro errneo.

Comentarios
Separe filtros de mltiples archivos con un punto y coma ";".
Mltiples grupos de filtros estn separados por un pipe "|".
Si el nombre por defecto es dado, Las opciones precedentes deben se dadas tambin. Si no va
utilizar las opciones, use 0 para estas.
Directorios especiales en Windows (tales como "My Documents") puede ser establecido como
el directorio inicial; Ver apndices.
@WorkingDir es cambiado cuando el valor de retorno es exitoso.

Relativo
FileSaveDialog, FileSelectFolder, StringSplit

Ejemplo
$message = "Mantenga oprimido Ctrl o Shift para escoger mltiples ficheros."
$var = FileOpenDialog($message, @WindowsDir & "\", "Images (*.jpg;*.bmp)", 1 + 4 )
If @error Then
MsgBox(4096,"","No fichero(s) escogidos")
Else
$var = StringReplace($var, "|", @CRLF)
MsgBox(4096,"","Usted escogi " & $var)
EndIf
; Mltiples filtros de grupos

$message = "Mantenga oprimido Ctrl o Shift para escoger mltiples ficheros."


$var = FileOpenDialog($message, @WindowsDir & "", "Images (*.jpg;*.bmp)|Videos
(*.avi;*.mpg)", 1 + 4 )
207

If @error Then
MsgBox(4096,"","No fichero(s) escogidos")
Else
$var = StringReplace($var, "|", @CRLF)
MsgBox(4096,"","Usted escogi " & $var)
EndIf

FileRead
Lee un nmero de caracteres desde un fichero previamente abierto.
FileRead ( IdentificadorFichero/NombreFichero [, contador] )
Parmetros
El identificador de un fichero, devuelto por una llamada
previa a FileOpen. Alternativamente usted puede usar
IdentificadorFichero/NombreFichero
una cadena con el nombre del archivo como primer
parmetro.
[opcional] El nmero de caracteres para leer. Por
defecto lee todo el fichero.

contador

Valor de Retorno
Con xitos

Devuelve la lectura binaria/cadena. @extended almacenar el nmero de


bytes/caracteres devueltos.

Especial:

Establece @error a -1 si el final del fichero es alcanzado.

Al Fallar

Establece @error a 1 si archivo no se abre en modo lectura u otro error.

Comentarios

Si el nombre del archivo es dado en lugar del identificador - el archivo ser abierto y cerrado
durante la invocacin de la funcin - para analizar ficheros de texto largos en mucho ms lento
de este modo que utilizando identificador de fichero.
Nota: Nunca mezcle identificador de fichero y nombre de fichero, ej., no utilize FileOpen para
abrir un archivo y entonces use un nombre de archivo en esta funcin. Utilize cualquiera entre
identificador de fichero y nombre de fichero en sus script, pero nunca ambos!

208

Ambos formatos de texto ANSI y UTF16/UTF8 pueden ser ledos - AutoIt determinar
automticamente el tipo.
Un archivo puede ser ledo como dato binario(byte) usando FileOpen con el flag de binario- en
este caso el contador es en bytes en vez de caracteres.

Relativo
FileOpen, FileReadLine, FileWrite, FileWriteLine, String, FileSetPos, FileGetPos

Ejemplo
$file = FileOpen("[Link]", 0)
; Cheque si el fichero abierto es ledo correctamente
If $file = -1 Then
MsgBox(0, "Error", "Incapaz de abrir el fichero.")
Exit
EndIf
; lee un 1 por tiempo hasta que EOF (final del fichero) es alcanzado
While 1
$chars = FileRead($file, 1)
If @error = -1 Then ExitLoop
MsgBox(0, "Caracter ledo:", $chars)
Wend
FileClose($file)

FileReadLine
Lee una lnea de texto desde un fichero previamente abierto.
FileReadLine ( IdentificadorFichero/NombreFichero [, lnea] )
Parmetros
El identificador de un fichero, devuelto por una llamada
previa a FileOpen. Alternativamente usted puede usar
IdentificadorFichero/NombreFichero
una cadena con el nombre del archivo como primer
parmetro.

209

[opcional] El nmero de la lnea a leer. La primera lnea


en un archivo de texto es la lnea 1 (no cero), la ltima
lnea es -1.

lnea

Valor de Retorno
Con xitos

Devuelve una lnea de texto.

Especial:

Establece @error a -1 si el final del fichero es alcanzado.

Al Fallar

Establece @error a 1 si archivo no se abre en modo lectura u otro error.

Comentarios

Devuelve el texto de la lnea leda, cualquier de los caracteres de nueva lnea ( CHR(10) o @LF )
al final de una lnea leda son automticamente cortados.
Si el nmero de lnea no es dado, la "prxima" lnea ser leda. ("Prxima" para un nuevo
archivo abierto es la primera lnea).
Si el nombre del archivo es dado en lugar del identificador - el archivo ser abierto y cerrado
durante la invocacin de la funcin - para analizar ficheros de texto largos en mucho ms lento
de este modo que utilizando identificador de fichero.
Nota: Nunca mezcle identificador de fichero y nombre de fichero, ej., no utilize FileOpen para
abrir un archivo y entonces use un nombre de archivo en esta funcin. Utilize cualquiera entre
identificador de fichero y nombre de fichero en sus script, pero nunca ambos!
Desde el punto de vista del desempeo es una mala idea leer lnea por lnea especificando el
parmetro "lnea" con incremento a uno. Esto fuerza a AutoIt a releer una y otra vez todo el
archivo desde el comienzo hasta la lnea especificada.
Ambos formatos de texto ANSI y UTF16/UTF8 pueden ser ledos - AutoIt determinar
automticamente el tipo.

Relativo
IniRead, FileOpen, FileRead, FileWrite, FileWriteLine, FileSetPos, FileGetPos

Ejemplo
$file = FileOpen("[Link]", 0)
; Chequea si el fichero abierto es ledo correctamente
210

If $file = -1 Then
MsgBox(0, "Error", "Incapaz de abriri el fichero.")
Exit
EndIf
; Lee las lneas de texto mientras no es encontrado EOF (final del fichero)
While 1
$line = FileReadLine($file)
If @error = -1 Then ExitLoop
MsgBox(0, "Lnea leda:", $line)
Wend
FileClose($file)

FileRecycle
Enva un archivo o directorio a la papelera de reciclaje (recycle bin).
FileRecycle ( "fuente" )
Parmetros
fuente

Direccin de un archivo(s) o directorio a reciclar. Comodnes son soportados.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 (Tpicamente significa que el archivo est en uso o no existe).

Comentarios
Ver FileFindFirstFile para una discusin sobre los comodines.
Para remover un directorio, simplemente provea la ruta completa sin backslash al final.

Relativo
FileDelete, FileRecycleEmpty, DirRemove, FileMove

Ejemplo

211

FileRecycle("C:\*.tmp")

FileRecycleEmpty
Vaca la papelera de reciclaje.
FileRecycleEmpty ( ["recurso"] )
Parmetros
recurso

[opcional] la ruta-raz para vaciar - si es omitido este valor se vaca en todas las
unidades.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 (la papelera de reciclaje no pudo ser vaciada - ver ms abajo).

Comentarios
Para que esta funcin trabaje IE4+ debe estar disponible.

Relativo
FileDelete, FileRecycle

Ejemplo
FileRecycleEmpty("C:\")

FileSaveDialog
Inicializa un dilogo de Salvar Fichero.
FileSaveDialog ( "ttulo", "dir inicial", "filtro" [, opciones [, "nombre por defecto" [, hwnd]]] )
Parmetros
212

ttulo

Ttulo del Dilogo GUI.

dir inicial

Directorio inicial mostrado en el rbol de la GUI.

filtro

Filtro simple de tipo de archivo como "Todos (*.*)" o "files de texto (*.txt)" o
filtro mltiple de tipos de ficheros tales como "Todos (*.*)|files de texto (*.txt)"
(Ver Comentarios)

opciones

[opcional] 2 = La ruta debe existir (si el usuario tipea una ruta, esta debe
terminar en backslash)

nombre por
defecto

16 = Prompt para sobrescribir fichros.


[opcional] Nombre sugestivo de fichero para ser mostrado al inicio. Por defecto
es blank ("").

hwnd

[opcional] El identificador de la ventana padre para este dilogo.

Valor de Retorno
Con xitos

Devuelve la ruta completa del archivo escogido. Los resultados para mltiple
seleccin son mostrado como : "Directory|file1|file2|..."

Al fallar

Establece:

@error:

1 - Seleccin errnea del fichero.


2 - Filtro errneo.

Comentarios
Separar los filtros de archivos por un ; como es mostrado en el ejemplo. La seleccin mltiple
de archivos son separados por un pipe "|".
Si el nombre por defecto es dado, los parmetros previos deben ser dados tambin. Si ninguna
de los parmetros son encontrados, utilize un 0.
Los directorios especiales de Windows (tales como "My Documents") pueden a veces ser
establecido como el directorio de inicio; ver Apndice.
@WorkingDir es cambiado cuando el valor de retorno es satisfactorio.

Relativo
213

FileOpenDialog, FileSelectFolder

Ejemplo
$MyDocsFolder = "::{450D8FBA-AD25-11D0-98A8-0800361B1103}"
$var = FileSaveDialog( "Seleccionar un nombre.", $MyDocsFolder, "Scripts (*.aut;*.au3)", 2)
; optcin 2 = Dilogo permanente hasta validar la ruta/fichero seleccionado
If @error Then
MsgBox(4096,"","Salvar cancelado.")
Else
MsgBox(4096,"","Su selccin " & $var)
EndIf

; Grupo de filtro mltiple


$var = FileSaveDialog( "Selecione los nombres.", $MyDocsFolder, "Scripts
(*.aut;*.au3)|Ficheros texto (*.ini;*.txt)", 2)
; optcin 2 = Dilogo permanente hasta validar la ruta/fichero seleccionado
If @error Then
MsgBox(4096,"","Salvar cancelado.")
Else
MsgBox(4096,"","Su seleccin " & $var)
EndIf

FileSelectFolder
Inicializa un dilogo de seleccin de carpeta.
FileSelectFolder ( "texto dilogo ", "dir root" [, flag [, "dir inicial" [, hwnd]]] )
Parmetros
texto
dilogo

Texto de bienvenida del dilogo.

dir root

directorio Root del rbol de la GUI. Use "" para mostrar el Escritorio como root.

flag

[opcional] 1 = Muestra Botn Crear Carpeta (requiere IE6.0 o posterior)


2 = Usa el Dilogo de Nuevo Estilo (requiere IE5.0 o posterior)
4 = Muestra un Control Edit (para mostrar nombre de carpeta)

dir inicial

[opcional] Directorio Inicial/iniciar que ser seleccionado si existe. Por defecto


214

es blank ("").
hwnd

[opcional] El identificador de la ventana padre para este dilogo.

Valor de Retorno
Con xitos

Devuelve la ruta completa de la carpeta escogida.

Al Fallar

Devuelve "" (cadena vaca) y fija @error a 1 si usuario cancela/cierra la ventana.

Comentarios
El directorio root ser establecido en caso de que el directorio inicial (si es dado) no exista.
Un directorio root no existente provoca que se tome al Escritorio como directorio root.
La opcin "Botn Crear Carpeta" puede requerir Windows XP con IE6 para que funcione.
Los directorios especiales de Windows (Tales como "My Documents") pueden ser fijados como
root usando el CLSID correcto segn es mostrado en Apndice.
Rutas UNC no son soportados. Si usted considera que los usuario pueda seleccionar ficheros en
una ruta UNC entonces esa ruta necesita ser mapeada en una unidad primero.

Relativo
FileSaveDialog, FileOpenDialog

Ejemplo
$var = FileSelectFolder("Seleccione una carpeta.", "")

FileSetAttrib
Establece los atributos de uno o ms ficheros.
FileSetAttrib ( "fichero", "+-RASHNOT" [, recursin )
Parmetros
fichero

File(s) a cambiar, Eje. C:\*.au3, C:\Dir

215

+-RASHNOT

Atributo(s) para fijar/borrar. Eje. "+A", "+RA-SH"

recursin

[opcional] Si es fijado a 1, entonces los directorios son recursivamente


procesados. Por defecto es 0 (no recursin).

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si encuentra cualquier error.

Comentarios
El fichero no puede contener espacios!
Los atributos que pueden ser modificados con esta funcin con + o - son:
"R" = READONLY (solo lectura)
"A" = ARCHIVE (Archivo)
"S" = SYSTEM (Sistema)
"H" = HIDDEN (Oculto)
"N" = NORMAL (Normal)
"O" = OFFLINE
"T" = TEMPORARY (Temporal)
(Note que usted no puede fijar el atributo comprimido/directorio con esta funcin)
Si el parmetro recursin es fijado a 1 entonces todos los ficheros que se encuentren en los
directorios hijos heredaran los mismos permisos.

Relativo
FileGetAttrib, FileGetTime, FileSetTime

Ejemplo
;marca todos los ficheros *.au3 en el actual directorio como solo lectura y sistema
If Not FileSetAttrib("*.au3", "+RS") Then
MsgBox(4096,"Error", "Problema estableciendo atributos.")
EndIf
;marca todos los ficheros *.au3 en C:\ y subdirectorios como escribibles y archivo
If Not FileSetAttrib("C:\*.bmp", "-R+A", 1) Then
MsgBox(4096,"Error", "Problema estableciendo atributos.")
216

EndIf

FileSetPos
Establece la posicin actual en el fichero.
FileSetPos ( identificador, desplazamiento, origen )
Parmetros
identificador

Un identificador a un fichero previamente abierto con FileOpen().

El desplazamiento a efectuar desde la posicin de origen. Este valor puede


desplazamiento ser positivo o negativo. Valores negativos provocan desplazamiento hacia
atrs desde el origen.
Debe ser uno de los siguientes:
0 - Principio del fichero ($FILE_BEGIN desde Constants.au3).
origen
1 - Posicin actual ($FILE_CURRENT desde Constants.au3).
2 - Fin del fichero ($FILE_END desde Constants.au3).

Valor de Retorno
Con xitos:

True si la operacin es satisfactoria

Al Fallar:

False.

Comentarios
El fichero Include Constants.au3 debe ser colocado en su script para poder utilizar los nombres
simblicos entre parntesis para establecer el parmetro origen.
Usando FileSetPos() es posibe leer y escribir un fichero. Cuando se intente escribir y leer un
fichero, siempre llame FileFlush() entre cada operacin de escritura y lectura.
Moviendo el puntero en medio de un dato puede ser usado para sobreescribir el dato.
Relativo
FileGetPos, FileFlush, FileRead, FileReadLine, FileWrite, FileWriteLine, FileOpen

217

Ejemplo
#include <Constants.au3>
Local Const $sFile = "[Link]"
Local $hFile = FileOpen($sFile, 2)
; Chequea si el fichero es correctamente abierto para escritura.
If $hFile = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
;Escribiendo algo en el fichero.
FileWriteLine($hFile, "Line1")
FileWriteLine($hFile, "Line2")
FileWriteLine($hFile, "Line3")
; Flusheo del fichero en el disco.
FileFlush($hFile)
; Chequeando la posicin en el fichero y probando leer el contenido de la posicin actual.
MsgBox(0, "", "Position: " & FileGetPos($hFile) & @CRLF & "Data: " & @CRLF &
FileRead($hFile))
; Ahora, ajusta la posicin al inicio del fichero.
Local $n = FileSetPos($hFile, 0, $FILE_BEGIN)
; Chequeando la posicin del fichero y probando leer el contenido de la posicin actual.
MsgBox(0, "", "Position: " & FileGetPos($hFile) & @CRLF & "Data: " & @CRLF &
FileRead($hFile))
; Cierra el identificador.
FileClose($hFile)
; Limpia el fichero temporal
FileDelete($sFile)

FileSetTime
Establece la marca de tiempo de uno o ms ficheros
FileSetTime ( "fichero", "tiempo" [, tipo [, recursin] ] )
Parmetros

218

fichero

Fichero(s) para cambiar, Eje. C:\*.au3, C:\Dir

tiempo

El nuevo tiempo a fijar en el formato "YYYYMMDDHHMMSS" (Ao, Mes, Da,


Horas (Reloj 24hr ), segundos). Si el tiempo es blank "" entonces la fecha y hora
actual es usado.

tipo

[opcional] La marca de tiempo a cambiar: 0 = Modificado (por defecto), 1 =


Creado, 2 = Accedido

recursin

[opcional] Si esto es fijado a 1, entonces los directorios son procesados


recursivamente. Por defecto es 0 (no recursin).

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si ocurre un error cambiando la marca de tiempo(s).

Comentarios
Usando una fecha enterior a 1980-01-01 no tendr efecto.
Tratando de establecer la marca de tiempo en una fichero de solo lectura este causar un
error.

Relativo
FileGetTime, FileGetAttrib, FileSetAttrib

Ejemplo
;Cambia el fichero file.au3 "modificando" la marca de tiempo al 1ro de noviembre del 2003 y la
hora actual
$var = FileSetTime("file.au3", "20031101")

FileWrite
Agrega un texto/dato al final de un fichero previamente abierto.

219

FileWrite ( "filehandle/nombre de fichero", "texto/dato" )


Parmetros
El apuntador (handle) del fichero, devuelto por una llamada previa a
filehandle/nombre
FileOpen. Alternativamente, usted puede usar una ruta de archivo
de fichero
completa.
El texto/dato a escribir en el fichero. La lnea de texto es escrita tal como
es - sin caracteres @CR o @LF. Ver Comentarios para tipos de datos.

texto/dato

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si el archivo no puede abrirse en modo escritura, si es de solo


lectura, o si el archivo no puede ser escrito de alguna forma.

Comentarios
El fichero de texto debe ser abierto en modo escritura o FileWrite fallar.
Si un nombre de archivo es dado en ves del identificador de archivo (handle), el archivo ser
abierto y cerrado durante la operacin de escritura. Para analizar largos archivos de texto este
mtodo ser mucho ms lento que utilizando identificadores de archivo. Sin embargo, el
nombre de archivo ser creado si no existe.
Nota: No mezcle nombre de ficheros con identificadores de fichero, ej., no utilice FileOpen()
para abrir el fichero de texto y utilice el nombre de fichero en esta funcin. Utilice cualquiera
de los dos mtodos pero no ambos a la vez.
Cuando se escribe en un texto AutoIt escribir utilizando ANSI por defecto. Para escritura en
modo Unicode el archivo sebe ser abierto con FileOpen() y el flags adecuado.
Si el dato es un binario de tipo variant (y no es texto) este ser escrito en el archivo byte por
byte. Las operaciones con binario pueden tambin forzarse utilizando Fileopen con el flag
binario.

Relativo
FileFlush, FileOpen, FileRead, FileReadLine, FileWriteLine, Binary, FileSetPos, FileGetPos

Ejemplo

220

$file = FileOpen("[Link]", 1); Chequea si el fichero abierto es escrito correctamente


If $file = -1 Then
MsgBox(0, "Error", "Incapz de abrir el fichero.")
Exit
EndIf
FileWrite($file, "Lnea1")
FileWrite($file, "Lnea1 contigua" & @CRLF)
FileWrite($file, "Lnea2")
FileClose($file)

FileWriteLine
Agrega una lnea de texto al final de un fichero de texto previamente abierto.
FileWriteLine ( "filehandle/nombre de fichero", "lnea" )
Parmetros
El apuntador (handle) del fichero, devuelto por una llamada previa a
filehandle/nombre
FileOpen. Alternativamente, usted puede usar una ruta de archivo
de fichero
completa.
La lnea de texto a escribir en el fichero. Si la lnea NO termina en @CR o
@LF entonces un DOS linefeed (@CRLF) ser automticamente
adicionado.

lnea

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si el archivo no puede abrirse en modo escritura, si es de solo


lectura, o si el archivo no puede ser escrito de alguna forma.

Comentarios
El archivo de texto debe ser abierto en modo escritura o este FileWrite fallar.
Si un nombre de archivo es dado en ves del identificador de archivo(handle), el archivo ser
abierto y cerrado durante la operacin de escritura. Para analizar largos archivos de texto este
mtodo ser mucho ms lento que utilizando identificadores de archivo. Sin embargo, el
nombre de archivo ser creado si no existe.
221

Nota: No mezcle nombre de ficheros e identificador de fichero, ej. no utilize FileOpen() para
abrir el fichero de texto y utilice el nombre de fichero en esta funcin. Utilize cualquiera de los
dos mtodos pero no ambos a la vez.
Cuando se escribe en un texto AutoIt escribir utilizando ANSI por defecto. Para escritura en
modo Unicode el archivo sebe ser abierto con FileOpen() y el flags adecuado.
El texto escrito no puede contener caracteres Chr(0). La salida es truncada. FileWrite en modo
binario puede ser utilizado para escribir como caracteres.

Relativo
FileFlush, FileOpen, FileRead, FileReadLine, FileWrite, FileSetPos, FileGetPos

Ejemplo
$file = FileOpen("[Link]", 1)
; Chequea si el fichero abierto es escrito correctamente
If $file = -1 Then
MsgBox(0, "Error", "Incapz de abrir el fichero.")
Exit
EndIf
FileWriteLine($file, "Lnea1")
FileWriteLine($file, "Lnea2" & @CRLF)
FileWriteLine($file, "Lnea3")
FileClose($file)

IniDelete
Borra un valor de un fichero .ini con formato estndar.
IniDelete ( "nombre de fichero", "seccin" [, "clave"] )
Parmetros
nombre de
fichero

El nombre de archivo del fichero .ini

seccin

El nombre de la seccin en del fichero .ini

222

clave

[opcional] El nombre de la clave en el fichero .ini para borrar. Si el nombre de la


clave no es dado se borra la seccin completa. La palabra reservada Default
tambin puede ser usada para causar que la seccin sea borrada.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si el archivo INI no existe o si el archivo es de solo lectura.

Comentarios
Un archivo ini estndar tiene la forma:
[NombreDeSeccion]
Clave=Valor

Relativo
IniRead, IniWrite, IniReadSection, IniReadSectionNames, IniRenameSection, IniWriteSection

Ejemplo
IniDelete("C:\Temp\[Link]", "seccin2", "Clave")

IniRead
Lee un valor desde un fichero .ini con formato estndar.
IniRead ( "nombre de fichero", "seccin", "clave", "por defecto" )
Parmetros
nombre de
fichero

El nombre de archivo del fichero .ini

"seccin"

El nombre de la seccin del fichero .ini

clave

El nombre de clave en el en el .ini file.

223

por defecto

El valor predefinido de retorno si la clave dada no existe.

Valor de Retorno
Con xitos

Devuelve el valor de la clave dada.

Al Fallar

Devuelve la cadena por defecto si la clave solicitada no es encontrada.

Comentarios
Un archivo ini estndar tiene la forma:
[NombreDeSeccion]
Clave=Valor

Relativo
IniDelete, IniWrite, FileReadLine, IniReadSection, IniReadSectionNames, IniRenameSection,
IniWriteSection

Ejemplo
$var = IniRead("C:\Temp\[Link]", "secccin2", "Clave", "NoEncontrado")
MsgBox(4096, "Resultado", $var)

IniReadSection
Lee todos los pares de valores/claves de una seccin en un fichero .ini con formato estndar.
IniReadSection ( "nombre de fichero", "seccin" )
Parmetros
nombre de
fichero

El nombre de archivo del fichero .ini

seccin

El nombre de la seccin en del fichero .ini

Valor de Retorno

224

Con xitos

Devuelve un arreglo de 2 dimensiones donde el elemento[n][0] es la clave y el


elemento[n][1] es el valor.

Al Fallar

Establece @error=1 si es deshabilitado para leer la seccin (El archivo INI no


existe o la seccin no existe)

Comentarios
Un archivo ini estndar tiene la forma:
[NombreDeSeccion]
Clave=Valor
El nmero de valores devueltos se guardan en $result[0][0]. Si un @error ocurre, el arreglo no
es creado.
Solo los primeros 32767 caracteres son tomados en cuenta en una seccin para compatibilidad
con Win9x.

Relativo
IniDelete, IniWrite, IniRead, IniReadSectionNames, IniRenameSection, IniWriteSection

Ejemplo
$var = IniReadSection("C:\Temp\[Link]", "section2")
If @error Then
MsgBox(4096, "", "Ocurri un error, probablemente no es un archivo INI.")
Else
For $i = 1 To $var[0][0]
MsgBox(4096, "", "Clave: " & $var[$i][0] & @CRLF & "Valor: " & $var[$i][1])
Next
EndIf

IniReadSectionNames
Lee todas las secciones en un fichero .ini con formato estndar.
IniReadSectionNames ( "nombre de fichero" )
Parmetros
nombre de

El nombre de archivo del fichero .ini

225

fichero

Valor de Retorno
Con xitos

Devuelve un arreglo lineal con los nombres de todas las secciones del fichero
INI.

Al Fallar

Establece @error en fallo.

Comentarios
Un archivo ini estndar tiene la forma:
[NombreDeSeccion]
Clave=Valor
El nmero de elementos devueltos se guardan en $result[0]. Si un @error ocurre, el arreglo no
es creado.
Solo los primeros 32767 caracteres son tomados de una seccin por compatibilidad con Win9x.

Relativo
IniDelete, IniWrite, IniRead, IniReadSection, IniRenameSection, IniWriteSection

Ejemplo
$var = IniReadSectionNames(@WindowsDir & "\[Link]")
If @error Then
MsgBox(4096, "", "Ocurri un error, probablemente no es un archivo INI.")
Else
For $i = 1 To $var[0]
MsgBox(4096, "", $var[$i])
Next

EndIf

IniRenameSection
Renombra una seccin en un fichero .ini con formato estndar.
IniRenameSection ( "nombre de fichero", "seccin", "nueva seccin" [, flag] )
226

Parmetros
nombre de
fichero

El nombre de archivo del fichero .ini.

seccin

El nombre de la seccin en del fichero .ini

nueva
seccin

El nuevo nombre de seccin.

flag

[opcional] 0 (Por defecto) - Falla si "nueva seccin" ya existe.


1 - Sobrescribe "nueva seccin". Esto borrar cualquier clave existente en
"nueva seccin"

Valor de Retorno
Con xitos

un entero distinto de cero

Al Fallar

0 y puede fijar @error si la seccin no es sobrescrita (solo flag = 0 ).

Comentarios
Un archivo ini estndar tiene la forma:
[NombreDeSeccion]
Clave=Valor

Relativo
IniRead, IniDelete, IniWrite, IniReadSection, IniReadSectionNames, IniWriteSection

Ejemplo
$res = IniRenameSection(@ScriptDir & "[Link]", "MiSeccin", "MiNuevaSeccin")

IniWrite

Escribe un valor para un fichero .ini con formato estndar.


227

IniWrite ( "nombre de fichero", "seccin", "clave", "valor" )


Parmetros
nombre de
fichero

El nombre de archivo del fichero .ini

seccin

El nombre de la seccin en del fichero .ini

clave

El nombre de la clave en del fichero .ini

valor

El valor para escribir/cambiar.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si el archivo es de solo lectura.

Comentarios
Un archivo ini estndar tiene la forma:
[NombreDeSeccion]
Clave=Valor
Si el archivo no existe, este es creado. Cualquier directorio no existente es creado. Claves y/o
secciones son adicionados al final y no son ordenados
Cuando se escribe un valor entre comillas, estas son quitadas. Si usted desea colocar un valor
entre comillas entonces tiene que usarlas doble. Por ejemplo: ""Esto es una prueba"" lo cual
produce "Esto es una prueba" en el fichero.
Espacios intermedios y finales son quitados. Si usted desea preservar el espacio, la cadena
debe tener comillas. Por ejemplo: " Esto es una prueba" preservar el espacio, sin embargo, las
comillas sern quitadas.
Valores en lneas mltiples no son soportados.

Relativo
IniDelete, IniRead, IniReadSection, IniReadSectionNames, IniWriteSection, IniRenameSection

228

Ejemplo
IniWrite("C:\Temp\[Link]", "seccin2", "Clave", "Esto es un nuevo valor")

IniWriteSection
Escribe una seccin para un fichero .ini con formato estndar.
IniWriteSection ( "nombre de fichero", "seccin", "data" [, ndice ] )
Parmetros
nombre de
fichero

El nombre de archivo del fichero .ini

seccin

El nombre de la seccin en del fichero .ini

data

El dato a escribir. El dato puede ser una cadena o un arreglo. Si el dato es una
cadena, entonces cada par clave=valor debe estar delimitado por @LF. Si el dato
es un arreglo, el arreglo debe ser bidimensional y la segunda dimensin debe
contener dos elementos.

ndice

[opcional] Si un arreglo es pasado como dato, esto especifica el ndice desde


donde se iniciar la escritura. Por defecto, es 1 mientras que el valor devuelto
por IniReadSection() puede ser usado inmediatamente. Para crear un arreglo
manualmente, este valor necesita ser diferente en dependencia de como el
arreglo ha sido creado. Este parmetro es ignorado si una cadena ha sido
pasada como dato.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0. La funcin fija @error a 1 si el formato de dato es invlido.

Comentarios
Un archivo ini estndar tiene la forma:
[NombreDeSeccion]
Clave=Valor
229

Si el archivo no existe, este es creado. Cualquier directorio no existente es creado. Claves y/o
secciones son adicionados al final y no son ordenados.
Si la seccin a escribir ya existe, el contenido ser sobrescrito.

Relativo
IniDelete, IniRead, IniReadSection, IniReadSectionNames, IniWrite, IniRenameSection

Ejemplo
; ste es el archivo INI al que escribiremos. Ser creado en el Desktop (escritorio).
$sIni = @DesktopDir & "\[Link]"
; Demuestra la creacin de una nueva seccin usando una cadena como estrada.
$sData = "Key1=Valor1" & @LF & "Key2=Valor2" & @LF & "Key3=Valor3"
IniWriteSection($sIni, "Seccin1", $sData)
; Demuestra la creacin de una nueva seccin usando un arreglo como entrada.
$aData1 = IniReadSection($sIni, "Seccin1") ; Leer lo que escribimos justamente arriba
For $i = 1 To UBound($aData1) - 1
$aData1[$i][1] &= "-" & $i ; Cambia los datos un poco
Next
IniWriteSection($sIni, "Seccin2", $aData1) ; Escribe una nueva seccin
; Demuestra la creacin de un arreglo de forma manual y usarlo como entrada.

Dim $aData2[3][2] = [ [ "PrimeraClave", "PrimeraValor" ], [ "SegundaClave", "SegundoValor" ],


[ "TerceraClave", "TercerValor" ] ]
;Puesto que el arreglo esta echo para iniciar en el elemento 0, nececitamos IniWriteSection()
para iniciar la escritura en el elemento 0.
IniWriteSection($sIni, "Seccin3", $aData2, 0)

230

Referencia de Funciones de Grfico y Sonido


A continuacin se muestra una lista completa de las funciones de Funciones de Grfico y
Sonido disponibles en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.

Funcin

Descripcin

Beep

Emite un sonido por el altavoz del sistema para el usuario.

PixelChecksum

Genera una suma de verificacin(checksum) para una regin de


pixeles.

PixelCoordMode
(Option)

establece la forma en que son utilizadas las coordenadas en funciones


de pxel, ya sea para coordenadas absolutas o relativas a la ventana
definida por hwnd [apuntador interno](por defecto la ventana activa):

PixelGetColor

Devuelve el color de un pixel de acuerdo a las coordenadas x,y del


pixel.

PixelSearch

Busca un rectngulo de pixeles el color de pixel especificado.

SoundPlay

Ejecuta un archivo de sonido.

SoundSetWaveVolume Establece el volumen de onda del sistema por porcentaje.

Beep
Emite un sonido por el altavoz del sistema para el usuario.
Beep ( [ frecuencia [, duracin ]] )
Parmetros
frecuencia

[opcional] La frecuencia del sonido en hertz. Puede ser cualquiera de 37 hasta

231

32,767 (0x25 y 0x7FFF). Por defecto es 500 Hz.


duracin

[opcional] La duracin del sonido en milisegundos. Por defecto = 1000 MS.

Valor de Retorno
Siempre devuelve 1 indistintamente de la operacin.

Comentarios
Ninguno

Relativo
SoundPlay

Ejemplo
; emite un solido , de frecuencia 500 por 1 segundo
Beep(500, 1000)

PixelChecksum
Genera una suma de verificacin (checksum), para una regin de pixeles.
PixelChecksum ( izquierda, superior, derecha, inferior [, paso [, hwnd [, modo]]] )
Parmetros
izquierda

coordenada izquierda de rectngulo.

superior

coordenada superior de rectngulo.

derecha

coordenada derecha de rectngulo.

inferior

coordenada inferior de rectngulo.

paso

[opcional] En lugar de suma de verificacin(checksum) de cada pxel usa un


valor mayor que 1 para obviar pixeles (para velocidad). Ejem. Un valor de 2
solamente revisar cada 2 pixeles. Por defecto es 1. No es recomendado para
232

usar un paso valor mayor que 1.


hwnd

[opcional] Apuntador de Ventana a ser usada.

modo

[opcional] Por defecto 0 ADLER checksum, 1 CRC32 Checksum.

Valor de Retorno
Con xito:

Devuelve el valor checksum de la regin.

Al Fallar:

Devuelve 0.

Comentarios
La suma de verificacin(checksum) solamente le permite ver si "algo" ha cambiado en una
regin - no le informa que ha cambiado exactamente.
Versiones previas fueron extremadamente lentas, sin embargo ahora la funcin es
significativamente veloz. Usando el paso de parmetro no es ms recomendado. El
rendimiento ganado de usar un paso grande no es cercanamente como notable desde que la
funcin ya es veloz con todo. Tambin, un paso de mayor valor, es menos fiable en la suma de
verificacin (checksum) cuando viene a usarse para detectar pequeos cambios en una regin.
El checksum CRC32 es mucho ms lento que ADLDER pero detecta mejor las variaciones de
pixel.

Relativo
PixelGetColor, PixelCoordMode (Option), PixelSearch

Ejemplo
; Espera que algo cambie en la regin 0,0 a 50,50
; Obtiene el checksum inicial
$checksum = PixelChecksum(0,0, 50,50)
; Espera a que la regin cambie, la regin es revisada cada 100ms para reducir la carga de CPU
While $checksum = PixelChecksum(0,0, 50, 50)
Sleep(100)
WEnd
MsgBox(0, "", "Algo en la regin ha cambiado!")

233

PixelCoordMode

Establece la forma en que son utilizadas las coordenadas en funciones de pxel, ya sea para
coordenadas absolutas o relativas a la ventana definida por hwnd [apuntador interno](por
defecto la ventana activa):
0 = coordenadas relativas a la ventana actual.
1 =coordenadas absolutas a la pantalla (por defecto).
2 = coordenadas relativas a la ventana cliente de la ventana actual.
PixelGetColor

Devuelve el color de un pixel de acuerdo a las coordenadas x,y del pixel.


PixelGetColor ( x , y [, hwnd] )
Parmetros
x

coordenada x del pixel.

coordenada y del pixel.

hwnd

[opcional] Apuntador de Ventana a ser usado.

Valor de Retorno
Con xito:

Devuelve decimal valor de pixeles color.

Al Fallar:

Devuelve -1 si las coordenadas son invlidas.

Comentarios
Ninguno.

Relativo
PixelSearch, PixelCoordMode (Option), MouseGetPos, PixelChecksum

Ejemplo
$var = PixelGetColor( 10 , 100 )
234

MsgBox(0,"El color decimal es", $var)


MsgBox(0,"El color hexadecimal es", Hex($var, 6))

PixelSearch
Busca un rectngulo de pixeles el color de pixel especificado.
PixelSearch ( izquierda, superior, derecha, inferior, color [, variacin-tono [, paso [, hwnd]]] )

Parmetros
izquierda

coordenada izquierda del rectngulo.

superior

coordenada superior del rectngulo.

derecha

coordenada derecha del rectngulo.

inferior

coordenada inferior del rectngulo.

color

Color de pixel a buscar (en decimal o hexadecimal)

variacintono

[opcional] Un nmero entre 0 y 255 para indicar el nmero permitido de tonos


de variacin de rojo, verde, y azul con los componentes del color. Por defecto es
0 (coincidencia exacta)

paso

[opcional] En lugar de buscar cada pixel usar un valor mayor que 1 para obviar
pixeles (para velocidad). Ejem. A valor de 2 solamente revisar cada 2 pixeles.
Por defecto es 1.

hwnd

[opcional] Apuntador de Ventana para ser usado.

Valor de Retorno
Con xito:

Devuelve a dos-elementos arreglo de coordenadas del pixel. (Arreglo[0] = x,


Arreglo[1] = y).

Al Fallar:

Establece @error a 1 si el color no es encontrado.

Comentarios
La direccin de bsqueda se realiza como sigue:
235

Izquierda a derecha - izquierda < derecha


Derecha a izquierda - derecha < izquierda
Arriba a abajo - arriba < abajo
Abajo a arriba -abajo < arriba
Cambiar la direccin de bsqueda resulta muy til si el color a buscar aparece en un cuadrante
espesfico del rea de bsqueda.
Recuerde, una tpica pantalla normal a 1024 x 768 tiene 786432 pixeles. Aunque PixelSearch es
optimizado, reduciendo el rea de bsqueda ayuda a mejorar la velocidad del resultado.

Relativo
PixelChecksum, PixelGetColor, PixelCoordMode (Option)

Ejemplo
; Busca el pixel de rojo puro en el rango 0,0-20,300
$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000 )
If Not @error Then
MsgBox(0, "X y Y son:", $coord[0] & "," & $coord[1])
EndIf

; Busca el pixel de rojo puro dentro de 10 variaciones de rojo puro


$coord = PixelSearch( 0, 0, 20, 300, 0xFF0000, 10 )
If Not @error Then
MsgBox(0, "X y Y son:", $coord[0] & "," & $coord[1])
EndIf

SoundPlay
Ejecuta un archivo de sonido.
SoundPlay ( "nombre de archivo" [, esperar] )
Parmetros
nombre de
archivo

Nombre del archivo a ser ejecutado (tpicamente un archivo WAV o MP3)

236

esperar

[opcional] Este flag determina si el script deber esperar que el sonido finalice
para continuar o que contine el script:
1 = esperar hasta que el sonido haya finalizado
0 = continua el script mientras el sonido est ejecutndose (predeterminado)

Valor de Retorno
Ninguno. (Siempre devuelve 1 independientemente de su xito)

Comentarios
Terminando el script detendr el sonido (si an estuviese sonando).
Llamar SoundPlay("") puede ser usado para detener un sonido que actualmente est siendo
escuchado. Esto tambin tiene el efecto de cerrar el apuntador del sonido abierto.
Si usted necesita eliminar un archivo de sonido el cual se est ejecutando en el script, usted
debera llamar primero SoundPlay("") para asegurarse que el apuntador del sonido est
cerrado.

Relativo
SoundSetWaveVolume, Beep

Ejemplo
SoundPlay(@WindowsDir & "\media\[Link]",1)

SoundSetWaveVolume
Establece el volumen de onda del sistema por porcentaje.
SoundSetWaveVolume ( por ciento )
Parmetros
porcentaje

porcentaje entre 0 y 100

237

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0 y establece el valor de @error en 1 si el por ciento es invlido.

Comentarios

Este controla el volumen de Onda, no el volumen maestro. Un valor de cero no enmudece el


audio.
En Windows Vista, no existe volumen de onda. Esta funcin solo cambia el volumen maestro
para el script. Esto puede no ser usado para cambiar el volumen maestro de otros programas.

Relativo
SoundPlay

Ejemplo
SoundSetWaveVolume(50)

238

Referencia de Administracin de GUI


A continuacin se muestra una lista completa de las funciones de Administracin de GUI
disponibles en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.
Funcin

Descripcin

GUICtrlCreateAvi

Crea un control "avi de video" en el GUI.

GUICtrlCreateButton

Crea un control Botn en el GUI.

GUICtrlCreateCheckbox

Crea un control de caja de chequeo (Checkbox) en el GUI.

GUICtrlCreateCombo

Crea un control ComboBox en el GUI.

GUICtrlCreateContextMenu

Crea un men contextual para un control o una ventana GUI


entera.

GUICtrlCreateDate

Crea un control de fecha en la GUI.

GUICtrlCreateDummy

Crea un control Dummy en la GUI.

GUICtrlCreateEdit

Crea un control Edit en la GUI.

GUICtrlCreateGraphic

Crea un control Graphic en la GUI.

GUICtrlCreateGroup

Crea un control de Grupo en la GUI.

GUICtrlCreateIcon

Crea un control Icono en la GUI.

GUICtrlCreateInput

Crea un control Input en la GUI.

GUICtrlCreateLabel

Crea un control de etiqueta esttica en la GUI.

GUICtrlCreateList

Crea un control List en la GUI.

GUICtrlCreateListView

Crea un control ListView en la GUI.

GUICtrlCreateListViewItem

Crea un item en un control ListView.

GUICtrlCreateMenu

Crea un control Menu en la GUI.

GUICtrlCreateMenuItem

Crea un control MenuItem en la GUI.

GUICtrlCreateMonthCal

Crea un control de calendario para el GUI.

239

GUICtrlCreateObj

Crea un control ActiveX en la GUI.

GUICtrlCreatePic

Crea un control de Imagen para el GUI.

GUICtrlCreateProgress

Crea un control de barra de progreso en la GUI.

GUICtrlCreateRadio

Crea un control botn de Radio en la GUI.

GUICtrlCreateSlider

Crea un control Slider en la GUI.

GUICtrlCreateTab

Crea un control de Tab en la GUI.

GUICtrlCreateTabItem

Crea un control TabItem en la GUI.

GUICtrlCreateTreeView

Crea un control TreeView en la GUI.

GUICtrlCreateTreeViewItem

Crea un control TreeViewItem en la GUI.

GUICtrlCreateUpdown

Crea un control UpDown en la GUI.

GUICtrlDelete

Elimina un control.

240

Referencia de Administracin del Teclado


A continuacin se muestra una lista completa de las funciones de Administracin del Teclado
disponibles en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.
Funcin

Descripcin

HotKeySet

Establece el mtodo de teclado para una funcin de usuario


determinada.

Send

Enva pulsaciones simuladas de teclas a la ventana activa.

SendAttachMode
(Option)

Especifica si AutoIt adjunta las entradas cuando es usada la funcin


Send().Cuando no estn adjuntas (por defecto=0) detectando el
estado de capslock/scrolllock y numlock pueda ser poco confiables en
Windows NT4. Sin embargo, cuando especificas y adjunta modo=1 la
sintaxis Send("{... down/up}") no trabajar y haya tal vez problemas
enviando teclas a una ventana "colgada". ControlSend() SIEMPRE
adjunta y no es afectada por este modo.

SendCapslockMode
(Option)

Especifica si AutoIt debera almacenar el estado de capslock antes de


una funcin Send y lo restaura posteriormente.

SendKeepActive

Intenta mantener activa una ventana especifica durante Send().

SendKeyDelay
(Option)

Altera la duracin de brevedad entre envos de teclas. Un valor de 0


remueve la espera completamente.

SendKeyDownDelay
(Option)

Altera la duracin de tiempo entre el momento que una tecla est


presionada antes de liberarla. Para aplicaciones es necesitado el
registrar las teclas presionadas (y en muchos juegos) tal vez necesite
aumentar este valor del que viene por defecto. Un valor de 0 remueve
la espera completamente.

HotKeySet
Establece el mtodo de teclado para una funcin de usuario determinada.
HotKeySet ( "tecla" [, "funcin"] )

241

Parmetros
tecla

La combinacin de tecla utilizado en el mtodo de teclado. algn formato como


en Send().

funcin

[opcional] El nombre de la funcin a invocar cuando la tecla es presionada. Si no


se especifica este parmetro el mtodo de teclado definido se deshabilita.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0.

Comentarios
Si dos script de Autoit utilizan el mismo mtodo de teclado, usted debera evitar correr ambos
scripts simultneamente. (El segundo script ejecutado no podr capturar el mtodo de teclado
a menos que el primer script termine o deshabilite el mtodo de teclado alterando el segundo
parmetro de la funcin: ponindolo a "")
Cuando se activa un mtodo de teclado "tpicamente" el script de Autoit se interrumpe, e
invoca a la funcin de usuario, hasta que esta es completada o interrumpida. Las excepciones
son las siguientes:
1) Si la funcin actual es una funcin de "bloqueo, entonces el mtodo de teclado es detenido
y no es ejecutado hasta tanto la funcin de bloqueo finalice. MsgBox y FileSelectFolder son
ejemplo de funciones de bloqueo. Pruebe el comportamiento de Shift-Alt-d en el Ejemplo.
2) Si usted tiene el script pausado por un evento clic sobre el icono de la barra de tareas,
cualquier mtodo de teclado invocado durante esta pausa es ignorado.
Los siguientes mtodos de teclados no pueden ser establecidos:
Ctrl+Alt+Delete

Este es reservado por Windows.

F12

Este es tambin reservado por Windows, en correspondencia con una


API.

NumPad's Enter Key

En su lugar, use {Enter} que captura ambas teclas Enter del teclado.

Win+B,D,E,F,L,M,R,U;
y Win+Shift+M

Esto es un acceso directo intrnseco de Windows. Nota: Win+B y


Win+L pueden ser reservados solamente para Windows XP y superior.

Alt, Ctrl, Shift, Win

Estas se reservan de manera intrnseca!

Otros

Cualquier otro mtodo de teclado general es ajustado por va


Software, cualquier conjunto de dos o ms "teclas de base" tales como
242

'{F1}{F2}', y cualquier tecla de la forma '{LALT}' o '{ALTDOWN}'.

Cuando usted establece un mtodo de teclado, AutoIt captura las teclas presionadas y la pasa
a la aplicacin activa, con una excepcin: Las teclas de bloqueo (NumLock, CapsLock, y
ScrollLock) Todas actan segn su condicin respectiva!
Para la funcin Send() una combinacin de teclas desencadena un evento HotKeySet(), puede
usar cualquiera de los dos: ControlSend() o inhabilitar el evento HotKeySet(), de otro modo, el
evento Send() puede desencadenar un ciclo infinito.
; captura y pasa las teclas presionadas
HotKeySet("{Esc}", "captureEsc")
Func captureEsc()
; ... puede colocar cdigo aqu
HotKeySet("{Esc}")
Send("{Esc}")
HotKeySet("{Esc}", "captureEsc")
EndFunc
La funcin llamada puede NO tener parmetros. Estos sern ignorados.
La macro @HotKeyPressed puede ser utilizado dentro de la funcin para indicar varias teclas
en la misma funcin.

Relativo
Send, GUISetAccelerators

Ejemplo
; Presione Esc para terminar el script, Pausa/interrumpir para "pausar"
Global $Paused
HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!d", "ShowMessage") ;Shift-Alt-d
;;;; Cuerpo del programa va aqu ;;;;
While 1
Sleep(100)
WEnd
;;;;;;;;
Func TogglePause()
$Paused = NOT $Paused
While $Paused
243

sleep(100)
ToolTip('Script es "Pausado"',0,0)
WEnd
ToolTip("")
EndFunc
Func Terminate()
Exit 0
EndFunc
Func ShowMessage()
MsgBox(4096,"","Esto es un mensaje.")
EndFunc

Send
Enva pulsaciones simuladas de teclas a la ventana activa.
Send ( "teclas" [, bandera] )
Parmetros
teclas

La secuencia de teclas a enviar.

bandera

[opcional] Cambia como las "teclas" son procesadas:


bandera = 0 (por defecto), Texto contiene caracteres especiales como + y ! para
indicar las teclas de SHIFT y ALT presionadas.
bandera = 1, teclas son enviadas en modo sin procesar (raw)

Valor de Retorno
Ninguno.

Comentarios
Ver el Apndice para algunos consejos usando Send. AutoIt puede enviar todo los caracteres
ASCII y ASCII Extendido (0-255), para enviar caracteres UNICODE se debe usar la opcin "ASC"
y el cdigo del carcter que se desea enviar (ver {ASC} a final de la tabla de abajo).
La sintaxis del comando "Send" es similar a la de ScriptIt y en Visual Basic el comando
"SendKeys". Los caracteres son enviados como son escritos con la excepcin de los siguientes
caracteres:
'!'
244

Este le dice a AutoIt que enve una tecla ALT, por tanto Send("Este es un texto!a") enviara la
teclas "Este es un texto" y luego presionara "ALT+a".
Nota: Algunos programas son muy selectivos sobre letras maysculas y teclas ALT, por ej. "!A"
es diferente a "!a". El primero dice ALT+SHIFT+A, el segundo es ALT+a. En caso de duda, utilice
minsculas!
'+'
Este le dice a AutoIt que enve la tecla SHIFT, por tanto Send("Hell+o") enviara el texto
"HellO". Send("!+a") enviara "ALT+SHIFT+a".
'^'
Este le dice a AutoIt que enva la tecla CONTROL, por tanto Send("^!a") enviara "CTRL+ALT+a".
Nota: Algunos programas son muy selectivos sobre letras maysculas y teclas CTRL, por ej.
"^A" es diferente a "^a". El primero dice CTRL+SHIFT+A, el segundo es CTRL+a. En caso de
duda, utilice minsculas!
'#'
La representacin del signo almohadilla o numeral enva la tecla de Windows(logo de
Windows); por tanto, Send("#r") enviara Win+r que abre la caja de dilogo de "Ejecutar" o su
equivalente en ingls, "Run".
Usted puede establecer SendCapslockMode para desactivar CAPS LOCK al iniciar una operacin
Send y restaurarlo al completar la operacin.
Sin embargo, si un usuario presiona la tecla Shift cuando una funcin de Send inicia, el texto
puede ser enviado en mayscula.
Una solucin es enviar a Send("{SHIFTDOWN}{SHIFTUP}") antes que otras operaciones de
Send.
Ciertos teclados como el Checo enva los caracteres de forma diferente cuando usando la tecla
Shift o siendo que CAPS LOCK est activo y enviando un carcter. Dado que la implementacin
de envo de AutoIt, el CAPS LOCK ser enviado como que si estuviese activo, as que SHIFT no
trabajar.
Ciertas teclas especiales pueden ser enviadas y deberan ser encerradas en llaves ("{" y "}"):
Nota: Windows no permite la simulacin de la combinacin de "CTRL-ALT-DEL"!
Comando Send(si la bandera est
en cero)

Teclas Presionadas

{!}

245

{#}

{+}

{^}

{{}

{}}

{SPACE}

SPACE

{ENTER}

ENTER tecla principal en el teclado

{ALT}

ALT

{BACKSPACE} o {BS}

BACKSPACE

{DELETE} o {DEL}

DELETE

{UP}

Flecha Arriba

{DOWN}

Flecha Abajo

{LEFT}

Flecha Izquierda

{RIGHT}

Flecha Derecha

{HOME}

HOME

{END}

END

{ESCAPE} o {ESC}

ESCAPE

{INSERT} o {INS}

INS

{PGUP}

RePg (PageUp)

{PGDN}

AvPg (PageDown)

{F1} - {F12}

Teclas de Funciones

{TAB}

TAB

246

{PRINTSCREEN}

Tecla Impr pant (Print Screen)

{LWIN}

Tecla Izquierda de Windows

{RWIN}

Tecla Derecha de Windows

{NUMLOCK on}

NUMLOCK (on/off/toggle)

{CAPSLOCK off}

CAPSLOCK (on/off/toggle)

{SCROLLLOCK toggle}

SCROLLLOCK (on/off/toggle)

{BREAK}

para procesar Ctrl+Break

{PAUSE}

PAUSE

{NUMPAD0} - {NUMPAD9}

Dgitos del Numpad

{NUMPADMULT}

Multiplicador del Numpad

{NUMPADADD}

Numpad Agregar

{NUMPADSUB}

Numpad Sustraer

{NUMPADDIV}

Numpad Dividir

{NUMPADDOT}

Numpad punto

{NUMPADENTER}

Tecla Enter en el numpad

{APPSKEY}

Tecla de Aplicaciones de Windows

{LALT}

Tecla Izquierda de ALT

{RALT}

Tecla Derecha de ALT

{LCTRL}

Tecla Izquierda de CTRL

{RCTRL}

Tecla Derecha de CTRL

{LSHIFT}

Tecla Izquierda de Shift

{RSHIFT}

Tecla Derecha de Shift

247

{SLEEP}

Tecla SLEEP

{ALTDOWN}

Mantiene abajo la tecla ALT hasta que {ALTUP} es


enviado

{SHIFTDOWN}

Mantiene abajo la tecla de SHIFT hasta que {SHIFTUP} es


enviado

{CTRLDOWN}

Mantiene abajo la tecla de CTRL hasta que {CTRLUP} es


enviado

{LWINDOWN}

Mantiene abajo la tecla izquierda de Windows hasta que


{LWINUP} es enviado

{RWINDOWN}

Mantiene abajo la tecla derecha de Windows hasta que


{RWINUP} es enviado

{ASC nnnn}

Enva la combinacin de tecla de ALT+nnnn

{BROWSER_BACK}

2000/XP Solamente: Selecciona en el navegador la tecla


de "retroceder"

{BROWSER_FORWARD}

2000/XP Solamente: Selecciona en el navegador la tecla


de "adelantar"

{BROWSER_REFRESH}

2000/XP Solamente: Selecciona en el navegador la tecla


de "refrescar"

{BROWSER_STOP}

2000/XP Solamente: Selecciona en el navegador la tecla


de "detener"

{BROWSER_SEARCH}

2000/XP Solamente: Selecciona en el navegador la tecla


de "buscar"

{BROWSER_FAVORITES}

2000/XP Solamente: Selecciona en el navegador la tecla


de "favoritos"

{BROWSER_HOME}

2000/XP Solamente: Abre el navegador y se dirige a la


pgina inicial o home

{VOLUME_MUTE}

2000/XP Solamente: Enmudece el volumen general

{VOLUME_DOWN}

2000/XP Solamente: Reduce el volumen

248

{VOLUME_UP}

2000/XP Solamente: Incrementa el volumen

{MEDIA_NEXT}

2000/XP Solamente: Selecciona la prxima pista en el


reproductor de medios

{MEDIA_PREV}

2000/XP Solamente: Selecciona la pista anterior en el


reproductor de medios

{MEDIA_STOP}

2000/XP Solamente: Detiene la ejecucin del


reproductor de medios

{MEDIA_PLAY_PAUSE}

2000/XP Solamente: Ejecuta/pausa el reproductor de


medios

{LAUNCH_MAIL}

2000/XP Solamente: Ejecuta la aplicacin de correo

{LAUNCH_MEDIA}

2000/XP Solamente: Ejecuta el reproductor de medios

{LAUNCH_APP1}

2000/XP Solamente: Ejecuta usuario app1

{LAUNCH_APP2}

2000/XP Solamente: Ejecuta usuario app2

Para enviar el valor ASCII de A (igual que presionar ALT+065 en el teclado numrico)
Send("{ASC 065}")
(Cuando son usados 2 dgitos de cdigo ASCII debe insertarse un 0, de otro modo un cdigo
obsoleto 437 es usado).
Para enviar los caracteres UNICODE introducir el cdigo del carcter (decimal o hex), por
ejemplo este enva un carcter chino
Send("{ASC 2709}") o Send("{ASC 0xA95}")
Teclas sencillas pueden ser repetidas , ejemplo:
Send("{DEL 4}") ;Presiona la tecla DEL (Eliminar) 4 veces
Send("{S 30}") ;Enva 30 caracteres 'S'
Send("+{TAB 4}") ;Presiona la combinacin SHIFT+TAB 4 veces
El tecla ser enviada al menos una vez si el contador es cero.
Para mantener una tecla presionada hacia abajo (por lo general es til solamente para juegos)
Send("{a down}") ;Presiona la tecla A
Send("{a up}") ;Libera la tecla A
Para establecer el estado de las teclas capslock, numlock y scrolllock
249

Send("{NumLock on}") ;Activa la tecla NumLock


Send("{CapsLock off}") ;Desactiva la tecla CapsLock
Send("{ScrollLock toggle}") ;Alterna el estado de ScrollLock
Si usted desea usar una variable para el contador, intentar
$n = 4
Send("+{TAB " & $n & "}")
Si usted desea enviar el valor ASCII de A cuatro veces, entonces intente
$x = Chr(65)
Send("{" & $x & " 4}")

Muchas computadoras porttiles tienen una tecla especial Fn. Esta tecla no puede ser
simulada.
Nota, al colocar la bandera parmetro a 1 por encima de "especial" de procesamiento ser
desactivado. Este es til cuando usted desea enviar algunos textos copiados de una variable y
usted quiere enviar el texto exactamente como fue escrito.
Para ejemplo, abrir Opciones de Carpeta (en el Panel de Control) e intentar lo siguiente:
Send("{TAB}")

Navega el prximo control (botn, checkbox, etc)

Send("+{TAB}")

Navega el control previo.

Send("^{TAB}")

Navega a travs de las pestaas

Send("^+{TAB}")

Navega a travs de las pestaas anteriores.

Send("{SPACE}")

Puede ser usado para alternar un checkbox o pulsar un botn.

Send("{+}")

Usualmente marca un checkbox (si es un checkbox "real".)

Send("{-}")

Usualmente desmarca un checkbox.

Send("{NumPadMult}")

Recursivamente expande carpetas en un SysTreeView32.

Use las combinaciones de tecla Alt para acceder a los tems de mens. Tambin, puede abrir
Notepad e intentar lo siguiente:
Send("!a") Send Alt+a, al acceder va tecla al men de "Archivo". Intente otras letras!
Send("{DOWN}")

Despliega hacia abajo el men.

250

Send("{UP}")

Despliega hacia arriba dentro de un men.

Send("{LEFT}")

Se desplaza hacia la izquierda o expande un submen.

Send("{RIGHT}")

Se desplaza hacia la derecha a un nuevo men o colapsa un submen.

Para ver la ayuda de Windows presionar Win+F1--para una lista completa de accesos de
teclado si usted no conoce la importancia de Alt+F4, PrintScreen, Ctrl+C, y otros.
Cuando se est ejecutando un script en una computadora remota a travs de un programa
como psexec ([Link]) o beyondexec ([Link]) es necesario,
especialmente cuando se envan teclados a un programa Ejecuta por el script con una funcin
Run, para usar ControlSend u otras funciones de ControlXXX para comunicar directamente con
el control. Aun enviando con Opt("SendAttachMode",1) no trabaja.
Usar el modo -s para cuando se quiere tener mejores derechos en la computadora remota.
Opt("SendKeyDelay",...) altera la longitud de la breve pausa entre teclas enviadas.
Opt("SendKeyDownDelay",...) altera la longitud de tiempo a una tecla presionada antes de que
sea liberada.
Establezca "SendKeyDelay" y "SendKeyDownDelay" a 0 para remover todas las esperas en los
envos de teclas. Esto puede ser requerido bajo ciertas circunstancias, por ejemplo, cuando
abra el sistema ("#l") esto puede ser necesario para remover la espera en orden para prevenir
que la tecla WIN sea oprimida.

Relativo
SendAttachMode (Option), SendKeepActive, SendKeyDelay (Option), SendKeyDownDelay
(Option), ControlSend, BlockInput, HotKeySet, WinMenuSelectItem

Ejemplo
Send("#r")
WinWaitActive("Run")
Send("[Link]{Enter}")
WinWaitActive("[CLASS:Notepad]")
Send("La fecha/hora es {F5}")

SendAttachMode
Especifica si AutoIt adjunta las entradas cuando es usada la funcin Send().Cuando no
estn adjuntas (por defecto=0) detectando el estado de capslock/scrolllock y numlock
pueda ser poco confiables en Windows NT4. Sin embargo, cuando especificas y adjunta
251

modo=1 la sintaxis Send("{... down/up}") no trabajar y haya tal vez problemas


enviando teclas a una ventana "colgada". ControlSend() SIEMPRE adjunta y no es
afectada por este modo.
0 = no adjunta (por defecto)
1 = adjunta

SendCapslockMode
Especifica si AutoIt debera almacenar el estado de capslock antes de una funcin Send
y lo restaura posteriormente.
0 = no almacena/restaura
1 = almacena y restaura (por defecto)

SendKeepActive
Intenta mantener activa una ventana especifica durante Send().
SendKeepActive ( "ttulo" [, "texto"] )
Parmetros
ttulo

El ttulo de la ventana a activar. Ver definiciones especiales de ttulos. Usar un


ttulo en blanco para desactivar la funcin.

texto

[opcional] El texto de la ventana.

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0 si la ventana no es encontrada.

Comentarios
Intenta reiniciar la ventana activa entre cada tecla simulada de Send().

Relativo
Send

Ejemplo
Run("[Link]")
252

WinWait("[CLASS:Notepad]")
SendKeepActive("[CLASS:Notepad]")
; Cambia la ventana activa mientras pausa
For $i = 1 to 10
Sleep(1000)
Send("Hola")
Next

SendKeyDelay
Altera la duracin de brevedad entre envos de teclas. Un valor de 0 remueve la espera
completamente.

SendKeyDownDelay
Altera la duracin de tiempo entre el momento que una tecla est presionada antes de
liberarla. Para aplicaciones es necesitado el registrar las teclas presionadas (y en
muchos juegos) tal vez necesite aumentar este valor del que viene por defecto. Un
valor de 0 remueve la espera completamente.

253

FUNCIONES MATEMTICAS
A continuacin se muestra una lista completa de las funciones de Funciones Matemticas
disponibles en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.

Funcin

Descripcin

Abs

Calcula el valor absoluto de un nmero.

ACos

Calcula el arco coseno de un nmero.

ASin

Calcula el arco seno de un nmero.

ATan

Calcula el arco tangente de un nmero.

BitAND

Realiza una operacin AND a nivel de bit.

BitNOT

Realiza una operacin NOT a nivel de bit.

BitOR

Realiza una operacin OR a nivel de bit.

BitRotate

Realiza una operacin de alternacin de bit, con rotacin.

BitShift

Realiza una operacin de alternacin de bit.

BitXOR

Realiza una operacin OR exclusiva (XOR) a nivel de bit.

Cos

Calcula el coseno de un nmero.

Ceiling

Devuelve un nmero redondeado por encima del prximo entero.

Exp

Calcula la potencia e de un nmero.

Floor

Devuelve un nmero por debajo del entero ms prximo.

Log

Calcula el logaritmo natural de un nmero.

254

Mod

Ejecuta una operacin de mdulo.

Random

Genera un nmero seudo-aleatorio del tipo flotante.

Round

Devuelve un nmero redondeado a un nmero determinado de cifras


decimales.

Sin

Calcula el seno de un nmero.

Sqrt

Calcula la raz cuadrada de un nmero.

SRandom

Establece un semilla para la generacin de nmeros aleatorios.

Tan

Calcula la tangente de un nmero.

Abs
Calcula el valor absoluto de un nmero.
Abs (expresin)
Parmetros
expresin

Cualquier expresin numrica vlida.

Valor de Retorno
Devuelve el valor absoluto de expresin.
Comentarios
Una cadena puede tener valor cero.
Relativo
Ninguno.
Ejemplo

$var = Abs(-123.45) ;valor 123.45

255

ACos
Calcula el arco coseno de un nmero.
ACos ( expresin )
Parmetros
expresin

Cualquier valor entre -1 y 1 inclusive.

Valor de Retorno
Devuelve el arco coseno trigonomtrico de expresin. Resultado en radianes.

Comentarios
ACos(x) es matemticamente definido entre -1 < x < 1, por eso ACos tiende a devolver -1.#IND
para otros valores de x.

Relativo
Sin, Cos, Tan, ASin, ATan

Ejemplo
$x = ACos(0.5)
$pi = 3.14159265358979
$radToDeg = 180 / $pi
$y = ACos(-1) * $radToDeg ;arcCosine de -1 retorna 180

ASin
Calcula el arco seno de un nmero.
ASin ( expresin )
Parmetros
expresin

Cualquier valor entre -1 y 1 (inclusive).


256

Valor de Retorno
Devuelve el arco seno trigonomtrico de expresin. Resultados en radianes.

Comentarios
ASin(x) es matemticamente definido para valores entre -1 < x < 1, por eso ASin tiende a
devolver -1.#IND para otros valores de x.

Relativo
Sin, Cos, Tan, ACos, ATan

Ejemplo
$x = ASin(0.5)
$pi = 3.14159265358979
$radToDeg = 180 / $pi
$y = ASin(1) * $radToDeg ;arcsine de 1 retorna 90

ATan
Calcula el arco tangente de un nmero.
ATan ( expresin )
Parmetros
expresin

Cualquier expresin numrica vlida.

Valor de Retorno
Devuelve el arco tangente trigonomtrico de expresin. Resultados en radianes.

Comentarios
El resultado de 4 * ATan(1) es pi.

Relativo
Sin, Cos, Tan, ASin, ACos
257

Ejemplo
$x = ATan(0.5)
$pi = 4 * ATan(1) ;igual a 3.14159265358979
$radToDeg = 180 / $pi
$y = ATan(1) * $radToDeg ;arctangent de 1 retorna 45

BitAND
Realiza una operacin AND a nivel de bit.
BitAND ( valor1, valor2 [, valor n] )
Parmetros
valor1

El primer nmero.

valor2

El segundo nmero.

valor n

[opcional] El ensimo nmero - como mximo 255 valores puede ser


especificado.

Valor de Retorno
Devuelve el valor de la operacin AND.
Operaciones de Bit son ejecutdas coomo enteros de 32-bit.

Comentarios
Recuerde que la notacin hexadecimal puede ser utilizado.
BitAND devuelve 1 en cada posicin de bit donde todos los argumentos son 1 en la posicin
correspondiente y 0 en todas las dems.

Relativo
BitNOT, BitOR, BitShift, BitXOR, Hex, BitRotate

Ejemplo
258

$x = BitAND(13, 7) ;x == 5 pues 1101 AND 0111 = 0101


$x = BitAND(2, 3, 6) ;x == 2 pues 0010 AND 0011 AND 0110 = 0010

BitNOT
Realiza una operacin NOT a nivel de bit.
BitNOT (valor)
Parmetros
valor

El nmero para operar.

Valor de Retorno
Devuelve el valor NOT de la operacin.
Operaciones con bit se realizan con enteros de 32-bit.

Comentarios
Recuerde que la notacin hexadecimal puede ser utilizada.
Recuerde que en la notacin de 2do complemento, BitNOT es funcionalmente equivalente a
adicionar 1 y negar el resultado.
Tambin recuerde que NOT cambia a 0 bit un 1 y viceversa.

Relativo
BitAND, BitOR, BitShift, BitXOR, Hex, BitRotate

Ejemplo
$x = BitNot(5)
#cs Comments:
Resultado -6 pues para nmeros de 32-bit
5 == 00000000000000000000000000000101 binary
-6 == 11111111111111111111111111111010 binary
y el primer bit es sealado
#ce
259

BitOR
Realiza una operacin OR a nivel de bit.
BitOR ( valor1, valor2 [, valor n] )
Parmetros
valor1

El primer nmero.

valor2

El segundo nmero.

valor n

[opcional] El ensimo nmero - como mximo 255 valores puede ser


espesificado.

Valor de Retorno
Devuelve los dos valores de la operacin OR juntos.
Operaciones con bit se realizan con enteros de 32-bit.

Comentarios
Recuerde que la notacin hexadecimal puede ser utilizada.
BitOR devuelve 0 en cada posicin de bit donde todos los argumentos de entrada tienen 0 en
la posicin correspondiente y 1 viceversa.

Relativo
BitAND, BitNOT, BitShift, BitXOR, Hex, BitRotate

Ejemplo
$x = BitOR(3, 6) ;x == es 7 pues 0011 OR 0110 = 0111
$x = BitOR(3, 15, 32) ;x == 47 pues 0011 OR 1111 OR 00100000 = 00101111

BitRotate
Realiza una operacin de alternacin de bit, con rotacin.
260

BitRotate ( valor , alternacin [, tamao] )


Parmetros
valor

El nmero para ser operado.

alternacin

Nmero de bit para rotar a la izquierda(nmero negativos alternan a la


derecha). Si no es dado, el predefinido es 1.

tamao

[opcional] Una cadena que determina el tamao de la rotacin, el predefinido


es (16 bits). Ver ms abajo.

parmetro Tamao:
"B"

Rota bits dentro del byte de orden inferior (8 bits).

"W"

Rota bits dentro de la palabra de orden inferior (16 bits).

"D"

Rota bits dentro de la doble palabra entera (32 bits).

Valor de Retorno
Con xitos:

Devuelve el valor rotado por el nmero de bits requeridos.

Al Fallar:

Establece @error si el tamao es invlido.

Operaciones de bit son realizadas con enteros de 32-bit.


Comentarios
Recuerde que la notacin hexadecimal puede ser utilizada.
Relativo
BitShift, BitAND, BitNOT, BitOR, BitXOR, Hex
Ejemplo
$x = BitRotate(7, 2)
; x == 3 pues 111b rotacin doble por la derecha es 1 1100b == 28
$y = BitRotate(14, -2)
; y == 32771 pues 1110b rotacin doble por la derecha de 16 bits es 1000 0000 0000 0011b ==
32771

261

$z = BitRotate(14, -2, "D")


; z == -2147483645 pues 1110b rotacin doble por la derecha de 16 bits es 1000 0000 0000
0000 0000 0000 0000 0011b == 2147483645

BitShift
Realiza una operacin de alternacin de bit.
BitShift (valor, alternacin )
Parmetros
valor

El nmero para ser alternado.

alternacin

Nmero de bit par alternar a la derecha (nmeros negativos alternan a la


izquierda).

Valor de Retorno
Devuelve el valor alternado para el nmero requerido de bits.
Operaciones de bit son realizadas con enteros de 32 bits.

Comentarios
Recuerde que la notacin hexadecimal puede ser utilizada.
La alternacin a la derecha es equivalente a dividir en dos; alternacin a la izquierda alterna
doblando.
Relativo
BitAND, BitNOT, BitOR, BitXOR, Hex, BitRotate
Ejemplo
$x = BitShift(14, 2)
; x == 3 pues 1110b alternacin doble por la derecha es 11b == 3
$y = BitShift(14, -2)
; y == 56 pues 1110b alternacin doble por la izquierda es 111000b == 56
$z = BitShift( 1, -31)
; z == -2147483648 pues es notacin de segundo complemento, el
; 32do dgito desde la derecha es de signo segativo.

262

BitXOR

Realiza una operacin OR exclusiva (XOR) a nivel de bit.


BitXOR (valor1, valor2 [, valor n])
Parmetros
valor1

El primer nmero.

valor2

El segundo nmero.

valor n

[opcional] El ensimo nmero - como mximo 255 valores puede ser


especificado.

Valor de Retorno
Devuelve el valor de los parmetros XOR.
Operaciones de bit son realizadas con enteros de 32 bits.
Comentarios
Recuerde que la notacin hexadecimal puede ser utilizada. BitXOR devuelve 1 en la posicin
del bit si existe algn que otro 1 en la posicin del bit correspondiente en todos los
argumentos de entrada, y 0 de otro modo.
Relativo
BitAND, BitNOT, BitOR, BitShift, Hex, BitRotate
Ejemplo
$x = BitXOR(10, 6) ;x == 12 because 1010b XOR 0110b == 1100
$x = BitXOR(2, 3, 6) ;x == 7 pues 0010 XOR 0011 XOR 0110 = 0111
Cos

Calcula el coseno de un nmero.


Cos ( expresin )
Parmetros

263

expresin

Valores en radianes.

Valor de Retorno
Devuelve el coseno trigonomtrico de un nmero.
Comentarios
1 = pi / 180 radianes.
Relativo
Sin, Tan, ASin, ACos, ATan
Ejemplo
$pi = 3.14159265358979
$x = cos($pi / 4)
$degToRad = $pi / 180
$y = Cos(90 * $degToRad) ;coseno de 90

Ceiling
Devuelve un nmero redondeado por encima del prximo entero.
Ceiling ( expresin )
Parmetros
expresin

Cualquier expresin numrica vlida.

Valor de Retorno
Devuelve el nmero redondeado.
Comentarios
Ninguno
Relativo
Int, Number, Floor, Round
Ejemplo
Dim $msg
264

$msg = ""
$msg = $msg & "Ceiling(4.8) = " & Ceiling(4.8) & @CR
$msg = $msg & "Ceiling(4.5) = " & Ceiling(4.5) & @CR
$msg = $msg & "Ceiling(4.3) = " & Ceiling(4.3) & @CR
$msg = $msg & "Ceiling(4) = " & Ceiling(4) & @CR
$msg = $msg & "Ceiling(-4.3) = " & Ceiling(-4.3) & @CR
$msg = $msg & "Ceiling(-4.5) = " & Ceiling(-4.5) & @CR
$msg = $msg & "Ceiling(-4.8) = " & Ceiling(-4.8) & @CR
$msg = $msg & "Ceiling(-4) = " & Ceiling(-4) & @CR
MsgBox(64, "Testeando", $msg)

Exp
Calcula la potencia e de un nmero.
Exp ( expresin )
Parmetros
expresin

Cualquier expresin numrica vlida.

Valor de Retorno
Devuelve la potencia e de expresin.
Comentarios
e es la base de los logaritmos naturales y es aproximadamente 2.71828182845905
Relativo
Log
Ejemplo
$x = Exp(5) ;devuelve 148.413159102577

Floor
Devuelve un nmero por debajo del entero ms prximo.
Floor ( expresin )
Parmetros
265

expresin

Cualquier expresin numrica vlida.

Valor de Retorno
Devuelve el nmero redondeado
Comentarios
Ninguno
Relativo
Int, Number, Round, Ceiling
Ejemplo
Dim $msg
$msg = ""
$msg = $msg & "Floor(4.8) = " & Floor(4.8) & @CR
$msg = $msg & "Floor(4.5) = " & Floor(4.5) & @CR
$msg = $msg & "Floor(4.3) = " & Floor(4.3) & @CR
$msg = $msg & "Floor(4) = " & Floor(4) & @CR
$msg = $msg & "Floor(-4.3) = " & Floor(-4.3) & @CR
$msg = $msg & "Floor(-4.5) = " & Floor(-4.5) & @CR
$msg = $msg & "Floor(-4.8) = " & Floor(-4.8) & @CR
$msg = $msg & "Floor(-4) = " & Floor(-4) & @CR
MsgBox(64, "Testeando", $msg)

Log
Calcula el logaritmo natural de un nmero.
Log ( expresin )
Parmetros
expresin

Cualquier nmero positivo.

Valor de Retorno
Con xitos

Devuelve el logaritmo natural del parmetro.

266

Al Fallar

Tiende a retornar -1. #IND para parmetros no positivos.

Comentarios
@error es siempre 0
Relativo
Exp
Ejemplo
$x = Log(1000) ;returns 6.90775527898214
$y = Log10(1000) ;returns 3
; Funcin definida de usuario para log comn
Func Log10($x)
Return Log($x) / Log(10) ;10 es la base
EndFunc

Mod
Ejecuta una operacin de mdulo.
Mod ( valor1, valor2 )
Parmetros
valor1

El dividendo.

valor2

El divisor.

Valor de Retorno
Con xitos
Al Fallar

Devuelve el resto cuando valor1 es dividido por valor2.


Devuelve -1.#IND si el divisor es cero.

Comentarios
Esta funcin asume que dividendo = (dividendo / divisor) * divisor + Mod(dividendo, divisor).
Esta funcin no asume que el dividendo o el divisor pueda ser representado correctamente,
especialmente con nmeros decimales.
Si un entero es pasado esta funcin realiza una operacin integral de mdulo. De otra forma,
se realiza una operacin de mdulo con punto flotante (decimales) las cuales pueden no
producir el resultado esperado.
267

Relativo
Ninguno.
Ejemplo
$n = 18
If mod($n, 2) = 0 Then
MsgBox(0,"", $n & " es un nmero par")
Else
MsgBox(0, "", $n & " es un nmero impar")
EndIf
$x = mod(4, 7) ;$x == 4 debido a que divisor > dividendo
$y = mod(1, 3/4) ;$y == 0.25 debido a que divisor es un decimal

Random
Genera un nmero seudo-aleatorio del tipo flotante.
Random ( [Mn [, Mx [, Bandera]]] )
Parmetros
Mn

[opcional] El nmero ms pequeo para ser generado. El predefinido es 0.

Mx

[opcional] El nmero mayor para ser generado. El predefinido es 1.

Bandera

[opcional] Si esto es establecido a 1 entonces el resultado entero ser devuelto.


Por defecto es un nmero punto flotante.

Valor de Retorno
Con xito:

Devuelve un nmero seudo-aleatorio entre Mn y Mx.

Al Fallar:

Devuelve 0 y la bandera de @error es establecida a 1 si los Parmetros estn


incorrectos.

Comentarios
Por defecto la funcin Random trabaja con decimales / nmeros de punto flotante. Si desea
slo resultados con nmeros enteros a continuacin, establezca la Bandera a 1.
Si slo un argumento es provisto, entonces se interpretar como Mx.
268

El resultado ser en el rango de Mn a Mx INCLUSIVE cuando se utilizan enteros (slo corto


cuando Mx utiliza flotantes).
Cuando se utiliza enteros Mx-Mn debe ser inferior a 2 ^ 31.
Comentarios sobre la base de la fuente original
Esta funcin utiliza la Mersenne Twister generador de nmeros aleatorios, MT19937, escrito
por Takuji Nishimura, Makoto Matsumoto, Shawn Cokus, Matthe Bellew y Isaku Wada.
El Mersenne Twister es un algoritmo para generar nmeros aleatorios. Fue diseado con el examen de los defectos en otros generadores. El plazo, 2
19937 -1, y el orden de equidistribucin, 623 dimensiones, son mucho mayores. El generador tambin es rpido, que evita la multiplicacin y la
divisin, y se beneficia de caches y pipelines. Para obtener ms informacin, consulte los inventores en la pgina web
[Link] Copyright (C) 1997 - 2002, Makoto Matsumoto y Takuji Nishimura, Todos los derechos
reservados.

Redistribucin y uso en formato fuente y binario, con o sin modificaciones, siempre que se cumplan las siguientes condiciones:

1. Las redistribuciones del cdigo fuente debe conservar el aviso de copyright anterior, esta lista de condiciones y la siguiente renuncia.
2. Las redistribuciones en formato binario deben reproducir el aviso de copyright anterior, esta lista de condiciones y la siguiente en la
documentacin y / o otros materiales suministrados con la distribucin.

3. Los nombres de sus contribuyentes no podr utilizarse para respaldar o promocionar productos derivados de este software sin el permiso previo
por escrito.

Este software es proporcionado por los titulares de derechos de autor y colaboradores "tal como es" y toda las garantas expresas o implcitas,
incluyendo pero no limitado a, las garantas implcitas de comerciabilidad y adecuacin para un propsito en particular DETERMINADO. En ningn
caso el propietario del copyright o los contribuyentes podr ser considerada responsable de ningn dao directo, indirecto, incidental, especial,
ejemplar, o daos consecuentes (incluyendo, pero no limitado a, sustituir la adquisicin de bienes o servicios; PRDIDA DE USO, DE DATOS O DE
BENEFICIOS; O interrupcin de negocio), sin embargo causado y en cualquier teora de la responsabilidad, ya sea en contrato, responsabilidad
estricta, o agravio (incluyendo negligencia o de otro tipo) que surja en cualquier manera de salir del USO DE ESTE SOFTWARE, INCLUSO SI SE HA
ADVERTIDO DE LA POSIBILIDAD DE TALES DAOS.

Relativo
Round, SRandom
Ejemplo
;Tapa de la moneda
If Random() < 0.5 Then ; Devuelve un valor entre 0 y 1.
$msg = "Cara. 50% Gana"
Else
$msg = "Cruz. 50% Pierde"
Endif
MsgBox(0,"Moneda echada", $msg )
;Rodar un dado
msgBox(0, "Rodar un dado", "Has obtenido un " & Random(1, 6, 1) )
269

$StockPrice = 98
;En la mitad de la simulacin de un juego de mercado de valores
$StockPriceChange = Random(-10, 10, 1) ; genera un entero entre -10 y 10
$StockPrice = $StockPrice + $StockPriceChange
If $StockPriceChange < 0 Then
MsgBox(4096, "Cambio de valor", "Su valor se redujo a $" & $StockPrice)
ElseIf $StockPriceChange > 0 Then
MsgBox(4096, "Cambio de valor", "Su valor aument a $" & $StockPrice)
Else
MsgBox(4096, "Cambio de valor", "Su valor qued en $" & $StockPrice)
Endif
;Letra al azar
If Random() < 0.5 Then
;Maysculas
$Letter = Chr(Random(Asc("A"), Asc("Z"), 1))
Else
;Minsculas
$Letter = Chr(Random(Asc("a"), Asc("z"), 1))
Endif

Round
Devuelve un nmero redondeado a un nmero determinado de cifras decimales.
Round ( expresin [, cifras decimales] )
Parmetros
expresin

Cualquier expresin numrica vlida.

cifras
decimales

[opcional] Nmero que indica cuntos lugares a la derecha del decimal se


incluyen en el redondeo. Si se omite, la Round devuelve un entero.

Valor de Retorno
Devuelve el nmero redondeado.
Comentarios
El parmetro de cifras decimales puede ser negativo, que le permite redondear a unidades,
decenas, centenas, etc. Tenga en cuenta que hasta quince dgitos de un nmero se muestran,
y tome nota de que cifras decimales nunca se anteceden con una serie de ceros.
Relativo
Int, Number, Ceiling, Floor, Random
270

Ejemplo
$x = Round(-1.582, 1) ;devuelve -1.6
$y = Round(3.1415, 9) ;no cambia
$z = Round(123.5, -1) ;devuelve 120

Sin
Calcula el seno de un nmero.
Sin ( expresin )
Parmetros
expresin

Valor en radianes.

Valor de Retorno
Devuelve el seno trigonomtrico de un nmero.
Comentarios
1 = pi / 180 radianes.
Relativo
Cos, Tan, ASin, ACos, ATan
Ejemplo
$pi = 3.14159265358979
$x = sin($pi / 4) ; devuelve 0.707106781186547 cual es reconocido como sqrt(2)/2
$degToRad = $pi / 180
$y = Sin(90 * $degToRad) ;sine of 90

Sqrt
Calcula la raz cuadrada de un nmero.
Sqrt ( expresin )
Parmetros

271

expresin

Alguna expresin no-negativa para obtener su raz cuadrada.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve la raz cuadrada.


Devuelve -1. #IND si el parmetro es negativo.

Comentarios
Para calcular una ensima raz, use el operador de potencia: x ^ (1/n)
MsgBox(0,"La raz cbica de 27 es", 27 ^ (1/3) )
Relativo
Ninguno.
Ejemplo
$x = Sqrt(2) ;devuelve 1.4142135623731
$y = sqrt(9) ;devuelve 3

SRandom
Establece un semilla para la generacin de nmeros aleatorios.
SRandom ( Semilla )
Parmetros
Semilla

Valor semilla o seed para generar nmeros aleatorios. Nmero entre -2^31 y
2^31-1

Valor de Retorno
Ninguno.
Comentarios
Ninguno.

Relativo
Random
Ejemplo

272

SRandom(12)
$rand=Random()

Tan
Calcula la tangente de un nmero.
Tan ( expresin )
Parmetros
expresin

Valor en radianes.

Valor de Retorno
Devuelve la trigonomtrica de un nmero.
Comentarios
1 = pi / 180 radianes.
Note que Tan es "infinito" por ... -3PI/2, -PI/2, PI/2, 3PI/2, 5PI/2, ... y tiende a devolver
1.63317787283838e+016 para esos mltiplos de la mitad de Pi.
Relativo
Sin, Cos, ASin, ACos, ATan
Ejemplo
$pi = 3.14159265358979
$x = tan($pi / 4)
$degToRad = $pi / 180
$y = Tan(90 * $degToRad) ;tangente de 90

273

Referencia de Cajas de Mensajes y Dilogos


A continuacin se muestra una lista completa de las funciones de Cajas de Mensajes y
Dilogos disponibles en AutoIt. Click en una de ellas para obtener detalles de su
descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes
GUI Incluidas si usted necesita usarlo para constantes de controles.

Funcin

Descripcin

InputBox

Muestra una caja de entrada que requiere del usuario la entrada de


una cadena.

MsgBox

Muestra un simple cuadro de mensaje con tiempo opcional para


expirar.

ProgressOff

Finaliza la ventana de Progreso.

ProgressOn

Crea una ventana personalizable de barra de progreso.

ProgressSet

Establece la posicin y/o texto de una ventana de Progreso creada


anteriormente.

SplashImageOn

Crea una ventana con imagen personalizada.

SplashOff

Desactiva una ventana de SplashText o SplashImage.

SplashTextOn

Crea una ventana personalizada de texto.

ToolTip

Crea un tooltip en cualquier parte de la pantalla.

InputBox
Muestra una caja de entrada que requiere del usuario la entrada de una cadena.
InputBox ( "ttulo", "Prompt" [, "por defecto" [, "password char" [, ancho, [ alto [, izquierda,
superior [, intervalo [, hwnd]]]]]]] )
274

Parmetros
ttulo

El ttulo de la caja de entrada.

prompt

Un mensaje para el usuario.

por defecto

[opcional] El valor que se presentar en el input por defecto.

password
char

[opcional] Un carcter que reemplazar a cualquier carcter entrado. Si usted


desea que el actual carcter aparezca tipee una cadena vaca("") (por defecto) o
un espacio para el primer carcter. Si usted tipea una cadena de mltiples
caracteres, solamente el primer carcter es usado para enmascarar. El segundo
y subsecuentes caracteres tienen una significacin especial. Ver Comentarios.

ancho

[opcional] El ancho de la ventana.

altura

[opcional] El alto de la ventana.

izquierda

[opcional] El lado izquierdo de la caja de entrada. Por defecto, la caja es


centrada en el escritorio.

top

[opcional] El lado superior de la caja de entrada. Por defecto, la caja es centrada


en el escritorio.

intervalo

[opcional] los segundos que aguardar el InputBox para ser cancelada .

hwnd

[opcional] El apuntador de ventana para usarse como padre de este dilogo.

Valor de Retorno
Con xitos

Devuelve la cadena que ha sido entrada.

Al Fallar

Devuelve "" (cadena vaca) y fija @error a lo siguiente:

@Error

0 = La cadena revuelta es invlida.


1 = El botn Cancelar ha sido oprimido.
2 = El Intervalo de tiempo ha sido alcanzado.
3 = El InputBox fall al abrir. Esto es usualmente causado por argumentos
errneos.
4 = El InputBox no puede ser mostrado en ningn monitor.

275

5 = Parmetros invlidos, ancho sin alto o izquierda sin superior.


Comentarios
El InputBox es reajustable, pero hasta un tamao mnimo de aproximadamente 190 x 115
pxeles. Por defecto el tamao es aproximadamente 250 x 190 pxeles.
La cadena devuelta no exceder de 254 caracteres y si el input tiene retorno de carro o saltos
de lnea, el resultado ser truncado por debajo del primer de estos caracteres encontrado.
El segundo y subsecuente caracteres del campo password pueden ser usado para restringir el
input. Use un espacio para rellenar el primer carcter tipeado. Colocando M despus del
primer carcter indica que el input es Mmandatory; (Obligatorio) ejemplo. Usted debe entrar
alguna cosa. Ningn cambio ocurre si usted presiona el botn OK cuando no existe ninguna
cadena entrada en el InputBox. Este no cerrar y devolver la cadena.
Usted puede tambin especificar la mxima longitud de caracteres a entrar en el campo de
password. Solo entre un nmero al final del campo de password que indique la mxima
longitud de la cadena.
Relativo
MsgBox
Ejemplo
;Colocar el input box en la esquina superior izquierda mostrando
;los caracteres como son tipeados
$answer = InputBox("Pregunta", "Donde usted naci?", "Planeta Tierra", "", _
-1, -1, 0, 0)
;Preguntar al usuario por un Password. No olvidar validar el password!
$passwd = InputBox("Chequear seguridad", "Entre su password.", "", "*")
;Pregunta al usuario para entrar 1 o 2 caracteres de respuesta. La M en el campo de password
;indica que una cadena vaca no es aceptada y el 2 indica que la
;respuesta no debe sobrepasar los 2 caracteres de largo.
$value = InputBox("Testeando", "Entre un cdigo de 1 o 2 caracteres.", "", " M2")

MsgBox
Muestra un simple cuadro de mensaje con tiempo opcional para expirar.
MsgBox (flag, "ttulo", "texto" [, tiempo lmite [, hwnd]])
Parmetros
276

flag

El flag indica el tipo de cuadro de mensaje y las posibles combinaciones de


botones. Ver observaciones.

ttulo

El ttulo del cuadro de mensaje.

texto

El texto del cuadro de mensaje.

tiempo
lmite

[opcional] Tiempo de expiracin en segundos. Despus que el tiempo lmite ha


terminado el cuadro de mensaje ser automticamente cerrado. El valor
predefinido es 0, lo cual no har que expire.

hwnd

[opcional] El apuntador de la ventana para usar como el padre para esta caja de
dilogo.

Valor de Retorno
Con xito:

Devuelve el ID de el botn presionado.

Al Fallar:

Devuelve -1 si el cuadro de mensaje expir.

Botn
presionado

Valor devuelto

OK

CANCEL

ABORT

RETRY

IGNORE

YES

NO

TRY AGAIN
**

10

CONTINUE
**

11

277

Comentarios
El parmetro de la flag puede ser una combinacin de los siguientes valores:
flag
decimal

Resultado Botn-relacionado

flag
hexadecimal

botn ACEPTAR

0x0

ACEPTAR y Cancelar

0x1

Abortar, Reintentar, e Ignorar

0x2

Si, No, y Cancelar

0x3

Si y No

0x4

Reintentar y Cancelar

0x5

6 **

Cancelar, Intentar de nuevo, Continuar

0x6

flag
decimal

Resultado de Icono-relacionado

flag
hexadecimal

(No cono)

0x0

16

Icono del Signo de Detener

0x10

32

Icono de Signo de Interrogacin

0x20

48

Icono de signo de Exclamacin

0x30

64

Icono del signo de Informacin que consiste en una 'i' en un


crculo

0x40

flag
decimal

Resultado de Botn predeterminado

flag
hexadecimal

Primer botn es el botn por defecto

0x0

256

Segundo botn es el botn por defecto

0x100

512

Tercer botn es el botn por defecto

0x200

278

flag
decimal

Resultado de Modalidad

flag
hexadecimal

Aplicacin

0x0

4096

Modalidad de Sistema (dilogo tiene un cono)

0x1000

8192

Modalidad de Tarea

0x2000

flag
decimal

Resultado de Miscelneos

flag
hexadecimal

(nada especial)

0x0

262144

MsgBox tiene el atributo de SIEMPRE ENCIMA

0x40000

524288

ttulo y texto se justifican a la derecha

0x80000

** Vlido solamente en Windows 2000/XP y superiores.


Por ejemplo, para especificar un cuadro SYSTEMMODAL con los botones YES/NO los valores
sern 4096+4 (o 4100) Si se usa flags hexadecimales, seran 0x1000+0x4 (o 0x1004).
Un cuadro de mensaje aparece centrado en la pantalla y se reajusta de acuerdo al texto que
contiene. Sin embargo, el ttulo podra ser truncado si el flag SYSTEMMODAL (4096) es usado.
Si "ttulo" es igual a Palabra clave por defecto, @Scriptname es usado.
Relativo
InputBox, ToolTip, TrayTip, SplashTextOn
Ejemplo
MsgBox(4096, "Prueba", "Esta caja desaparecer en 10 segundos", 10)

ProgressOff
Finaliza la ventana de Progreso.
ProgressOff ( )
Parmetros
279

Ninguno.
Valor de Retorno
Ninguno.
Comentarios
Ninguno.
Relativo
ProgressSet, ProgressOn
Ejemplo
ProgressOff()

ProgressOn
Crea una ventana personalizable de barra de progreso.
ProgressOn ( "ttulo", "textoprincipal" [, "subtexto" [, posicin x [, posicin y [, opc]]]] )
Parmetros
ttulo

Ttulo para la ventana de progreso.

textoprincipal Texto para la etiqueta principal, en Negrita.

subtexto

[opcional] texto para Sub, Normal, Etiqueta inferior. (por defecto est en
blanco)

pos x

[opcional] posicin desde la izquierda (en pixeles) de ventana de progreso. (por


defecto est centrado)

pos y

[opcional] posicin desde arriba (en pixeles) de ventana de progreso. (por


defecto est centrado)

opc

[opcional] Por defecto es 'siempre encima/con ttulo'


Sume las siguientes opciones como usted desee:
1 = sin borde, no lleva ttulo
2 = Sin el atributo de "siempre encima"
16 = La ventana puede ser movida

Valor de Retorno
280

Ninguno.
Comentarios
Para omitir un parmetro opcional, dejando su valor predefinido intacto, use:
"" para los parmetros de cadena
-1 para los parmetros numricos
Si ProgressOn es llamado mientras una ventana de progreso existe, la ventana ser
redibujada/movida. (Si usted desea mltiples ventanas de progresos simultneamente, usted
necesitar utilizar mltiples scripts)
Relativo
ProgressOff, ProgressSet
Ejemplo
ProgressOn("Medidor de Progreso", "Incrementa cada segundo", "0 por ciento")
For $i = 10 to 100 step 10
sleep(1000)
ProgressSet( $i, $i & " porciento")
Next
ProgressSet(100 , "Terminado", "Completo")
sleep(500)
ProgressOff()

ProgressSet
Establece la posicin y/o texto de una ventana de Progreso creada anteriormente.
ProgressSet ( porcentaje [, "subtexto" [, "textoprincipal"]] )
Parmetros
porcentaje

Porcentaje (valor entre 0. y 100.) para establecer a la barra de progreso.

subtexto

[opcional] Establece el texto para la etiqueta secundaria, Normal, Inferior.

textoprincipal [opcional] Establece el texto para la etiqueta principal, Negrita, Superior.

Valor de Retorno
Ninguno.

281

Comentarios
Observe que el argumento del subtexto viene antes de texto principal.
Relativo
ProgressOff, ProgressOn
Ejemplo
ProgressOn("Medidor de Progreso", "Incrementa cada segundo", "0 por ciento")
For $i = 10 to 100 step 10
sleep(1000)
ProgressSet( $i, $i & " porciento")
Next
ProgressSet(100 , "Terminado", "Completo")
sleep(500)
ProgressOff()

SplashImageOn
Crea una ventana con imagen personalizada.
SplashImageOn ( "ttulo", "archivo" [, ancho [, alto [, posicin x [, posicin y [, opc]]]]] )
Parmetros
ttulo

Ttulo para la ventana.

archivo

ruta completa\nombre de archivo de imagen (BMP, GIF, o JPG)

ancho

[opcional] ancho de ventana en pixeles (por defecto es 500)

altura

[opcional] altura en pixeles (por defecto es 400)

pos x

[opcional] posicin desde la izquierda (en pixeles) de la ventana. (por defecto


est centrado)

pos y

[opcional] posicin desde arriba (en pixeles) de la ventana. (por defecto est
centrado)

opc

[opcional] Agregar las opciones que usted quiera. Por defecto est con la opcin
'siempre encima/con ttulo'
1 = Ventana sin borde ni ttulo
2 = Sin atributo de "siempre encima"
282

16 = Ventana puede ser movida

Valor de Retorno
Ninguno.
Comentarios
Para omitir un parmetro opcional, dejando su valor predefinido intacto, use un valor de -1.
La imagen es escalada al ancho y alto especificado y debera ser un Mapa de Bits (BMP), GIF, o
imagen JPEG. Iconos (ICOs) no se mostrarn, aunque la ventana aparezca. Imgenes PNG
muestran un mensaje de error al cargar, y tambin cuando la ruta del archivo no es vlida.
Imgenes no son insertadas en el ejecutable a menos que usted utilice FileInstall.
Solo una ventana de SplashImage/Text es permitida a la vez; as que si usted desea hacer un
ciclo de varias a travs de mltiples imgenes/texto, simplemente llame
SplashImageOn/SplashTextOn de nuevo con la nueva informacin.
Splash con opc=1 no puede ser movido y no puede ser activado con un clic.
Relativo
SplashOff, SplashTextOn
Ejemplo
$destination = @Systemdir & "\oobe\images\[Link]"
SplashImageOn("Pantalla Splash", $destination,250,50)
Sleep(3000)
SplashOff()

SplashOff
Desactiva una ventana de SplashText o SplashImage.
SplashOff ( )
Parmetros
Ninguno.
Valor de Retorno
Ninguno.

283

Comentarios
Ninguno.
Relativo
SplashImageOn, SplashTextOn
Ejemplo
SplashTextOn("Ejemplo", "Pantalla Splash")
Sleep(5000)
SplashOff()

SplashTextOn
Crea una ventana personalizada de texto.
SplashTextOn ( "ttulo", "texto" [, ancho [, altura [, posicin x [, posicin y [, opc [,
"nombre de fuente" [, tamao de fuente [, tamao de espesor ]]]]]]]] )
Parmetros
ttulo

Ttulo para la ventana.

texto

Texto para la ventana.

ancho

[opcional] Ancho de ventana en pixeles (por defecto 500)

altura

[opcional] Altura de ventana en pixeles (por defecto 400)

posicin x

[opcional] Posicin desde la izquierda (en pixeles) de la ventana. (por defecto


est centrado)

posicin y

[opcional] Posicin desde arriba (en pixeles) de la ventana. (por defecto est
centrado)

opc

[opcional] Mezcle valores como desee - predeterminadamente est 'justificado


al centro/siempre encima/con ttulo'
0 = Justificado al Centro/siempre encima/con ttulo (por defecto)
1 = Sin borde y sin ttulo
2 = Sin atributo de "siempre encima"
4 = Texto justificado a la izquierda
8 = Texto justificado a la derecha
16 = Ventana puede ser movida
284

32 = Centra el texto verticalmente


nombre de
fuente

[opcional] Fuente a utilizar. (por defecto se usa la del sistema, si fuente en este
valor se deja como "" o cuando no se encuentra la fuente especificada)

tamao de
fuente

[opcional] Tamao de fuente. (por defecto es 12; tamaos estndares son 6 8 9


10 11 12 14 16 18 20 22 24 26 28 36 48 72)

espesor de
fuente

[opcional] Espesor de fuente (0 - 1000, por defecto = 400 = normal). Un valor >
1000 es tratado como cero.

Valor de Retorno
Devuelve el Apuntador de la ventana que puede ser usado en ControlSetText.

Comentarios
Para omitir un parmetro opcional, dejando su valor predefinido intacto, use:
"" para parmetros de cadena
-1 para parmetros numricos
Solo una ventana de SplashImage/Text es permitida a la vez; as que si usted desea hacer un
ciclo de varias a travs de mltiples imgenes/texto, simplemente llame
SplashImageOn/SplashTextOn de nuevo con la nueva informacin.
Incluso es mejor utilizar ControlSetText para actualizar el texto sin parpadeo ...
Si el texto est centrado y con multilneas, ControlSetText no sobrescribir el nmero de lneas
creadas por el SplashTextOn.
Splash con opc=1 no puede ser movido y no puede ser activado con un clic.
Nombres de fuentes estndares incluyen: Arial, Comic Sans MS, Courier New, Lucida Console,
Microsoft Sans Serif, System, Tahoma, Times New Roman, y WingDings. Vea el Apndice para
obtener una lista completa.
Use @LF para mostrar varias lneas.

Relativo
SplashOff, SplashImageOn, ControlSetText, ToolTip, MsgBox

Ejemplo
$destination = "..\GUI\[Link]"
SplashImageOn("Splash Screen", $destination,250,50)
285

Sleep(3000)
SplashOff()

ToolTip
Crea un tooltip en cualquier parte de la pantalla.
ToolTip ( "texto" [, x [, y [, "ttulo" [, icono [, opciones]]]]] )
Parmetros
texto

El texto del tooltip. (Una cadena vaca limpia o remueve un tooltip)

[opcional] La posicin x del tooltip.

[opcional] La posicin y del tooltip.

ttulo

[opcional] El ttulo para el tooltip Requiere IE5+

icono

[opcional] Icono pre-definido para mostrar, prximo al ttulo:Requiere un ttulo.


0 = Sin icono, 1 = Icono de Informacin, 2 = Icono de advertencia, 3 = Icono de
Error

opciones

[opcional] Establece opciones diferentes de cmo el tooltip ser mostrado


(Pueden ser mezclados):
1 = Muestra el Tooltip tipo Globo Requiere IE5+
2 = Centra el tip a las coordenadas x, y en lugar de usarlos para la esquina
superior izquierda.
4 = Fuerza al tooltip que siempre est visible confinado a las esquinas del
monitor si es necesario. Si mltiples monitores son usados, entonces el tooltip
aparecer al monitor ms cercano.

Valor de Retorno
Con xitos:

Devuelve 1.

Al fallar:

Devuelve 0 cuando la extensin del ttulo es mayor 99.

Comentarios
Para omitir un parmetro opcional, dejando su valor predefinido intacto, use la palabra
reservada Default.

286

Si las coordenadas x, y son omitidas, tip ser ubicado cercano a la posicin del mouse.
Un Tooltip aparecer hasta que el script termine o ToolTip("") sea llamado.
Tal vez use un @CR o @LF para crear tooltips multi-lneas.
Para mostrar un cono, usted debe especificar un ttulo no vaco. El icono aparece en la misma
fila como el ttulo y as requiere un ttulo para estar presente.
Si usa la bandera para centrar, el centro del tooltip estar en las coordenadas especificadas. Si
usa la bandera de centrar con un Tip de Globo, el indicador ser centrado en el globo y
apuntar a las coordenadas especificadas.
Relativo
TrayTip, MsgBox, SplashTextOn
Ejemplo
; Este crear un tooltip en la parte superior izquierda de la pantalla
ToolTip("Este es un tooltip", 0, 0)
Sleep(2000) ; Dormitar para darle tiempo al tooltip que sea mostrado

287

Referencia de Funciones Varias


A continuacin se muestra una lista completa de las funciones de Funciones Varias disponibles
en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.
Funcin

Descripcin

AdlibRegister

Registra una funcin Adlib.

AdlibUnRegister

Des-registra una funcin adlib.

AutoItSetOption

Cambia el modo de operacin de varias funciones/parmetros de


AutoIt.

AutoItWinGetTitle

Devuelve el ttulo de la ventana de AutoIt.

AutoItWinSetTitle

Cambia el ttulo de la ventana de AutoIt.

BlockInput

Habilita/deshabilita el mouse y el teclado.

Break

Habilita o desactiva la posibilidad del usuario de finalizar el script


desde el icono de la barra de tarea.

Call

Invoca una Funcin de usuario contenida en una cadena como


parmetro.

CDTray

Abre o cierra la bandeja del CD.

Execute

Ejecuta una expresin.

ExpandEnvStrings
(Option)

Cambia cmo las cadenas literales y los smbolos % son


interpretados. Por defecto las cadenas son tratadas literalmente.
Esta opcin le permite utilizar variables de %entorno% dentro de
cadenas, ej., "El directorio temporal es: %temp%".

ExpandVarStrings
(Option)

Cambia cmo las cadenas literales y los smbolos de


variables/macros ($ y @) son interpretados. Por defecto las cadenas
son tratadas literalmente. Esta opcin le permite utilizar variables y
macros dentro de cadenas, ej., "El valor de la variable es $var1$".

OnAutoItExitRegister

Registra una funcin para ser llamada cuando AutoIt inicia.

OnAutoItExitUnRegister

Des-registra una funcin que es llamada cuando AutoIt finaliza.

Opt

SetError

Establece manualmente el valor de la macro @error.

SetExtended

Manualmente establece el valor del macro @extended.

VarGetType

Devuelve el tipo de representacin interna de un dato variante.

288

AdlibRegister
Registra una funcin Adlib.
AdlibRegister ( "funcin" [, tiempo] )
Parmetros
funcin

El nombre de la funcin adlib para ser registrado.

tiempo

[opcional] Con que frecuencia, en milisegundos, se llama a la funcin. Por


defecto es 250 ms.

Valor de Retorno
Ninguno.
Comentarios
Cada 250 ms (o time ms) la funcin espesificada es llamada--tpicamente para el chequeo de
errores imprevistos. Por ejemplo, usted puede utilizar adlib en un script que cause un error de
ventana de manera imprevisible.
La funcin adlib debera ser sencilla, pues se ejecutar a menudo y durante este tiempo el
script estar en pausa. Adems, el parmetro de tiempo debe usarse con cuidado para evitar la
sobrecarga de la CPU.
Varias funciones Adlib pueden ser registradas. Al volver a registrar una funcin Adlib existente
esta se actualizar al nuevo tiempo.
Relativo
AdlibUnRegister
Ejemplo
AdlibRegister("MyAdlib")
;...
Exit
Func MyAdlib()
;... la ejecucin no debe efectuar bloqueos, evitar usar funciones ...Wait(), MsgBox(),
InputBox()
If WinActive("Error") Then
;...
EndIf
EndFunc

AdlibUnRegister
289

Des-registra una funcin adlib.


AdlibUnRegister( [ "funcin" ] )
Parmetros
funcin

[opcional] El nombre de la funcin adlib para ser des-registrada. ver


comentarios para ms informacin.

Valor de Retorno
Ninguno.
Comentarios
Si el nombre de la funcin no es especificado entonces la tima funcin registrada ser desregistrada.
Relativo
AdlibRegister
Ejemplo
AdlibRegister("MyAdlib")
;...
AdlibUnRegister("MyAdlib")
Func MyAdlib()
;... la ejecucin no debe efectuar bloqueos, evitar usar funciones ...Wait(), MsgBox(),
InputBox()
EndFunc

AutoItSetOption

Cambia el modo de operacin de varias funciones/parmetros de AutoIt.


AutoItSetOption ( "opciones" [, parmetro] )
Parmetros
opciones

La opcin para cambiar. Ver observaciones.

parmetro

[opcional] El valor para asignar a las opciones. El tipo y significacin vara con la
opcin. Ver observaciones ms abajo. Si el parmetro no es dado, entonces la
funcin simplemente devuelve el valor ya asignado para esa opcin. La palabra
clave Default puede ser usado para resetear la opcin a su valor por defecto.

290

Valor de Retorno
Con xitos: Devuelve el valor de la configuracin previa para la opcin.
Al Fallar: Establece @error a no-cero. Fallar si el parmetro es invlido (una opcin que no
existe).
Comentarios
Usted puede utilizar Opt() como una alternativa a AutoItSetOption().
Las opciones disponibles son las siguientes:
Opcin

Parmetro

CaretCoordMode

Establece la forma en que son utilizadas las coordenadas, bien sea


para coordenadas absolutas o relativas a la ventana actual:
0 = coordenadas relativas a la ventana actual
1 = coordenadas absolutas a la pantalla (por defecto)
2 = coordenadas relativas a la ventana cliente de la ventana actual

ExpandEnvStrings

Cambia cmo las cadenas literales y los smbolos % son interpretados.


Por defecto las cadenas son tratadas literalmente. Esta opcin le
permite utilizar variables de %entorno% dentro de cadenas, ej., "El
directorio temporal es: %temp%".
1 = expande variables de entorno (similar a AutoIt v2)
0 = no expande variable de entorno (por defecto)
Sin esta opcin la manera habitual es la siguiente: "El directorio
temporal es: " & EnvGet("temp")

ExpandVarStrings

Cambia cmo las cadenas literales y los smbolos de variables/macros


($ y @) son interpretados. Por defecto las cadenas son tratadas
literalmente. Esta opcin le permite utilizar variables y macros dentro
de cadenas, ej., "El valor de la variable es $var1$".
1 = expande variables (En este modo si usted desea utilizar los
smbolos $ o @ literalmente entonces debe duplicarlos: "Esto es un
smbolo de dlar $$ ".
0 = no expande variables (por defecto)

GUICloseOnESC

Cuando ESC es presionado en una GUI el mensaje $GUI_EVENT_CLOSE


es enviado. Esta opcin determina el comportamiento en on y off.
1 = Enva el mensaje $GUI_EVENT_CLOSE cuando ESC es
presionado(por defecto).
0 = No enva el mensaje $GUI_EVENT_CLOSE cuando ESC es
presionado.

GUICoordMode

Altera la posicin de un control definido por GUICtrlSetPos.


1 = coordenadas absolutas (por defecto) relativas a caja de dilogos.
0 = posicin relativa al inicio del control (esquina superior izquierda).
2 = Posicionamiento de la celda relativa a la celda actual. Un -1 para la
izquierda o superior no incrementan el inicio. La prxima lnea es 1,desplazamiento; prxima celda es con desplazamiento,-1; la celda
actual es -1,-1. Obviamente "desplazamiento" no puede ser -1 que
reserv para indicar el incremento. Pero si usted usa un mltiplo del
291

ancho entonces puede hacer un salto o ir hacia atrs.


GUIDataSeparatorChar

Define el carcter que delimitar los subitems en GUICtrlSetData.


El carcter por defecto es '|'.

GUIOnEventMode

habilita/deshabilita las notificaciones de las funciones OnEvent.


0 = (por defecto) deshabilitado.
1 = habilitado.

GUIResizeMode

Cambia el tamao por defecto de un control.


0 = (por defecto) conserva el tamao por defecto del control.
<1024 = cualquier tamao GUICtrlSetResizing.

GUIEventOptions

Cambia el comportamiento de eventos especiales o valores de retorno


de funciones GUI.
0 = (por defecto) Comportamiento de ventanas en "on clic" "on
Minimize",Restore, Maximize, Tamao.
1 = suprime el comportamiento de ventana en "on minimize",reajuste
de ventana, restore o maximize cuando damos clic en el botn.
Solamente enva las notificaciones.

MouseClickDelay

Altera el tiempo de retardo entre los clic de mouse.


Tiempo en milisegundos a pausar (por defecto=10).

MouseClickDownDelay

Altera el tiempo de retardo al presionar y liberar el mouse.


Tiempo en milisegundos a pausar (por defecto=10).

MouseClickDragDelay

Altera el tiempo de retardo entre las operaciones de iniciar y finalizar


del mouse en una operacin de arrastrar.
Tiempo en milisegundos a pausar (por defecto=250).

MouseCoordMode

Establece la forma en que son utilizadas las coordenadas en funciones


del mouse, ya sea para coordenadas absolutas o relativas a la ventana
actual:
0 = coordenadas relativas a la ventana actual
1 = coordenadas absolutas a la pantalla (por defecto)
2 = coordenadas relativas a la ventana cliente de la ventana actual

MustDeclareVars

Si esta opcin es utilizada entonces todas las variables deben ser


predeclaradas con Dim, Local o Global antes de poder ser usadas evita la oportunidad de usar variables mal deletreadas causando bugs
(errores).
1 = Las variables deben ser predeclaradas
0 = Las variables no necesitan ser predeclaradas (por defecto)

PixelCoordMode

establece la forma en que son utilizadas las coordenadas en funciones


de pxel, ya sea para coordenadas absolutas o relativas a la ventana
definida por hwnd [apuntador interno](por defecto la ventana activa):
0 = coordenadas relativas a la ventana actual
1 =coordenadas absolutas a la pantalla (por defecto)
2 = coordenadas relativas a la ventana cliente de la ventana actual

SendAttachMode

Especifica si AutoIt adjunta las entradas cuando es usada la funcin


Send().Cuando no estn adjuntas (por defecto=0) detectando el
estado de capslock/scrolllock y numlock pueda ser poco confiables en
Windows NT4. Sin embargo, cuando especificas y adjunta modo=1 la
sintaxis Send("{... down/up}") no trabajar y haya tal vez problemas
292

enviando teclas a una ventana "colgada". ControlSend() SIEMPRE


adjunta y no es afectada por este modo.
0 = no adjunta (por defecto)
1 = adjunta

SendCapslockMode

Especifica si AutoIt debera almacenar el estado de capslock antes de


una funcin Send y lo restaura posteriormente.
0 = no almacena/restaura
1 = almacena y restaura (por defecto)

SendKeyDelay

Altera la duracin de brevedad entre envos de teclas. Un valor de 0


remueve la espera completamente.

Tiempo en
milisegundos a pausar
(por defecto=5).

SendKeyDownDelay

Altera la duracin de tiempo entre el momento que una tecla est


presionada antes de liberarla. Para aplicaciones es necesitado el
registrar las teclas presionadas (y en muchos juegos) tal vez necesite
aumentar este valor del que viene por defecto. Un valor de 0 remueve
la espera completamente.

Tiempo en
milisegundos a pausar
(por defecto=5).
TCPTimeout

Define el tiempo en que las funciones de TCP declaran no


comunicacin.
Tiempo en milisegundos antes del tiempo lmite (por defecto=100).

TrayAutoPause

Script pausa cuando se da clic en el icono de la barra de tareas.


0 = no pausa
1 = pausa (por defecto). Si no existe DefaultMenu la pausa no ocurrir.

TrayIconDebug

Si est activado muestra la lnea del script actual en la bandeja de


iconos (tray icono) en un tip, que ayuda a depurar.
0 = no informacin de depuracin (por defecto)
1 = muestra la informacin

TrayIconHide

Oculta el icono de AutoIt, de la bandeja de conos (tray icono). Nota: El


icono inicialmente aparecer por ~750 milisegundos.
0 = Muestra el icono (por defecto)
1 = Oculta el icono

TrayMenuMode

Extiende el comportamiento del icono de la bandeja/menu. Esto


puede ser una combinacin(adicin)de los siguientes valores.
0 = por defecto tems de menu (Script Pause/Exit) son anexados para
el men creado por usuario; usuario revisa si los tems son estn
verificados; si usted da doble clic en el icono de la barra del sistema
entonces el id de control es devuelto con el estilo-"Default" (por
defecto).
1 = Menu no por defecto
2 = usuario crea tems de verificacin que no so automticamente deschequeados si damos clic en estos
4 = No retorna el itemMenuID que tiene el estilo-"por defecto" en el
menu principal si damos clic en el icono de la barra del sistema
293

8 = desactiva el auto chequeo de grupos de botones de radio

TrayOnEventMode

Habilita/deshabilita las notificaciones de las funciones de OnEvent


para el icono de la barra de tareas.
0 = (por defecto) deshabilitado
1 = habilitado

Especifica si el texto oculto de la ventana puede ser "visto" para


funciones de coincidencia en ventana.
WinDetectHiddenText
0 = No detecta texto oculto (por defecto)
1 = Detecta texto oculto

WinSearchChildren

Permite las rutinas de bsqueda de ventana, busque ventanas


dependientes (ventana hija) como ventanas de nivel sobresaliente
(top-level).
0 = Slo busca las ventanas de nivel mayor (por defecto)
1 = Busca en todas (nivel mayor y dependientes)

WinTextMatchMode

Altera el mtodo que es usado para coincidir con el texto de la


ventana durante las operaciones de bsqueda de ventana.
1 = Completo / modo lento (por defecto)
2 = Modo rpido
En modo rpido, AutoIt puede usualmente slo "ver" en el texto de
dilogo, texto en botn y ttulos de algunos controles. En el modo por
defecto mucho ms texto puede ser visto (por instancia el contenido
de la ventana de Notepad).
Si tiene problemas de rendimiento cuando realiza muchas bsquedas
de ventana, puede que ayude utilizar el modo rpido.

WinTitleMatchMode

Altera el mtodo que es usado para coincidir con los ttulos de las
ventanas.
1 = Coincide con el ttulo desde el inicio (por defecto)
2 = Coincide cualquier cadena en el ttulo
3 = Coincidencia exacta de ttulo
4 = Modo avanzado, ver Ttulos de ventanas y texto (Avanzados)
-1 a -4 = fuerza coincidencia en minsculas de acuerdo con otro tipo
de coincidencia.

WinWaitDelay

Altera cmo un script debera brevemente pausa despus de una


operacin exitosa relacionada con [Link] en milisegundos a
pausar (por defecto=250).

Relativo
Varios!
Ejemplo
; Utilize el que desee ;Valores por defecto son listados primero
Opt("CaretCoordMode", 1)
Opt("ExpandEnvStrings", 0)
Opt("ExpandVarStrings", 0)
Opt("GUICloseOnESC", 1)

;1=absoluto, 0=relativo, 2=cliente


;0=no expandir, 1=do expandir
;0=no expandir, 1=do expandir
;1=ESC cierra, 0=ESC no cierra
294

Opt("GUICoordMode", 1)
;1=absoluto, 0=relativo, 2=celda
Opt("GUIDataSeparatorChar","|") ;"|" es por defecto
Opt("GUIOnEventMode", 0)
;0=deshabilitado, 1=modo OnEvent habilitado
Opt("GUIResizeMode", 0)
;0=no redimencionar, <1024 redimencionamiento especial
Opt("GUIEventOptions",0) ;0=por defecto, 1=solo notificacin, 2=ndice tab GuiCtrlRead
Opt("MouseClickDelay", 10) ;10 Milisegundos
Opt("MouseClickDownDelay", 10) ;10 Milisegundos
Opt("MouseClickDragDelay", 250) ;250 Milisegundos
Opt("MouseCoordMode", 1)
;1=absoluto, 0=relativo, 2=cliente
Opt("MustDeclareVars", 0)
;0=no, 1=predeclaracin requerida
Opt("PixelCoordMode", 1)
;1=absoluto, 0=relativo, 2=cliente
Opt("SendAttachMode", 0)
;0=no anexa, 1=anexa
Opt("SendCapslockMode", 1) ;1=almacena y restaura, 0=no lo hace
Opt("SendKeyDelay", 5)
;5 milisegundos
Opt("SendKeyDownDelay", 1) ;1 milisegundos
Opt("TCPTimeout",100)
;100 milisegundos
Opt("TrayAutoPause",1)
;0=no pausa, 1=Pausa
Opt("TrayIconDebug", 0)
;0=no inforacin, 1=linea debug de informacin
Opt("TrayIconHide", 0)
;0=mostrar 1=ocultar icono de barra de tareas
Opt("TrayMenuMode",0)
;0=aadir, 1=men no por defecto, 2=chequeo no automtico,
4=menuitemID no retornado
Opt("TrayOnEventMode",0)
;0=deshabilitado, 1=habilitado
Opt("WinDetectHiddenText", 0) ;0=no detectado, 1=detectado
Opt("WinSearchChildren", 1) ;0=no, 1=bsqueda de hijos tambin
Opt("WinTextMatchMode", 1) ;1=completo, 2=rpido
Opt("WinTitleMatchMode", 1) ;1=iniciar, 2=subStr, 3=exacto, 4=avanzado, -1 to -4=Nocase
Opt("WinWaitDelay", 250)
;250 milisegundos

AutoItWinGetTitle

Devuelve el ttulo de la ventana de AutoIt.


AutoItWinGetTitle ( )
Parmetros
Ninguno.
Valor de Retorno
Devuelve una cadena conteniendo el ttulo de la ventana de AutoIt.
Comentarios
Ninguno.
Relativo
AutoItWinSetTitle, WinGetTitle
295

Ejemplo
$a = AutoItWinGetTitle()

AutoItWinSetTitle

Cambia el ttulo de la ventana de AutoIt.


AutoItWinSetTitle ( "nuevo ttulo" )
Parmetros
nuevo ttulo El nuevo ttulo de la ventana.
Valor de Retorno
Ninguno.
Comentarios
La ventana de AutoIt es usualmente ocultada. El propsito para cambiar el ttulo es para
permitir que otros programas (o otros script de AutoIt) puedan interactuar con AutoIt.
Relativo
AutoItWinGetTitle, WinSetTitle
Ejemplo
AutoItWinSetTitle("Mi ventana de AutoIt")

BlockInput
Habilita/deshabilita el mouse y el teclado.
BlockInput (flag)
Parmetros
flag

1 = Deshabilita las entradas de usuario


0 = Habilita las entradas de usuario

Valor de Retorno
Con xitos
Al Fallar

Devuelve 1.
Devuelve 0. Si realmente esta habilitada o #requireAdmin no es usado.
296

Comentarios
La tabla de abajo muestra como el comportamiento de BlockInput depende de la versin de
Windows; Sin embargo, presionando Ctrl+Alt+Del en cualquier plataforma rehabilita las
entradas para las caractersticas API de Windows.
Sistema
Operativo

Resultados de "BlockInput"

Windows
2000

Entrada de usuario es bloqueada y AutoIt puede simular la entrada mouse y


teclado.

Windows XP

Entrada de usuario es bloqueada y AutoIt puede simular la entrada mouse y


teclado. Ver los comentarios ms abajo para un asunto con Windows XP SP1.

Windows
Vista

Entrada de usuario es bloqueada y AutoIt puede simular la entrada mouse y


teclado si #requireAdmin es usado.

Un Windows hotfix fu liberado para Windows XP SP1 que contena un bug que prevena la
tecla Alt para que fuera enviada (via la funcin Send()) mientras BlocKInput() esta activo. El
nuevo bug de Windows es corregido en Windows XP SP2 y reciente.
BlockInput() solo afecta entradas de usuario. La entrada desde funciones como Send() o
MouseMove() trabajan a pesar de ello.
Relativo
Send
Ejemplo
BlockInput(1)
Run("notepad")
WinWaitActive("[CLASS:Notepad]")
Send("{F5}") ;inserta tiempo y hora
BlockInput(0)

Break

Habilita o desactiva la posibilidad del usuario de finalizar el script desde el icono de la barra de
tarea.
Break (modo)
Parmetros

297

modo

Estableciendo el modo de ruptura (Break):


1 = Break es habilitado (usuario puede finalizar) (por defecto)
0 = Break es deshabilitado (usuario no puede finalizar)

Valor de Retorno
Ninguno.
Comentarios
Por favor deshabilite break solamente por una buena razn.
AutoIt normalmente crea un icono en la barra de tareas de Windows cuando inicia, y dando
clic derecho en el mismo el usuario puede finalizar el script. Si Break es deshabilitado (0),
entonces el usuario no puede terminar el script de este modo.
Relativo
Ninguno.
Ejemplo
Break(0) ;deshabilita break

Call

Invoca una Funcin de usuario contenida en una cadena como parmetro.


Call ( "funcin" [, parmetro1 [, parmetro2 [, parmetroN ]]] )
Parmetros
funcin

El nombre de la funcin de usuario a invocar.

parmetro

Argumentos que sern pasado a la funcin como parmetros al ser invocada.

Valor de Retorno
Con xitos
Al Fallar

Devuelve el valor retornado por la funcin indicada. @error y @extended


pueden contener valores si la llamada a la funcin los coloc.
Establece @error a 0xDEAD y @extended a 0xBEEF si la funcin no existe o
nmero nvlido de parmetros.

Comentarios
La funcin no puede ser una funcin predefinida de AutoIt o una funcin de plug-in .
La funcin puede pasar argumentos a funciones, sin embargo, los parmetros ByRef no son
soportados; pues no existe manera de recuperar un parmetro ByRef.
298

Un arreglo especial puede ser pasado como un nico parmetro. Este arreglo debe contener
en el primer elemento la cadena: "CallArgArray" y los elementos 1 - n sern pasado como
argumentos separados a la funcin. En caso de utilizar este arreglo especial, ningn otro
argumento puede ser pasado a Call(). Ver ejemplo para una demostracin.
Call() en s msma puede establecer el flag @error o la funcin llamada puede establecer el flag
@error. Si Call() establece @error el valor ser 0xDEAD y @extended ser establecido tambin
a 0xBEEF. Vea el ejemplo para una demostracin de prueba para una funcin que no fu
encontrada.
Relativo
Execute
Ejemplo
; Esto llama a una funcin sin aceptar argumentos.
Call("Test1")
; esto llama a una funcin aceptando un argumento y pasando este como argumento.
Call("Test2", "Mensaje desde Call()!")
; Esto demustra como utilizar un arreglo especial de argumentos.
Global $aArgs[4]
$aArgs[0] = "CallArgArray" ; Esto es requerido, de otro modo, Call() no reconocer un arreglo
conteniendo argumentos
$aArgs[1] = "Esto es una cadena" ; Primer parmetro es cadena
$aArgs[2] = 47 ; Segundo parmetro es un nmero
Global $array[2]
$array[0] = "Elemento del arreglo 0"
$array[1] = "Elemento del arreglo 1"
$aArgs[3] = $array ; Tercer parmetro es un arreglo
; Ya tenemos el arreglo especial, ahora invocamos la funcin
Call("Test3", $aArgs)
; testea si la llamada se hace a una funcin que no existe. Esto muestra la forma correcta de
experimentar
; La comprobacin de ambos @error y @extended contienen los valores de fallo
documentados.
Local Const $sFunction = "DoesNotExist"
Call($sFunction)
If @error = 0xDEAD And @extended = 0xBEEF Then MsgBox(4096, "", "Funcin no existe.")
Func Test1()
MsgBox(4096, "", "Hola")
EndFunc
Func Test2($sMsg)
MsgBox(4096, "", $sMsg)
EndFunc
299

Func Test3($sString, $nNumber, $aArray)


MsgBox(4096, "", "La cedena es: " & @CRLF & $sString)
MsgBox(4096, "", "La cadena es: "& @CRLF & $nNumber)
For $i = 0 To UBound($aArray) - 1
MsgBox(4096, "", "Array[" & $i & "] conteniendo:" & @CRLF & $aArray[$i])
Next
EndFunc

CDTray

Abre o cierra la bandeja del CD.


CDTray ( "drive", "status" )
Parmetros
drive

La letra de la unidad de CD para controlar, en el formato D:, E:, etc.

status

Especifica el tipo de operacin: abrir "open" o cerrar "closed" la bandeja.

Valor de Retorno
Con xitos
Al Fallar

Devuelve 1.
Devuelve 0 si la unidad esta bloqueada por un software quemador de CD o si la
letra no corresponde a una unidad de CD.

Comentarios
CDTray funciona en unidades de CD virtuales tales como DAEMON Tools.
CDTray no trabaja en unidades no-locales/mapeadas de CD pues debe estar corriendo en el
computador que poseen las unidades de CD a controlar.
CDTray("X:", "close") tiende a devolver 0 an en estilo-laptop que slo puede cerrarse
manualmente.
Relativo
DriveGetType, DriveStatus
Ejemplo
; Abriendo la torre de CD en la unidad E:
CDTray("E:", "open")

Execute

300

Ejecuta una expresin.


Execute (cadena)
Parmetros
string

Cadena conteniendo la expresin para ser evaluada.

Valor de Retorno
Con xitos
Al Fallar

Devuelve el valor de la expresin evaluada.


Devuelve "" (cadena vaca) con @error fijado a valor diferente de 0.

Comentarios
Ninguno.
Relativo
Assign, Eval, Call
Ejemplo
$a=1
$v=Execute("$a+1") ; $v es establecido a 2

OnAutoItExitRegister

Registra una funcin para ser llamada cuando AutoIt inicia.


OnAutoItExitRegister( "funcin" )
Parmetros
funcin

El nombre de la funcin para llamar.

Valor de Retorno
Con xitos:
Al Fallar:

Devuelve 1. @extended puede ser establecido si es realmente registrado.


Devuelve 0.

Comentarios
El cdigo de salida puede ser recibido desde @ExitCode.
El modod de salida puede recibido desde @ExitMethod.
0

Cierre natural.
301

cerrado por la funcin Exit.

cerrado por clic en 'exit' en el icono de la barra del sistema (systray).

cerrado por reinicio de sesin (logoff).

cerrado por cierre de Windows (shutdown).

Relativo
OnAutoItExitUnRegister, Exit
Ejemplo
OnAutoItExitRegister("MyTestFunc")
OnAutoItExitRegister("MyTestFunc2")
Sleep(1000)
Func MyTestFunc()
MsgBox(64, "Exit Resultado 1", 'Mensaje de Exit desde MyTestFunc()')
EndFunc
Func MyTestFunc2()
MsgBox(64, "Exit Resultado 2", 'Mensaje de Exit desde MyTestFunc()')
EndFunc

OnAutoItExitUnRegister

Des-registra una funcin que es llamada cuando AutoIt finaliza.


OnAutoItExitUnregister( "funcin" )
Parmetros
funcin

El nombre de la funcin de usuario que ser llamada.

Valor de Retorno
Con xitos:
Al Fallar:

Devuelve 1.
Devuelve 0.

Comentarios
Ninguno.
Relativo
OnAutoItExitRegister
302

Ejemplo
OnAutoItExitRegister("MyTestFunc")
OnAutoItExitRegister("MyTestFunc2")
Sleep(1000)
OnAutoItExitUnRegister("MyTestFunc")
Func MyTestFunc()
MsgBox(64, "Exit Resultado 1", 'Mensaje de Exit desde MyTestFunc()')
EndFunc
Func MyTestFunc2()
MsgBox(64, "Exit Resultado 2", 'Mensaje de Exit desde MyTestFunc()')
EndFunc

SetError

Establece manualmente el valor de la macro @error.


SetError ( cdigo [, extendido [, valor de retorno]] )
Parmetros
cdigo

El valor requerido (entero) para establecer la macro @error.

extendido

[opcional] El valor opcional valor (entero) para establecer la macro @extended.


Este establece el mismo macro como la funcin SetExtended()

valor de
retorno

[opcional] Sobrescribe el valor devuelto por defecto y devuelve este parmetro.

Valor de Retorno
Por defecto, ninguno, sin embargo si 'valor de retorno' es pasado, entonces la funcin
devolver ese valor.
Comentarios
Cuando entra en una funcin, @error es establecido a 0. A menos que SetError() sea llamado,
entonces @error mantendr 0 despus que la funcin haya terminado. Esto significa que en el
orden para establecer @error despus de una funcin, debe ser explcitamente establecido.
Este tambin significa que usted tal vez necesite respaldar el estado de @error en una variable
si usted est utilizando un ciclo While-WEnd.
El parmetro 'extendido' es opcional. Este solamente es provisto como a manera de establecer
ambos @error y @extended al mismo tiempo. Si solamente @extended se necesita establecer,
entonces es recomendado usar la funcin SetExtended() en su lugar.
303

Relativo
SetExtended
Ejemplo
$result = myDiv(5, 0)
If @error Then
MsgBox(4096,"Error", "Division por Cero")
Else
MsgBox(4096, "Resultado", $result)
EndIf
Exit
Func myDiv($dividend, $divisor)
If $dividend = 0 And $divisor = 0 Then
SetError(2) ; forma indeterminada de 0/0
ElseIf $divisor = 0 Then
SetError(1) ; divisin por cero
EndIf
Return $dividend / $divisor
EndFunc

SetExtended

Manualmente establece el valor del macro @extended.


SetExtended ( cdigo [, valor de retorno] )
Parmetros
cdigo

El valor requerido (entero) para establecer la macro @extended.

valor de
retorno

[opcional] Sobrescribe el valor de retorno predeterminado y devuelve este


parmetro.

Valor de Retorno
Por defecto, ninguno, sin embargo, si 'valor de retorno' es pasado, entonces la funcin
devolver ese valor.
Comentarios
Al entrar en una funcin el macro @extended es establecido a 0. A menos que SetExtended()
sea llamado, entonces @extended mantendr 0 despus de que la funcin haya terminado.
Esto significa que en el orden para que @extended sea establecido despus de una funcin, se
debe establecer explcitamente. Esto tambin significa que usted necesitar hacer un respaldo
del estado de @extended en una variable si lo est probando en un ciclo While-WEnd.
304

Relativo
SetError
Ejemplo
SetExtended(10)
MsgBox(4096, "Valor de @Extended es", @extended)

VarGetType

Devuelve el tipo de representacin interna de un dato variante.


VarGetType ( expresin )
Parmetros
expresin

Una expresin para revisar el tipo de representacin interna.

Valor de Retorno
Devuelve una cadena representando el tipo de acuerdo con expresin.
Comentarios
IsInt puede devolver diferentes resultados si intenta convertir de una cadena a flotante.
Relativo
IsInt, IsFloat, IsString, IsBinary, IsArray, IsDllStruct, IsHwnd, IsObj, IsBool, IsKeyword
Ejemplo
$int = 1
$float = 2.0
Msgbox(0, "Tipos", "$int es " & VarGetType($int) & @CRLF & "$float es " & VarGetType($float)
)

305

Referencia de Control del Puntero


A continuacin se muestra una lista completa de las funciones de Control del Puntero
disponibles en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.
Funcin

Descripcin

MouseClick

Realiza una operacin de clic del mouse.

MouseClickDelay
(Option)

Altera el tiempo de retardo entre los clic de mouse.

MouseClickDownDelay
Altera el tiempo de retardo al presionar y liberar el mouse.
(Option)
MouseClickDrag

Realiza una operacin clic-y-arrastre con el mouse.

MouseClickDragDelay
(Option)

Altera el tiempo de retardo entre las operaciones de iniciar y finalizar


del mouse en una operacin de arrastrar.

MouseCoordMode
(Option)

Establece la forma en que son utilizadas las coordenadas en funciones


del mouse, ya sea para coordenadas absolutas o relativas a la ventana
actual:

MouseDown

Realiza un evento de presionar el mouse hacia abajo en la posicin


actual del mouse.

MouseGetCursor

Devuelve el nmero de ID del cursor actual del mouse.

MouseGetPos

Recupera la posicin actual de mouse.

MouseMove

Mueve el cursor del mouse.

MouseUp

Realiza un evento de presionar el mouse hacia arriba en la posicin


actual del mouse.

MouseWheel

Mueve la rueda del mouse arriba o abajo. Solamente en NT/2000/XP.

MouseClick
Realiza una operacin de clic del mouse.
MouseClick ("botn" [, x, y [, clics [, velocidad ]]])
Parmetros
botn

El botn a pulsar: "left" (izquierda), "right" (derecho), "middle" (intermedio),


"main" (principal), "menu", "primary" (primario), "secondary" (secundario).

x, y

[opcional] Las coordenadas x/y a mover el mouse. Si las coordenadas x y y no


son dadas, la posicin actual es usada (por defecto)
306

clics

[opcional] El nmero de veces a pulsar el mouse. Por defecto es 1.

velocidad

[opcional] La velocidad a mover el mouse en el rango 1 (ms rpido) a 100 (ms


lento). Una velocidad de 0 mover el ratn instantneamente. Por defecto
velocidad es 10.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve 1.
Devuelve 0, el botn sugerido no est en lista o se entra parmetros invlidos
como x sin y.

Comentarios
Si el botn es una cadena vaca(""), el botn izquierdo ser pulsado.
Si x o y es igual a la palabra reservada Default no ocurre movimiento en las correspondiente
coordenadas.
Si el usuario ha intercambiado los botones de izquierda y derecha del mouse en el Panel de
Control, entonces el comportamiento de los botones ser diferente. "Left" y "derecho"
siempre sern iguales, aunque hayan sido cambiados o no. El botn "primary" o "main" ser el
clic principal, si se han intercambiados o no los botones. Los botones "secondary" o "menu"
usualmente mostrarn el men contextual, aunque los botones hayan sido cambiados o no.
Botn

Normal

Intercambiado

""

Left

Left

"left"

Left

Left

"middle"

Middle

Middle

"right"

Right

Right

"primary"

Left

Right

"main"

Left

Right

"secondary"

Right

Left

"menu"

Right

Left

Relativo
MouseClickDrag, MouseGetPos, MouseMove, MouseCoordMode (Option), MouseClickDelay
(Option), ControlClick, MouseDown, MouseUp, MouseWheel
Ejemplo
; Doble clic a la posicin actual del mouse
MouseClick("left")
MouseClick("left")
; Doble clic en 0,500
307

MouseClick("left", 0, 500, 2)

; VERSION SEGURA de doble clic en 0,500 - toma en cuenta la configuracin de la cuenta de


usuario
MouseClick("primary", 0, 500, 2)

MouseClickDrag

Realiza una operacin clic-y-arrastre con el mouse.


MouseClickDrag ("botn", x1, y1, x2, y2 [, velocidad])
Parmetros
botn

El botn a pulsar: "left" (izquierda), "right" (derecho), "middle" (intermedio),


"main" (principal), "menu", "primary" (primario), "secondary" (secundario)

x1, y1

Las coordenadas x/y a iniciar la operacin de arrastre.

x2, y2

Las coordenadas x/y al final de la operacin de arrastre.

velocidad

[opcional] La velocidad a mover el mouse en el rango 1 (ms rpido) a 100 (ms


lento). Una velocidad de 0 mover el ratn instantneamente. Por defecto la
velocidad es 10.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve 1.
Devuelve 0, el botn no est en lista.

Comentarios
Si el botn es una cadena vaca, el botn izquierdo ser pulsado.
Si el usuario ha intercambiado los botones izquierdo y derecho en el Panel de control,
entonces el comportamiento de los botones ser diferente. "Left" y "Right" siempre pulsa esos
botones, aunque los botones sean intercambiados no. El botn "primary" o "main" ser el clic
principal, aunque los botones sean intercambiados. El botn "secondary" o "menu"
usualmente mostrar el men contextual, aunque los botones sean intercambiados o no.
Relativo
MouseClick, MouseGetPos, MouseMove, MouseCoordMode (Option), MouseClickDragDelay
(Option), MouseDown, MouseUp, MouseWheel
Ejemplo
; Clic derecho arrastrado desde 0,200 to 600, 700
MouseClickDrag("left", 0, 200, 600, 700)
308

MouseDown

Realiza un evento de presionar el mouse hacia abajo en la posicin actual del mouse.
MouseDown ("botn")
Parmetros
botn

El botn a pulsar: "left" (izquierda), "right" (derecho), "middle" (intermedio),


"main" (principal), "menu", "primary" (primario), "secondary" (secundario)

Valor de Retorno
Con xito:
Al Fallar:

Devuelve 1.
Devuelve 0, el botn no est en lista.

Comentarios
Ver Observaciones de MouseClick.
Responsabilidad de usuario: Para cada MouseDown debe eventual haber un acontecimiento
correspondiente de MouseUp.
Relativo
MouseUp, MouseClick, MouseClickDrag, MouseGetPos, MouseMove, MouseCoordMode
(Option), MouseClickDownDelay (Option)
Ejemplo
MouseDown("left")
Sleep(100)
MouseUp("left")

MouseGetCursor

Devuelve el nmero de ID del cursor actual del mouse.


MouseGetCursor ( )
Parmetros
Ninguno.
Valor de Retorno
309

Devuelve el nmero de ID del cursor:


0 = UNKNOWN (este incluye puntero e conos de manos)
1 = APPSTARTING
2 = ARROW
3 = CROSS
4 = HELP
5 = IBEAM
6 = ICON
7 = NO
8 = SIZE
9 = SIZEALL
10 = SIZENESW
11 = SIZENS
12 = SIZENWSE
13 = SIZEWE
14 = UPARROW
15 = WAIT
16 = HAND
Comentarios
Ninguno.
Relativo
MouseGetPos
Ejemplo
sleep(2000) ;da tiempo para mover el mouse antes de reportar el ID
;crea un arreglo que nos dice el significado del nmero ID
$IDs = StringSplit("AppStarting|Arrow|Cross|Help|IBeam|Icon|No|" & _
"Size|SizeAll|SizeNESW|SizeNS|SizeNWSE|SizeWE|UpArrow|Wait|Hand", "|")
$IDs[0] = "Unknown"
$cursor = MouseGetCursor()
MsgBox(4096, "ID = " & $cursor, "Cual significa " & $IDs[$cursor])

MouseGetPos

Recupera la posicin actual de mouse.


MouseGetPos ([dimensin])
Parmetros
Dimensin

[opcional] Un argumento opcional que determina que valor que ser devuelto.
Ver Valor Devuelto.
310

Valor de Retorno
Dimensin

Valores

Ninguno

Devuelve un arreglo de dos-elementos conteniendo las coordenadas del mouse:


$arreglo[0] = coordenada X (horizontal), $arreglo[1] = coordenada Y (vertical)

Devuelve la coordenada X como un entero.

Devuelve la coordenada Y como un entero.

Si la dimensin no es un nmero, entonces @error ser establecido a 1.


Comentarios
Ver MouseCoordMode para configurar posicin relativa/absoluta. Si la posicin es relativa, los
nmeros pueden ser negativos.
Relativo
MouseClick, MouseClickDrag, MouseMove, MouseCoordMode (Option), MouseDown,
MouseGetCursor, MouseUp, MouseWheel, PixelGetColor
Ejemplo
$pos = MouseGetPos()
MsgBox(0, "Mouse x,y:", $pos[0] & "," & $pos[1])

MouseMove

Mueve el cursor del mouse.


MouseMove (x, y [,velocidad])
Parmetros
x

La coordenada x en pantalla a mover el mouse.

La coordenada y en pantalla a mover el mouse.

velocidad

[opcional] La velocidad a mover el mouse en el rango 1 (ms rpido) a 100 (ms


lento). Una velocidad de 0 mover el ratn instantneamente. Por defecto la
velocidad es 10.

Valor de Retorno
Ninguno.
Comentarios

311

Ninguno.
Relativo
MouseClick, MouseClickDrag, MouseGetPos, MouseCoordMode (Option), MouseDown,
MouseUp, MouseWheel
Ejemplo
MouseMove(10, 100)
MouseMove(700, 700, 0)

MouseUp

Realiza un evento de presionar el mouse hacia arriba en la posicin actual del mouse.
MouseUp ("botn")
Parmetros
botn

El botn a pulsar: "left" (izquierda), "right" (derecho), "middle" (intermedio),


"main" (principal), "menu", "primary" (primario), "secondary" (secundario).

Valor de Retorno
Con xito:
Devuelve 1.
Al Fallar:
Devuelve 0, el botn no est en lista.
Comentarios
Ver Observaciones de MouseClick.
Responsabilidad de usuario: Para cada MouseDown eventual debe haber un acontecimiento
correspondiente de MouseUp.
Relativo
MouseDown, MouseClick, MouseClickDrag, MouseGetPos, MouseMove, MouseCoordMode
(Option)
Ejemplo
MouseDown("left")
Sleep(100)
MouseUp("left")

MouseWheel

312

Mueve la rueda del mouse arriba o abajo. Solamente en NT/2000/XP.


MouseWheel ("direccin"[, clicks])
Parmetros
direccin

"up"(arriba) o "down"(abajo)

clicks

[opcional] El nmero de veces a mover la rueda. Por defecto es 1.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve 1.
Devuelve 0, la direccin no es reconocida.

Comentarios
Esta funcin slo puede funcionar en NT, 2000, XP y sistemas operativos posteriores.
Relativo
MouseClick, MouseClickDrag, MouseGetPos, MouseMove, MouseCoordMode (Option)
Ejemplo
; Mueve la rueda deslizante del mouse 10 veces
MouseWheel("up", 10)

313

Referencia de Funciones de Red


A continuacin se muestra una lista completa de las funciones de Funciones de Red
disponibles en AutoIt. Click en una de ellas para obtener detalles de su [Link]
los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI Incluidas si
usted necesita usarlo para constantes de controles.
Funcin

Descripcin

FtpSetProxy

Establece el proxy de internet para usar en acceso FTP.

HttpSetProxy

Establece el proxy de internet para tener acceso va http.

HttpSetUserAgent

Establece la cadena user-agent enviada con peticiones InetGet() y


InetRead().

InetClose

Cierra un identificador (handle) devuelto desde InetGet().

InetGet

Descarga una archivo de Internet usando los protocolos HTTP, HTTPS o


FTP

InetGetInfo

Devuelve detalles de datos para un identificador (handle) devuelto


desde InetGet().

InetGetSize

Devuelve el tamao (en bytes) de un archivo localizado en internet.

InetRead

Descarga un fichero desde internet usando los protocolos HTTP,


HTTPS o FTP.

Ping

Enva pings a un host y devuelve el tiempo de ida-y-vuelta.

TCPAccept

Permite una conexin entrante intentando en un socket.

TCPCloseSocket

Cierra un socket de TCP.

TCPConnect

Crea un socket conectado un servidor existente.

TCPListen

Crea un socket en espera para una conexin entrante.

TCPNameToIP

Convierte un nombre de Internet a direccin de IP.

TCPRecv

Recibe datos de un socket conectado.

TCPSend

Enva datos en un socket conectado.

TCPShutdown

Detiene los servicios de TCP/UDP.

TCPStartup

Empieza los servicios de TCP o UDP.

TCPTimeout (Option)

Define el tiempo en que las funciones de TCP declaran no


comunicacin.

UDPBind

Crea un socket delimitado para una conexin entrante.

UDPCloseSocket

Cierra un socket UDP.

UDPOpen

Abre un socket conectado para un servidor existente.

314

UDPRecv

Recibe datos de un socket abierto.

UDPSend

Enva un dato por un socket abierto.

UDPShutdown

UDPStartup

FtpSetProxy
Establece el proxy de internet para usar en acceso FTP.
FtpSetProxy ( modo [, "proxy:port" [, "username", ["password"]] )
Parmetros

modo

El modo proxy para usar:


0 = (por defecto) Usa la configuracin actual del Internet Explorer para el Proxy.
1 = No usa proxy (acceso directo)
2 = Usa el proxy especificado

proxy:port

[opcional] La direccin y el puerto para conectarse. Ver comentarios ms abajo.

username

[opcional] Si es requerido, el nombre de usuario para proxy

password

[opcional] Si es requerido, el password para proxy

Valor de Retorno
Ninguno.
Comentarios
Internet Explorer 3 o superior debe ser instalado para que esta funcin funcione.
Solo servidores proxy CERN son soportados.
Los servidores proxy son usualmente representados por una direccin web y un nmero de
puerto. Muchos ISPs (proveedores de servicio) usan el nmero de puerto 8080. Si su proxy es
"[Link]" y puerto es "8080" entonces la forma de establecer la configuracin es:
FtpSetProxy(2, "[Link]")
Muchos servidores proxy no requieren un nombre de usuario y password.
Cuando usamos el modo 0 usted puede especificar un username and password y estos sern
usados en el proxy configurado en Internet Explorer.
Relativo
InetGet, InetGetSize, InetRead, HttpSetProxy

315

Ejemplo
; No usa proxy
FtpSetProxy(1)
; Usa el proxy por defecto del IE
FtpSetProxy(0)
; Usa el proxy "[Link]" por el puerto 8080
FtpSetProxy(2, "[Link]")

HttpSetProxy
Establece el proxy de internet para tener acceso va http.
HttpSetProxy ( modo [, "proxy:port" [, "username", ["password"]] )
Parmetros

modo

El modo de uso del proxy:


0 = (por defecto) Usa la configuracin actual para el proxy en Internet Explorer.
1 = No usa proxy (acceso directo)
2 = Usar el proxy especificado

proxy:port

[opcional] La direccin y el puerto a usar. Ver observaciones ms abajo.

username

[opcional] Si es requerido, el nombre de usuario para el proxy.

password

[opcional]Si es requerido, el password para el proxy.

Valor de Retorno
Ninguno.
Comentarios
Internet Explorer 3 o superior deben ser instalados para que esta funcin trabaje.
Solo servidores proxy CERN son soportados.
Los servidores proxy son usualmente creados con una direccin y un puerto. Muchos ISPs usan
el nmero de puerto 8080. Si su proxy es "[Link]" y su puerto es "8080" entonces
usted puede establecer el proxy de esta forma:
HttpSetProxy(2, "[Link]")
Muchos servidores proxy no requieren nombre de usuario y password.
Cuando usamos el modo 0 usted puede especificar un username y password y estos sern
usados en la configuracin del proxy de Internet Explorer.
Relativo
316

InetGet, InetGetSize, InetRead, FtpSetProxy


Ejemplo
; No usa proxy
HttpSetProxy(1)
; Usa el proxy por defecto de IE
HttpSetProxy(0)
; Usa el proxy "[Link]" en el puerto 8080
HttpSetProxy(2, "[Link]")

HttpSetUserAgent
Establece la cadena user-agent enviada con peticiones InetGet() y InetRead().
HttpSetUserAgent ( "user agent" )
Parmetros

user agent

La cadena a ser enviada como el user-agent. Por defecto el user-agent es


"AutoIt". Pase una cadena en blanco para resetear el user-agent anterior por
defecto.

Valor de Retorno
Ninguno.
Comentarios
Ninguno.
Relativo
InetGet, InetGetSize, InetRead
Ejemplo
HttpSetUserAgent("MiUserAgent")

InetClose
Cierra un identificador (handle) devuelto desde InetGet().
InetClose ( identificador )

317

Parmetros
identificador Un identificador devuelto por InetGet().
Valor de Retorno
True si el identificador fu encontrado y cerrado, False si no.
Comentarios
Los identificadores InetGet() deben ser cerrados o los recursos pueden perderse.
Al cerrar el identificador de una descarga en progreso har que esta se cancele.
Relativo
InetGet
Ejemplo
Local $hDownload = InetGet("[Link]
@TempDir & "\[Link]", 1, 1)
Do
Sleep(250)
Until InetGetInfo($hDownload, 2) ; Chequea si la descarga es completada.
Local $nBytes = InetGetInfo($hDownload, 0)
InetClose($hDownload) ; Cierra el identificador para liberar el recurso.
MsgBox(0, "", "Bytes ledos: " & $nBytes)

InetGet

Descarga una archivo de Internet usando los protocolos HTTP, HTTPS o FTP
InetGet ( "URL" [,"nombre de fichero" [, opciones [, background]]] )
Parmetros
URL

La URL del archivo para descargar. Ver observaciones ms abajo.

nombre de
fichero

[opcional]Nombre local que tendr el archivo descargado.

opciones

[opcional]0 = (por defecto) Obtiene el archivo de la cach local si es posible


1 = Obliga a cargar el archivo desde el sitio original.
2 = Ognora todos los errores SSL (con conecciones HTTPS).
4 = Usa ASCII con tranferencias de ficheros por el protocolo FTP (Puede no estar
combinado con flag 8).
8 = Usa BINARY con tranferencias de ficheros por el protocolo FTP ((Puede no
estar combinado con flag 4). Este es el modo de transferencia por defecto si
ninguno es provisto.

318

16 = Fuerza una coneccin By-pass online (Ver comentarios).


background

[opcional]0 = (por defecto) Espera hasta que la descarga se complete.


1 = la funcin retorna inmediatamente y deja que la descarga siga en segundo
plano (ver comentarios).

Valor de Retorno
Con xitos

El valor devuelto depende si la descargar se efectua en segundo plano:


Segundo plano: Un identificador (handle) es devuelto. El identificador puede ser
usado con InetGetInfo(). El identificador debe cerrarse con InetClose().
En espera: El nmero de bytes descargados.
Segundo plano: Un identificador (handle) es devuelto. Para determinar si
ocurri un error utilize InetGetInfo(). El identificador debe cerrarse con
InetClose().
En espera: Establece @error a no-cero y retorna 0.

Comentarios
Internet Explorer 3 o superior deben ser instalados para que esta funcin trabaje.
El parmetro URL debe ser la forma "[Link] - tal como
usted lo escribe en la barra de direcciones de su navegador.
Para usar un nombre de usuario y un password simplemente colquelos como prefijo de la
URL: "username:password@", ejemplo.
"[Link]
Notas acerca del parmetro "background"
Por defecto la funcin espera hasta que la descarga finalize antes de retornar. si el parmetro
background es establecido a 1 la funcin retorna inmediatamente y la descarga continua en
segundo plano. La funcin InetGetInfo() puede ser usado para chequear el estado de la
descarga. Esta toma un apuntador devuelto desde InetGet().
Descargas mltiples son soportadas si esta iniciado el modo segundo plano.
Para abortar una descarga utilize InetClose() y psale un identificador devuelto desde
InetGet().
Por defecto AutoIt fuerza la coneccin antes de comenzar la descarga. Para usuarios dial-up
esta puede mostrar un prompt para online o marcar por modem (dependiendo de como el
sistema es configurado). El valor opcional 16 deshabilita este comportamiento. Deshabilitar el
comportamiento puede resultar til para conecciones persistentes (Banda ancha, LAN). Sin
embargo, este es tambin requerido para trabajar en ciertos modos en Windows Vista y
Windows 7.
Relativo

319

InetGetSize, InetRead, InetGetInfo, InetClose, HttpSetProxy, FtpSetProxy, HttpSetUserAgent


Ejemplo
InetGet("[Link] @TempDir & "\[Link]")
InetGet("[Link] @TempDir & "[Link]", 1)
InetGet("[Link] @TempDir & "\[Link]",
1)
; Ejemplo avanzado - descargando en segundo plano
Local $hDownload = InetGet("[Link]
@TempDir & "\[Link]", 1, 1)
Do
Sleep(250)
Until InetGetInfo($hDownload, 2) ; Chequea si la descarga es completada
Local $nBytes = InetGetInfo($hDownload, 0)
InetClose($hDownload) ; Cierra el identificador para liberar el recurso
MsgBox(0, "", "Bytes ledos: " & $nBytes)

InetGetInfo
Devuelve detalles de datos para un identificador (handle) devuelto desde InetGet().
InetGetInfo( [ identificador [, ndice ]] )
Parmetros
identificador [opcional] Un identificador devuelto desde InetGet().

ndice

[opcional] El ndice del dato a recibir. Si este valor es -1 un arreglo recibiendo


todos los damos mostrados abajo ser mostrado.
0 - Bytes ledos hasta el momento (esto es actualizado mientras la descarga
progresa).
1 - El tamao de la descarga (esto no siempre esta presente).
2 - Establecido a True si la descarga se completa, False si la descarga esta en
progreso.
3 - Establecido a True si la descarga fu satisfactoria. Si es False entonces el
prximo miembro de dato ser establecido a no-cero.
4 - El valor error para la descarga. El valor en s msmo es albitrario.
Comprobando que estevalor sea no-cero es suficiente para determinar si un
error ocurri.
5 - El valor extendido para la descarga. El valor es albitrario y es primariamente
solo til para desarrolladores de AutoIt.

Valor de Retorno
Con xitos - El dato requerido.
Al Fallar - Una cadena en blanco "" y @error es establecido a no-cero.
Comentarios
320

Si es llamado sin argumentos entonces es devuelto es nmero total de descargas activas.


Esta funcin puede ser llamada dentro de un ciclo para consultar el nmero de bytes
descargados o para pausar mientras la descarga es completada.
Relativo
InetGet
Ejemplo
#Alternate
Local $hDownload = InetGet("[Link]
@TempDir & "\[Link]", 1, 1)
Do
Sleep(250)
Until InetGetInfo($hDownload, 2) ; Chequea si la descarga es completada
Local $aData = InetGetInfo($hDownload) ; Obtiene toda la informacin
InetClose($hDownload) ; Cierrra el identificador para liberar el recurso
MsgBox(0, "", "Bytes ledos: " & $aData[0] & @CRLF & _
"Tamao: " & $aData[1] & @CRLF & _
"Completado?: " & $aData[2] & @CRLF & _
"Satisfactorio?: " & $aData[3] & @CRLF & _
"@error: " & $aData[4] & @CRLF & _
"@extended: " & $aData[5] & @CRLF)

InetGetSize

Devuelve el tamao (en bytes) de un archivo localizado en internet.


InetGetSize ( "URL" [, opciones ] )
Parmetros
URL

URL del archivo a descargar. Ver observaciones ms abajo.

opciones

[opcional]0 = (por defecto) Obtiene el archivo de la cach local si es posible


1 = Obliga a cargar el archivo desde el sitio original.
2 = Ognora todos los errores SSL (con conecciones HTTPS).
4 = Usa ASCII con tranferencias de ficheros por el protocolo FTP (Puede no estar
combinado con flag 8).
8 = Usa BINARY con tranferencias de ficheros por el protocolo FTP ((Puede no
estar combinado con flag 4). Este es el modo de transferencia por defecto si
ninguno es provisto.

Valor de Retorno
Con xitos

Devuelve el tamao de el archivo en bytes.


321

Al Fallar

Devuelve 0 y establece el valor de @error a no-cero.

Comentarios
Internet Explorer 3 o superior deben ser instalados para que esta funcin trabaje. (Para ftp://
URLs IE 5 es requerido!)
El parmetro URL debe ser la forma "[Link] - tal como
usted lo escribe en la barra de direcciones de su navegador.
Para usar un nombre de usuario y un password simplemente colquelos como prefijo de la
URL: "username:password@", ejemplo.
"[Link]
No todos los servidores pueden tomar correctamente el tamao del archivo, especialmente
cuando es usado un servidor proxy.
Relativo
InetGet, InetRead, HttpSetProxy, FtpSetProxy, HttpSetUserAgent
Ejemplo
Local $nsize = InetGetSize("[Link]
MsgBox(0, "Tamao del fichero remoto:", $nsize)

InetRead
Descarga un fichero desde internet usando los protocolos HTTP, HTTPS o FTP.
InetRead ( "URL" [, opciones ] )
Parmetros
URL

La direccin URL del fichero a descargar. Ver Comentarios ms abajo.

opciones

[opcional] 0 = (por defecto) Obtiene el fichero desde la cach local si es posible.


1 = Fuerza a descargar desde un sitio remoto.
2 = Ignora todos los errores SSL (con conecciones HTTPS).
4 = Usa modo ASCII cuando transfiere ficheros con el protocolo FTP (Puede no
estar combinado con flag 8).
8 = Usa modo BINARY cuando transfiere ficheros con el protocolo FTP (Puede no
estar combinado con flag 4). Este es el modo de transferencia por defecto si
ninguno es provisto.
16 = Obligar By-pass para la coneccin online (Ver comentarios).

Valor de Retorno

322

Con xitos:
Al Fallar:

Una cadena binaria @extended establecido al nmero de bytes descargados.


Establece @error a no-cero y devuelve una cadena en blanco.

Comentarios
Internet Explorer 3 o superior deben ser instalados para que esta funcin trabaje.
El parmetro URL debe ser en la forma "[Link] justamente como usted lo pondra en la barra de direcciones de su navegador.
Para utilizar un username y password cuando se conecte simplemente colquelo como prefijo
de la url as "username:password@", e.j.
"[Link]
El dato retornado esta en formato binario. La funcin BinaryToString() pede ser usada para
convertir el dato a cadena.
Por defecto AutoIt fuerza la coneccin antes de comenzar la descarga. Para usuarios dial-up
esta puede mostrar un prompt para online o marcar por modem (dependiendo de como el
sistema es configurado). El valor opcional 16 deshabilita este comportamiento. Deshabilitar el
comportamiento puede resultar til para conecciones persistentes (Banda ancha, LAN). Sin
embargo, este es tambin requerido para trabajar en ciertos modos en Windows Vista y
Windows 7.
Relativo
InetGet, InetGetSize, HttpSetProxy, FtpSetProxy, HttpSetUserAgent
Ejemplo
Local $sData = InetRead("[Link]
Local $nBytesRead = @extended
MsgBox(4096, "", "Bytes ledos: " & $nBytesRead & @CRLF & @CRLF & BinaryToString($sData))

Ping
Enva pings a un host y devuelve el tiempo de ida-y-vuelta.
Ping ( direccin/nombre del host [, tiempoExpiracin] )
Parmetros
direccin/nombre
Puede ser por ej. "[Link]" o "[Link]"
del host
tiempoExpiracin

[opcional] Es el tiempo a esperar para una respuesta en milisegundos (por


defecto es 4000).

323

Valor de Retorno
Con xito:
Al Fallar:

Devuelve el el tiempo de ida-y-vuelta en milisegundos ( mayor que 0 ).


Devuelve 0 si el host no admite ping u otros errores de red ocurridos y establece
@error. (Ver Comentarios)

Comentarios
Cuando la funcin falla (devuelve 0) @error contiene informacin extendida:
1 = Host est fuera de lnea (offline)
2 = Host es inalcanzable
3 = Mal destino
4 = Otros errores
Relativo
Ninguno.
Ejemplo
$var = Ping("[Link]",250)
If $var Then; tambin posible: If @error = 0 Then ...
Msgbox(0,"Status","Online, ida y vuelta fu de:" & $var)
Else
Msgbox(0,"Status","Un error ocurrido con el nmero: " & @error)
EndIf

TCPAccept
Permite una conexin entrante intentando en un socket.
TCPAccept ( SocketPrincipal )
Parmetros
SocketPrincipal

El principal identificador del socket (ID del Socket) como es devuelta por la
funcin TCPListen.

Valor de Retorno
Con xito:
Al Fallar:
@error:

Devuelve el identificador conectado del socket.


Devuelve -1 y establece @error a:
valor de retorno de windows API WSAGetError (ver MSDN).

Comentarios
Ninguno.

324

Relativo
TCPStartup, TCPListen, TCPTimeout (Option), TCPCloseSocket, TCPRecv
Ejemplo
;SERVIDOR!! Iniciame primero !!!!!!!!!!!!!!!
$g_IP = "[Link]"
; Iniciar los Servicios de TCP
;==============================================
TCPStartUp()
; Crea un "SOCKET" escucha
;==============================================
$MainSocket = TCPListen($g_IP, 65432, 100 )
If $MainSocket = -1 Then Exit
; buscar una conexin cliente
;-------------------While 1
$ConnectedSocket = TCPAccept( $MainSocket)
If $ConnectedSocket >= 0 Then
msgbox(0,"","mi servidor - Cliente Conectado")
exit
EndIf
Wend

TCPCloseSocket
Cierra un socket de TCP.
TCPCloseSocket ( socket )
Parmetros
socket

El identificador de socket (ID del Socket) como es devuelto por las funciones
TCPListen o TCPAccept.

Valor de Retorno
Con xito:
Al Fallar:
@error:

Devuelve 1.
Devuelve -1 y establece @error a:
valor de retorno de windows API WSAGetError (ver MSDN).

Comentarios
Ninguno.
325

Relativo
TCPStartup, TCPListen, TCPAccept, TCPShutdown
Ejemplo
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
Opt('MustDeclareVars', 1)
;==============================================
;==============================================
;SERVIDOR!! Iniciame primero !!!!!!!!!!!!!!!
;==============================================
;==============================================
; Inicializa una variable para representar una conexin
;==============================================
Global $ConnectedSocket = -1
Global $MainSocket
Ejemplo()
Func Ejemplo()
OnAutoItExitRegister("Cleanup")
Local $g_IP, $RogueSocket, $GOOEY, $edit, $input, $butt, $msg
Local $ret, $recv
$g_IP = "[Link]"
; Inicia los servicios TCP
;==============================================
TCPStartup()
; Crea un "SOCKET" escuchando.
;==============================================
$MainSocket = TCPListen($g_IP, 65432, 100)
If $MainSocket = -1 Then Exit
$RogueSocket = -1
; Crea un GUI para chatear
;==============================================
$GOOEY = GUICreate("mi servidor", 300, 200)
$edit = GUICtrlCreateEdit("", 10, 40, 280, 150, $WS_DISABLED)
$input = GUICtrlCreateInput("", 10, 10, 200, 20)
$butt = GUICtrlCreateButton("Enviar", 210, 10, 80, 20, $BS_DEFPUSHBUTTON)
GUISetState()

326

; Ciclo de mensajes del GUI


;==============================================
While 1
$msg = GUIGetMsg()
; GUI Cerrado
;-------------------If $msg = $GUI_EVENT_CLOSE Then ExitLoop
; al presionar ENVIAR
;-------------------If $msg = $butt Then
If $ConnectedSocket > -1 Then
$ret = TCPSend($ConnectedSocket, GUICtrlRead($input))
If @error Or $ret < 0 Then
; ERROR OCURRIDO, CERRAR SOCKET Y REINICIARLO ConnectedSocket to -1
;---------------------------------------------------------------TCPCloseSocket($ConnectedSocket)
WinSetTitle($GOOEY, "", "mi servidor - Cliente Desconectado")
$ConnectedSocket = -1
ElseIf $ret > 0 Then
; ACTUALIZA EL CONTROL EDIT CON LOS DATOS QUE ENVIAMOS
;---------------------------------------------------------------GUICtrlSetData($edit, GUICtrlRead($edit) & GUICtrlRead($input) & @CRLF)
EndIf
EndIf
GUICtrlSetData($input, "")
EndIf
If $RogueSocket > 0 Then
$recv = TCPRecv($RogueSocket, 512)
If Not @error Then
TCPCloseSocket($RogueSocket)
$RogueSocket = -1
EndIf
EndIf
; Si no hay conexin buscar una
;-------------------If $ConnectedSocket = -1 Then
$ConnectedSocket = TCPAccept($MainSocket)
If $ConnectedSocket < 0 Then
$ConnectedSocket = -1
Else
WinSetTitle($GOOEY, "", "mi servidor - Cliente Conectado")
EndIf
; Si est conectado leer datos
;-------------------Else
; EJECUTAR UN ACEPTAR INCONDICIONAL EN CASO QUE OTRO CLIENTE INTENTE
CONECTAR
327

;---------------------------------------------------------------$RogueSocket = TCPAccept($MainSocket)
If $RogueSocket > 0 Then
TCPSend($RogueSocket, "~~rechazado")
EndIf
$recv = TCPRecv($ConnectedSocket, 512)
If $recv <> "" And $recv <> "~~adios" Then
; ACTUAIZAR EL CONTROL DE EDIT CON LOS DATOS RECIBIDOS
;---------------------------------------------------------------GUICtrlSetData($edit, GUICtrlRead($edit) & ">" & $recv & @CRLF)
ElseIf @error Or $recv = "~~adios" Then
; ERROR OCCURRED, CLOSE SOCKET AND RESET ConnectedSocket to -1
;---------------------------------------------------------------WinSetTitle($GOOEY, "", "mi servidor - Cliente Desconectado")
TCPCloseSocket($ConnectedSocket)
$ConnectedSocket = -1
EndIf
EndIf
WEnd
GUIDelete($GOOEY)
EndFunc ;==>Ejemplo
Func Cleanup()
;AL SALIR EL SCRIPT cerrar todos los sockets abiertos y apagar el servicio de TCP
;---------------------------------------------------------------------If $ConnectedSocket > -1 Then
TCPSend($ConnectedSocket, "~~adios")
Sleep(2000)
TCPRecv($ConnectedSocket, 512)
TCPCloseSocket($ConnectedSocket)
EndIf
TCPCloseSocket($MainSocket)
TCPShutdown()
EndFunc ;==>Cleanup

TCPConnect
Crea un socket conectado un servidor existente.
TCPConnect ( IPAddr, puerto )
Parmetros
IPAddr

Direccin del Protocolo de Internet (IpV4) como "[Link]"

puerto

puerto en el que el socket creado ser conectado.


328

Valor de Retorno
Con xito:
Al Fallar:
@error:

Devuelve identificador principal de socket.


Devuelve -1 o 0 y establece @error a:
1 IPAddr es incorrecto
2 puerto es incorrecto.
valor de retorno de windows API WSAGetError (ver MSDN).

Comentarios
Esta funcin es usada por un cliente para comunicar con el servidor.
Relativo
TCPStartup, TCPListen, TCPTimeout (Option), TCPRecv, TCPSend
Ejemplo
;CLIENTE!!!!!!!! Inicie el SERVIDOR Primero... dummy!!
$g_IP = "[Link]"
; Iniciar los servicios TCP
;==============================================
TCPStartUp()
; Conectar a un "SOCKET" escucha
;==============================================
$socket = TCPConnect( $g_IP, 65432 )
If $socket = -1 Then Exit

TCPListen

Crea un socket en espera para una conexin entrante.


TCPListen ( IPAddr, puerto [, MaxPendingConnection] )
Parmetros
IPAddr

Direccin de Protocolo de Internet(IpV4) como "[Link]"

puerto

puerto en el que el socket ser conectado.

MaxPendingConnection

[opcional] Longitud mxima de espera para conexiones pendientes.


Por defecto el valor mximo razonables ser establecido.

Valor de Retorno
Con xito:

Devuelve el identificador del socket principal.


329

Al Fallar:
@error:

Devuelve -1 o 0 y establece @error a:


1 IPAddr es incorrecto
2 puerto es incorrecto.
valor de retorno de windows API WSAGetError (ver MSDN).

Comentarios
Ninguno.
Relativo
TCPStartup, TCPConnect, TCPAccept, TCPTimeout (Option), TCPCloseSocket, TCPSend,
TCPShutdown
Ejemplo
;SERVIDOR!! Iniciarme primero !!!!!!!!!!!!!!!
$g_IP = "[Link]"
; Iniciar los servicios TCP
;==============================================
TCPStartUp()
; Conectar a un "SOCKET" escucha
;==============================================
$MainSocket = TCPListen($g_IP, 65432, 100 )
If $MainSocket = -1 Then Exit

TCPNameToIP
Convierte un nombre de Internet a direccin de IP.
TCPNameToIP ( nombre )
Parmetros
nombre

Cadena conteniendo un nombre de Internet.

Valor de Retorno
Con xito:
Al Fallar:
@error:

Devuelve una cadena conteniendo la direccin de IP correspondiente al


nombre.
Devuelve "" y establece @error:
valor de retorno de windows API WSAGetError (ver MSDN).

Comentarios
TCPStartup es necesario antes de llamar esta funcin.
330

Relativo
TCPStartup
Ejemplo
TCPStartup()
msgbox(0,"IP???",TCPNameToIP("LaPCCercaDeUsted"))

TCPRecv
Recibe datos de un socket conectado.
TCPRecv ( socket_Principal, long_mx [, bandera] )
Parmetros
socket_Principal

El identificador del socket conectado (ID del Socket) como es devuelto por las
funciones TCPAccept o TCPConnect.

long_mx

Nmero mx # de caracteres a recibir.

bandera

[opcional] Fuerza la funcin a devolver datos binarios si se establece a 1 (por


defecto est en 0, y auto-detectar entre binario/cadena).

Valor de Retorno
Con xito:
Al Fallar:
@error:

Devuelve binario/cadena enviado por el socket conectado.


Devuelve "" y establece @error a:
-1 error de Socket
valor de retorno de windows API WSAGetError (ver MSDN).

Comentarios
Por razones de compatibilidad esta funcin intentar devolver cadenas por defecto. Si caracter
nulos (0x00) son recibidos entonces el valor devuelto ser un tipo binario.
Para forzar a la funcin que siempre devuelva datos binarios (la opcin ms sensible) entonces
use el parmetro "bandera" en 1.
Relativo
BinaryLen, BinaryMid, TCPStartup, TCPAccept, TCPConnect, TCPTimeout (Option)
Ejemplo

331

#include <GUIConstantsEx.au3>
Opt('MustDeclareVars', 1)
;==============================================
;==============================================
;SERVIDOR!! Iniciame primero !!!!!!!!!!!!!!!
;==============================================
;==============================================
Example()
Func Example()
; Establecer informacin reusable
; Establecer su IP pblica (@IPAddress1) aqu.
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
Local $MainSocket, $GOOEY, $edit, $ConnectedSocket, $szIP_Accepted
Local $msg, $recv
; Inicia los servicios TCP
;==============================================
TCPStartup()
; Crea un "SOCKET" escuchando.
; Usando su direccin IP y puerto 33891.
;==============================================
$MainSocket = TCPListen($szIPADDRESS, $nPORT)
; Si la creacin del Socket falla, terminar.
If $MainSocket = -1 Then Exit

; Crea un GUI para mensajes


;==============================================
$GOOEY = GUICreate("Mi Servidor (IP: " & $szIPADDRESS & ")", 300, 200)
$edit = GUICtrlCreateEdit("", 10, 10, 280, 180)
GUISetState()

; Inicializa una variable para representar una conexin


;==============================================
$ConnectedSocket = -1

; Espera y acepta un conexin


;==============================================
Do
$ConnectedSocket = TCPAccept($MainSocket)
Until $ConnectedSocket <> -1
332

; Obtiene un IP del cliente que se conecta


$szIP_Accepted = SocketToIP($ConnectedSocket)
; Ciclo de mensajes del GUI
;==============================================
While 1
$msg = GUIGetMsg()
; GUI Cerrado
;-------------------If $msg = $GUI_EVENT_CLOSE Then ExitLoop
; Intentar recibir (hasta) 2048 bytes
;---------------------------------------------------------------$recv = TCPRecv($ConnectedSocket, 2048)
; Si recibir falla con @error entonces el socket se desconectar
;---------------------------------------------------------------If @error Then ExitLoop
; Actualiza el control de edit con lo que recibimos
;---------------------------------------------------------------If $recv <> "" Then GUICtrlSetData($edit, _
$szIP_Accepted & " > " & $recv & @CRLF & GUICtrlRead($edit))
WEnd

If $ConnectedSocket <> -1 Then TCPCloseSocket($ConnectedSocket)


TCPShutdown()
EndFunc ;==>Ejemplo
; Funcin para devolver una direccin IP de un socket conectado.
;---------------------------------------------------------------------Func SocketToIP($SHOCKET)
Local $sockaddr, $aRet
$sockaddr = DllStructCreate("short;ushort;uint;char[8]")
$aRet = DllCall("Ws2_32.dll", "int", "getpeername", "int", $SHOCKET, _
"ptr", DllStructGetPtr($sockaddr), "int*", DllStructGetSize($sockaddr))
If Not @error And $aRet[0] = 0 Then
$aRet = DllCall("Ws2_32.dll", "str", "inet_ntoa", "int", DllStructGetData($sockaddr, 3))
If Not @error Then $aRet = $aRet[0]
Else
$aRet = 0
EndIf
$sockaddr = 0
333

Return $aRet
EndFunc ;==>SocketToIP

TCPSend

Enva datos en un socket conectado.


TCPSend ( socketPrincipal, datos )
Parmetros
socketPrincipal

El identificador del socket conectado (ID del Socket) como es devuelto por la
funcin TCPConnect.

datos

binario/cadena para ser enviado al socket conectado.

Valor de Retorno
Con xito:
Al Fallar:
@error:

Devuelve el nmero de bytes enviados al socket conectado.


Devuelve "" y establece @error a:
-1 error de Socket
valor de retorno de windows API WSAGetError (ver MSDN).

Comentarios
Ninguno.
Relativo
TCPStartup, TCPConnect, TCPListen, TCPTimeout (Option)
Ejemplo
#include <GUIConstantsEx.au3>
Opt('MustDeclareVars', 1)
;==============================================
;==============================================
;CLIENTE! Iniciarme despus del Servidor!!!!!!!!!!!!!!!
;==============================================
;==============================================
Example()
Func Example()
; Alguna informacin reusable
;-------------------------Local $ConnectedSocket, $szData
334

; Establecer $szIPADDRESS a cual sea el servidor. Cambiaremos un nombre de PC en una


direccin IP
; Local $szServerPC = @ComputerName
; Local $szIPADDRESS = TCPNameToIP($szServerPC)
Local $szIPADDRESS = @IPAddress1
Local $nPORT = 33891
; Inicia los Servicios de TCP
;==============================================
TCPStartup()
; Inicializa una variable para representar una conexin
;==============================================
$ConnectedSocket = -1
;Intenta conectar al SERVIDOR a su IP y PUERTO 33891
;=======================================================
$ConnectedSocket = TCPConnect($szIPADDRESS, $nPORT)
; Si hay un error... mostrarlo
If @error Then
MsgBox(4112, "Error", "TCPConnect fall con error WSA: " & @error)
; Si no hay error de ciclo una entrada para datos
; se enviar al SERVIDOR
Else
;Loop forever asking for data to send to the SERVER
While 1
; InputBox para datos a trasmitir
$szData = InputBox("Datos para el Servidor", @LF & @LF & "Introduzca los datos a
transmitir al SERVIDOR:")
; Si se cancela el InputBox o se deja en blanco saldremos del ciclo
If @error Or $szData = "" Then ExitLoop
; Deberamos tener datos en $szData... intentemos enviarlo a travs de nuestro socket
conectado.
TCPSend($ConnectedSocket, $szData)
; Si el envo fall con @error entonces el socket ser desconectado
;---------------------------------------------------------------If @error Then ExitLoop
WEnd
EndIf
EndFunc ;==>Ejemplo

TCPShutdown, UDPShutdown
Detiene los servicios de TCP/UDP.

335

TCPShutdown ( )
UDPShutdown ( )
Parmetros
Ninguno.
Valor de Retorno
Con xito:
Al Fallar:
@error:

Devuelve 1.
Devuelve 0 y establece @error a:
valor de retorno de windows API WSACleanup (ver MSDN).

Comentarios
Un script debe llamar una funcin TCPShutdown() para cada llamada exitosa de TCPStartup().
UDPShutdown() es simplemente un alias de TCPShutdown().
Relativo
TCPStartup, TCPListen, TCPCloseSocket, UDPCloseSocket
Ejemplo
TCPStartup() ; Inicia los servicios TCP
TCPShutdown ( ) ; Detiene los servicios TCP

TCPStartup, UDPStartup

Empieza los servicios de TCP o UDP.


TCPStartup ( )
UDPStartup ( )
Parmetros
Ninguno.
Valor de Retorno
Con xito:
Al Fallar:
@error:

Devuelve 1.
Devuelve 0 y establece @error a:
valor de retorno de windows API WSAStartup (ver MSDN).

Comentarios

336

Aqu debe haber una llamada de TCPShutdown() para evitar consumo de memoria.
Un script debe llamar a TCPShutdown() para cada llamada exitosa de TCPStartup().
UDPStartup() es simplemente un alias de TCPStartup().
Relativo
TCPShutdown, TCPListen, TCPCloseSocket, UDPCloseSocket, TCPAccept, TCPConnect,
TCPNameToIP, TCPRecv, TCPSend
Ejemplo
TCPStartup ( ) ; Iniciar los servicios TCP

UDPBind
Crea un socket delimitado para una conexin entrante.
UDPBind ( IPAddr, puerto )
Parmetros
IPAddr

Protocolo de internet de direccin punteada(IpV4) como "[Link]"

puerto

puerto al cual el socket creado ser confinado.

Valor de Retorno
Con xitos

Al Fallar
@error:

Devuelve un arreglo : $arreglo[1] conteniendo el socket real, $arreglo[2]


conteniendo la direccin IP y $arreglo[3] conteniendo el puerto. Necesitaremos
esta informacin en llamadas subsecuentes a UDPSend(), donde ser pasado
esta estructura/arreglo del socket.
Establece @error a:
1 IPAddr es incorrecto.
2 port es incorrecto
valor de retorno de windows API WSAGetError(ver MSDN).

Comentarios
Ninguno.
Relativo
UDPRecv, UDPOpen, UDPCloseSocket, UDPSend
Ejemplo
;SERVIDOR!! Iniciarme primero!!!!!!!!!!!!!!!
$g_IP = "[Link]"
337

; Iniciando los servicios UDP


;==============================================
UDPStartUp()
; Crea un Listening "SOCKET"
;==============================================
$socket = UDPBind($g_IP, 65432)
If @error <> 0 Then Exit

UDPCloseSocket
Cierra un socket UDP.
UDPCloseSocket ( socketarray )
Parmetros
socketarray

El socket/arreglo devuelto por las funciones UDPBind o UDPOpen.

Valor de Retorno
Con xitos
Al Fallar
@error:

Devuelve 1.
Devuelve 0 y establece @error a:
-1, -2 or -3 socketarray invlido.
valor de retorno de windows API WSAGetError(ver MSDN).

Comentarios
Ninguno.
Relativo
UDPBind, UDPOpen, TCPShutdown, TCPStartup
Ejemplo
;SERVIDOR!! Iniciarme primero!!!!!!!!!!!!!!!
$g_IP = "[Link]"
; Iniciando los servicios UDP
;==============================================
UDPStartUp()
; Registra una funcin de limpieza
OnAutoItExitRegister("Cleanup")
; Crea un Listening "SOCKET"
;==============================================
$socket = UDPBind($g_IP, 65432)
338

If @error <> 0 Then Exit


;--- Su cdigo aqu
Func Cleanup()
UDPCloseSocket($socket)
UDPShutdown()
EndFunc

UDPOpen
Abre un socket conectado para un servidor existente.
UDPOpen ( IPAddr, puerto [, flag] )
Parmetros
IPAddr

Protocolo de internet de direccin punteada(IpV4) como "[Link]"

puerto

puerto al cual el socket creado ser conectado.

flag

[opcional] 0 (Por defecto) - La opciones adicionales no son establecidas.


1 - Permitir broadcasting (difusin) en la direccin "[Link]".

Valor de Retorno
Con xitos

Al Fallar
@error:

Devuelve un arreglo : $arreglo[1] conteniendo el socket real, $arreglo[2]


conteniendo la direccin IP y $arreglo[3] conteniendo el puerto. Necesitaremos
esta informacin en llamadas subsecuentes a UDPSend(),donde ser pasado
esta estructura/arreglo del socket.
Devuelve $array[0]=0 y establece @error a:
valor de retorno de windows API WSAGetError(ver MSDN).

Comentarios
Esta funcin es utilizada por el cliente para comunicarse con el servidor.
Relativo
UDPBind, UDPSend, UDPCloseSocket, UDPRecv
Ejemplo
;CLIENTE!!!!!!!! Inicar el SERVIDOR Primero... marioneta !!
$g_IP = "[Link]"
; Iniciando los servicios UDP
;==============================================
UDPStartUp()

339

; Conectando a un listening "SOCKET"


;==============================================
$socket = UDPOpen( $g_IP, 65432 )
If @error <> 0 Then Exit

UDPRecv
Recibe datos de un socket abierto.
UDPRecv ( socketarray, Longitud mxima [, flag] )
Parmetros
socketarray

El socket/arreglo devuelto por la funcin UDPBind.

Longitud
mxima

# mximo de caracteres a recibir.

flag

[opcional] Fuerza a la funcin a recibir datos binarios si es establecido a 1 (por


defecto es 0, y detectar entre binario/cadena)
Fuerza a la funcin a retornar desde IP/port si se estabece a 2. El resultado es
devuelto en un arreglo: [0] dato, [1] desde IP, [2] desde Puerto
If you want both just use 3.

Valor de Retorno
Con xitos:
Al Fallar:
@error:

Devuelve un binario/cadena enviado por el socket abierto o un arreglo si flag = 2


o 3.
Devuelve "" y establece @error a:
-1, -2 or -3 socketarray invlido.
valor de retorno de windows API WSAGetError (ver MSDN).

Comentarios
Por razones de compatibilidad esta funcin intentar devolver siempre una cadena. Si
caracteres nulos (0x00) son recibidos entonces el valor devuelto ser un tipo binario.
Para forzar la funcin a devolver siempre un dato binario(La opcin ms sensible) utilice el
parmetro "flag" a 1.
Relativo
BinaryLen, BinaryMid, UDPBind, UDPOpen
Ejemplo
;;Este es el servidor UDP
;;Iniciar esto primero
; Iniciando los servicios UDP
;==============================================
340

UDPStartup()
; Registra una funcin de limpieza
OnAutoItExitRegister("Cleanup")
; Conectarse a un SOCKET
;==============================================
$socket = UDPBind("[Link]", 65532)
If @error <> 0 Then Exit
While 1
$data = UDPRecv($socket, 50)
If $data <> "" Then
MsgBox(0, "DATO UDP", $data, 1)
EndIf
sleep(100)
WEnd
Func Cleanup()
UDPCloseSocket($socket)
UDPShutdown()
EndFunc

UDPSend
Enva un dato por un socket abierto.
UDPSend ( socketarray, dato)
Parmetros
socketarray

El principal socket/arreglo devuelto por la funcin UDPOpen

dato

binario/cadena para ser enviada por el socket conectado.

Valor de Retorno
Con xitos
Al Fallar
@error:

Devuelve nmero de bytes enviados por el socket abierto.


Establece @error a:
-1, -2 o -3 socketarray invlido.
1 IPAddr es incorrecto
2 port es incorrecto
valor de retorno de windows API WSAGetError (ver MSDN).

Comentarios
Ninguno.
Relativo
341

UDPOpen, UDPBind
Ejemplo
;;Este es el cliente UDP
;;Iniciar el servidor primero
; Iniciando los servicios UDP
;==============================================
UDPStartup()
; Registra una funcin de limpieza
OnAutoItExitRegister("Cleanup")
; Abriendo el "SOCKET"
;==============================================
$socket = UDPOpen("[Link]", 65532)
If @error <> 0 Then Exit
$n=0
While 1
Sleep(2000)
$n = $n + 1
$status = UDPSend($socket, "Mensaje #" & $n)
If $status = 0 then
MsgBox(0, "ERROR", "Error mientras se enviaba el mensaje por UDP : " & @error)
Exit
EndIf
WEnd
Func Cleanup()
UDPCloseSocket($socket)
UDPShutdown()
EndFunc

342

Referencia de Referencia de Obj/COM


A continuacin se muestra una lista completa de las funciones de Referencia de Obj/COM
disponibles en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.
Funcin

Descripcin

ObjCreate

Crea una referencia a un objeto COM de el nombre de clase dado.

ObjEvent

Maneja eventos entrantes del Objeto dado.

ObjGet

Recupera una referencia a un objeto COM de un proceso existente o


nombre de archivo.

ObjName

Devuelve el nombre o descripcin de interfaz de un Objeto.

ObjCreate
Crea una referencia a un objeto COM de el nombre de clase dado.
ObjCreate ( "NombreDeClase" [, "NombreDeServidor" [,"NombreDeUsuario",
["contrasea"]]])
Parmetros
NombreDeClase

La clase de el objeto en el siguiente formato: "Nombre de [Link]


de Objeto"

NombreDeServidor

[opcional] nombre de un computador remoto del cual el objeto


debe ser obtenido.

[opcional] nombre de el usuario al que la computadora remota tiene


NombreDeUsuario entrada como este formato "computadora\cdigoDeUsuario" o
"dominio\cdigoDeUsuario".
Contrasea

[opcional] contrasea para el usuario en la computadora remota.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve un objeto.
Devuelve 0 y establece el valor de @error en 1.

Comentarios
Use ObjCreate() si usted desea tener una nueva instancia de la aplicacin referida.
Si usted desea conectar a un proceso existente, use ObjGet().

343

Tome en cuenta que no todas las computadoras deben tener la misma forma de fijar Objetos.
As que siempre es mejor revisar para errores despus de llamar a ObjCreate().
Los siguientes requerimientos aplican si usted desea acceder a objetos en computadoras
remotas:
-El usuario ejecutando el script debe tener el permisos apropiados.
-El Objeto en el computador remoto debe soportar DCOM (COM Distribuido)
-El computador remoto debe tener 'Servicio de Registro Remoto' y servicio de 'compartir
Archivo e Impresora' ejecutando.
Ver el Obj/Referencia COM para ms informacin sobre Objetos.
Relativo
GUICtrlCreateObj, IsObj, ObjEvent, ObjGet, ObjName
Ejemplo
; Ejemplo 1
;
; Contando el nmero de ventanas abiertas shell
$oShell = ObjCreate("[Link]") ; Obtiene el Objeto de Shell de Windows
$oShellWindows=$[Link]
; Obtiene la coleccin de ventanas Shell abiertas
if Isobj($oShellWindows) then
$string=""

; Cadena para propsitos de muestra

for $Window in $oShellWindows


; Contando todas las ventanas existentes
$String = $String & $[Link] & @CRLF
next
Msgbox(0,"Shell Windows","Usted tiene las siguientes ventanas:" & @CRLF & @CRLF &
$String);
endif
exit

; Ejemplo 2
;
; Abre el MediaPlayer en una computadora REMOTA
$oRemoteMedia = ObjCreate("[Link].1","nombre-de-computadora")
If not @error then
Msgbox(0,"Prueba de ObjCreate Remoto","ObjCreate() de un Objeto Mediaplayer remoto
con xito!")
$[Link]( @WindowsDir & "\media\Windows XP [Link]") ; Ejecuta un
sonido si el archivo est presente
Else
Msgbox(0,"Prueba de ObjCreate Remoto","Fall al abrir el objeto remoto. Cdigo de error: "
344

& hex(@error,8))
Endif

ObjEvent
Maneja eventos entrantes del Objeto dado.
ObjEvent ($VariableObjeto, "PrefijoFuncin" [, "nombre de interfaz"])
ObjEvent ("[Link]" [, "nombre de funcin"])
Parmetros
$VariableObjeto Una variable conteniendo un Objeto del cual usted desea recibir eventos.
El prefijo de las funciones que usted define al apuntador que recibir
"PrefijoFuncin" eventos.
El prefijo es aadido por el nombre de mtodo de los Objetos.
[opcional] nombre de la interfaz de Evento a utilizar.
Nota: Debe ser soportado como saliente por el Objeto y debe ser de tipo
DISPATCH.

"nombre de
interfaz"
Valor de Retorno
Con xito:
Al Fallar:

Devuelve un objeto o un nombre de funcin.


Devuelve "" y establece el valor de @error en 1.

Comentarios
El primer formato es usado para recibir Eventos de Objeto dado.
Para recibir un evento especfico, se crea un nombre de funcin AutoIt usando
el prefijo aadido con el nombre de evento.
El segundo formato es usado para el manejo de Errores COM. Si cualquier error de COM
ocurre, la funcin dada es llamada.
Si el segundo parmetro es omitido, le devolver el nombre del error actual de la funcin
proveniente, si se presenta.
Ver en Obj/Referencia COM para una explicacin detallada.
Relativo
ObjGet, IsObj, ObjCreate, GUICtrlCreateObj
Ejemplo
; Ejemplo de ObjEvent

345

ProgressOn("Ejemplo", "Cargando pgina...")


$oIE=ObjCreate("[Link].1")
; Crea una aplicacin de Internet Explorer
$SinkObject=ObjEvent($oIE,"IEEvent_","DWebBrowserEvents2") ; Asignando eventos a UDFs
empezando con IEEvent_
; haciendo algunas actividades de la navegacin
$[Link]=1
$[Link] = 1
$[Link] = 1
$[Link]( "[Link] )
sleep(3000)

; Darle tiempo a la carga de la pgina

$SinkObject=0
; Deteniendo los eventos de IE
$[Link]
; Quitar IE
$oIE=0
exit
; uno de muchas funciones de Internet Explorer
Func IEEvent_ProgressChange($Progress,$ProgressMax)
$percent = Int( ($Progress * 100) / $ProgressMax )
If $percent >= 0 And $percent <= 100 Then
ProgressSet ( $percent , $percent & " porcentaje." , "cargando pgina web" )
EndIf
EndFunc
Exit
; Ejemplo de COM Error Handler
; ------------------------$oIE=ObjCreate("[Link].1") ; Crea una aplicacin de Internet Explorer
Global $g_eventerror = 0 ; a ser revisado para conocer su ocurri un error. Debe ser reiniciado
despus de manejarse.
$oMyError = ObjEvent("[Link]","MyErrFunc") ; Inicializar un manejador de error COM
$[Link]

; Deliberadamente llama un mtodo indefinido

If $g_eventerror then
$g_eventerror = 0
Msgbox (0,"AutoItCOM test","Prueba pasada: Hay un error nmero: " & @error)
Else
Msgbox (0,"AutoItCOM test","Prueba fallida!")
Endif
Exit
; Este es mi error COM, personalizado
346

Func MyErrFunc()
Msgbox(0,"AutoItCOM Test","Se intercept un error COM!" & @CRLF & @CRLF & _
"[Link] is: " & @TAB & $[Link] & @CRLF & _
"[Link]:" & @TAB & $[Link] & @CRLF & _
"[Link] is: "
& @TAB & hex($[Link],8) & @CRLF & _
"[Link] is: " & @TAB & $[Link] & @CRLF & _
"[Link] is: " & @TAB & $[Link] & @CRLF & _
"[Link] is: "
& @TAB & $[Link]
& @CRLF & _
"[Link] is: "
& @TAB & $[Link]
& @CRLF & _
"[Link] is: " & @TAB & $[Link] _
)
Local $err = $[Link]
If $err = 0 Then $err = -1
$g_eventerror = $err ; para revisar luego que esta funcin devuelva
Endfunc

ObjGet
Recupera una referencia a un objeto COM de un proceso existente o nombre de archivo.
ObjGet ("NombreDeArchivo" [, "NombreDeClase"])
Parmetros
NombreDeArchivo

La ruta completa y nombre del archivo conteniendo el objeto.(Ver


Comentarios)

NombreDeClase

(opcional) La clase del objeto en el siguiente formato:


"Nombre de [Link] de Objeto"

Valor de Retorno
Con xito:
Al Fallar:

Devuelve un objeto.
Devuelve 0 y establece el valor de @error en 1.

Comentarios
El nombre de archivo es opcional si usted desea usar solamente el nombre de la clase, pero el
parmetro no puede ser omitido. Use una cadena vaca si usted solamente desea usar el
nombre de la clase. Como: $Objeto = ObjGet("","[Link]")
Si usted desea usar un nombre de archivo, el nombre de la clase es opcional. Es solamente
requerido cuando hay mltiple clases definidas al mismo tipo de archivo y usted desea acceder
a la clase especfica.

347

Tome en cuenta que no todas las computadoras tienen las misma manera de fijar Objetos. As
que siempre es bueno revisar los errores despus de llamar ObjGet().
Ver Obj/Referencia COM para ms informacin sobre Objetos.
Relativo
GUICtrlCreateObj, IsObj, ObjCreate, ObjEvent, ObjName
Ejemplo
; Ejemplo obteniendo un Objeto usando el nombre de clase
;
; Excel debe ser activado para que este ejemplo sea realizado con xito
$oExcel = ObjGet("","[Link]") ; Obteniendo el Objeto de Excel
if @error then
Msgbox (0,"ExcelTest","Error obteniendo un objeto activo de Excel. Cdigo de Error: " &
hex(@error,8))
exit
endif
$[Link] = 1 ; Que se muestre
$[Link]
; Agregar nueva hoja de trabajo
exit
; Ejemplo obteniendo un Objeto usando un nombre de archivo
;
; Un archivo de Excel con el nombre de archivo [Link] debe ser creado en el directorio
raz
; de la unidad C:\ para que este ejemplo trabaje.
$FileName="C:\[Link]"
if not FileExists($FileName) then
Msgbox (0,"Excel File Test","No se puede ejecutar esta prueba, porque no se cre el archivo de
Excel "& $FileName)
Exit
endif
$oExcelDoc = ObjGet($FileName) ; Obteniendo el Objeto de Excel de un archivo existente
if IsObj($oExcelDoc) then
; Consejo: Para hacer visible Excel puede quitar el ";" de las siguientes lneas (crdito:
DaleHohm)
; $[Link](1).Visible = 1; Establece la primer hoja de trabajo visible
; $[Link] = 1; Establece que la aplicacin est visible (sin esto Excel
cerrar)
348

$String = ""

; Cadena para propsitos de muestra

; Algunas propiedades de documento no regresan un valor, ignoraremos estos en este caso.


$OEvent=ObjEvent("[Link]","nada"); Igual al Error de VBscript
For $Property In $[Link]
$String = $String & $[Link] & ":" & $[Link] & @CRLF
Next
Msgbox(0,"Excel File Test","Las propiedades del documento de " & $FileName & " son:" &
@CRLF & @CRLF & $String)
$[Link]

; Cerrar el documento de Excel

else
Msgbox (0,"Excel File Test","Error: No se puede abrir "& $FileName & " como un Objeto de
Excel.")
endif

ObjName

Devuelve el nombre o descripcin de interfaz de un Objeto.


ObjName ($VariableDeObjeto [,Flag])
Parmetros
$VariableDeObjeto Una variable conteniendo un Objeto del nombre que usted desea recibir.
[opcional] 1 = Nombre de la interfaz de envo siendo usado (por defecto)
2 = Descripcin de el (documento) Objeto
3 = El ID de Programa del Objeto
4 = El DLL archivo del Objeto que fue creado (si es soportado)
5 = Nombre de archivo y posicin de el cono de caja de herramientas (si
es soportado)

Bandera

Valor de Retorno
Con xito:
Al Fallar:

Devuelve a cadena representando el nombre.


Establece @error y devuelve ""

Comentarios
No todos los Objetos soportan Flags 2 a 5. Siempre es bueno probar por medio de @error en
estos casos.
Relativo
349

IsObj, ObjGet, ObjCreate


Ejemplo
$oInternet = ObjCreate("[Link]")
$[Link]( "[Link] ) ; Abriendo una pgina web que contiene un
formulario
sleep(4000)
; Dando tiempo a la pgina que cargue
$oDoc = $[Link] ;Ejemplo de objeto a probar
$oForm = $[Link](0) ;Ejemplo de objeto a probar
msgbox(0,"","Nombre de Interfaz de $oInternet es: " & ObjName($oInternet) & @CRLF & _
"Nombre de Objeto de $oInternet es: " & ObjName($oInternet,2) & @CRLF & _
"Nombre de Interfaz de $oDoc es: " & ObjName($oDoc) & @CRLF & _
"Nombre de Objeto de $oDoc es:
" & ObjName($oDoc,2) & @CRLF & _
"Nombre de Interfaz de $oForm es: " & ObjName($oForm) & @CRLF & _
"Nombre de Objeto de $oForm es:
" & ObjName($oForm,2))

350

Referencia de Administracin de Procesos


A continuacin se muestra una lista completa de las funciones de Administracin de Procesos
disponibles en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.
Funcin

Descripcin

DllCall

Invocacin dinmica de una funcin en una DLL.

DllCallbackFree

Libera un apuntador creado previamente con DllCallbackRegister.

DllCallbackGetPtr

Devuelve el puntero para una funcin callback que puede ser pasado
al API Win32.

DllCallbackRegister

Crea una funcin DLL Callback definida por usuario.

DllClose

Cierra un DLL previamente abierto.

DllOpen

Abre un archivo DLL para usar en DllCall.

DllStructCreate

Crea una estructura en estilo C/C++ para ser usado en DllCall.

DllStructGetData

Devuelve el dato de un elemento de la estructura.

DllStructGetPtr

Devuelve el apuntador de la estructura o del elemento dentro de la


estructura.

DllStructGetSize

Devuelve el tamao de una estructura DLL en bytes.

DllStructSetData

Establece el dato en uno de los elementos en la estructura.

PluginOpen

Abre un fichero de plugin.

PluginClose

Cerrar un fichero plugin.

ProcessClose

Termina un proceso nombrado.

ProcessExists

Revisa si un proceso especificado existe.

ProcessGetStats

Devuelve un arreglo sobre Memoria o informacin de IO(Entrada y


Salida) de un proceso en ejecucin.

ProcessSetPriority

Cambia la prioridad de un proceso

ProcessList

Devuelve un arreglo listando los procesos actualmente en ejecucin


(nombres y PIDs)

ProcessWait

Pausa el script ejecucin hasta que proceso dado exista.

ProcessWaitClose

Pausa el script en ejecucin hasta que dado proceso termine.

Run

Ejecuta un programa externo.

RunWait

Ejecuta un programa externo y pausa la ejecucin del script hasta que

351

el programa finaliza.
RunAs

Ejecuta un programa externo bajo el contexto de un usuario diferente.

RunAsWait

Ejecuta un programa externo bajo el contexto de un usuario diferente


y pausa la ejecucin del script hasta que el programa finaliza.

ShellExecute

Ejecuta un programa externo usando la API de ShellExecute.

ShellExecuteWait

Ejecuta un programa externo usando la API de ShellExecute y pausa la


ejecucin del script hasta que finalice.

Shutdown

Apaga el sistema.

StderrRead

Lee del flujo de STDERR de un proceso hijo previamente ejecutado.

StdinWrite

Escribe un nmero de caracteres al flujo de STDIN de un proceso hijo


previamente ejecutado.

StdioClose

Cierra todos los recursos asociados con un proceso previamente


ejecutado redireccin de STDIO.

StdoutRead

Lee del flujo STDOUT de un proceso hijo previamente ejecutado.

DllCall
Invocacin dinmica de una funcin en una DLL.
DllCall ( "dll", "tipo de retorno", "funcin" [, tipo1, parmetro1 [, tipo n, parmetro n]] )
Parmetros
dll

El nombre del archivo DLL a usar. Eje. "[Link]". Un apuntador obtenido por
DllOpen puede tambin ser usado (Ver observaciones).

tipo de
retorno

El tipo de dato que retorna la funcin (Ver ms abajo).

funcin

El nombre, ejemplo. "MessageBox" o el valor ordinal, Eje. 62, de la funcin en la


DLL a invocar.

tipo1

[opcional] El tipo de dato del parmetro (ver observaciones).

parmetro1

[opcional] El parmetro actual (ver observaciones).

tipo n

[opcional] El tipo de ensimo parmetro (ver comentarios).

parmetro n [opcional] El parmetro ensimo actual (ver comentarios).


Los tipos de datos vlidos son:
Tipo

Detalles

none

Sin valor (Solo vlido para tipo return- equivalente al vaco en C)

BYTE

un entero de 8 bit sin signo


352

BOOLEAN

un entero de 8 bit sin signo

short

un entero de 16 bit

USHORT

un entero de 16 bit sin signo

WORD

un entero de 16 bit sin signo

int

un entero de 32 bit

long

un entero de 32 bit

BOOL

un entero de 32 bit

UINT

un entero de 32 bit sin signo

ULONG

un entero de 32 bit sin signo

DWORD

un entero de 32 bit sin signo

INT64

un entero de 64 bit

UINT64

un entero de 64 bit sin signo

ptr

un puntero general(void *)

HWND

un puntero de ventana (pointer)

HANDLE

un identificador (pointer)

float

un nmero de punto flotante de presicin simple.

double

un nmero de punto flotante de presicin doble.

INT_PTR,
LONG_PTR,
LRESULT,
LPARAM

un entero lo suficientemente grande para mantener un puntero cuando se


corre bajo versiones x86 o x64 de AutoIt.

UINT_PTR,
ULONG_PTR, un entero sin signo lo suficientemente grande para mantener un puntero
DWORD_PTR, cuando se corre bajo versiones x86 o x64 de AutoIt.
WPARAM
str

una cadena ANSI (un mnimo de 65536 caracteres es asignado).

wstr

una cadena extensa de caracteres UNICODE (a minimum of 65536 chars is


allocated).

Adicionar * al final de otro tipo de dato para pasarlo por referencia. Por
ejemplo "int*" pasa un puntero a un tipo "int".

Conversiones de tipos de API de Windows para tipos de AutoIt:


WINDOWS API Type

AutoIt Type

LPCSTR/LPSTR

str

LPCWSTR/LPWSTR

wstr

LPVOID

ptr

LPxyz

xyz*

HINSTANCE

handle
353

HRESULT

long

LONGLONG/LARGE_INTEGER

INT64

ULONGLONG/ULARGE_INTEGER UINT64
SIZE_T

ULONG_PTR

Valor de Retorno
Con xitos
Al Fallar:
@error:

@error = 0.
establece @error
1 incapaz de usar el fichero DLL,
2 "tipo de retorno" desconocido,
3 "funcin" no encontrada en el fichero DLL,
4 nmero de parmetros invlido.

Ver observaciones.
Comentarios
Si el nombre de un archivo dll es dado entonces el DLL es automticamente cargado y cerrado
al finalizar este. Si usted desea un control manual de la carga y descara del archivo DLL
entonces usted debe usar DllOpen y DllClose usando un apuntador en lugar del nombre del
archivo en esta funcin.
Por defecto, AutoIt usa el mtodo de llamada 'stdcall'. Para usar el mtodo 'cdecl' colocar
':cdecl' despus del "tipo de retorno".
DllCall("[Link]", "int:cdecl", "sqlite3_open", "str", $sDatabase_Filename , "long*", 0).
Por defecto, AutoIt intenta usar la versin ANSI del nombre de una funcin, ej. MessageBoxA
es procurado cuando MessageBox es tomado como nombre de la funcin. Para realizar una
invocacin en versin unicode use MessageBoxW.
Si la invocacin de la funcin falla entonces @error es fijado a 1. De otro modo un arreglo es
devuelto conteniendo el valor de la funcin y una copia de todos los parmetros (incluyendo
parmetros que la funcin pueda tener modificados cuando pase por referencia).
$return[0] = valor de retorno de la funcin
$return[1] = parmetro1
$return[2] = parmetro2
...
$return[n] = parmetro n
Relativo
DllCallbackFree, DllCallbackGetPtr, DllCallbackRegister, DllOpen, DllClose, DllStructCreate,
DllStructGetPtr

354

Ejemplo
; *******************************************************
; Ejemplo 1 - invocando la API MessageBox directamente
; *******************************************************
$result = DllCall("[Link]", "int", "MessageBox", "hwnd", 0, "str", "Some text", "str", "Some
title", "int", 0)

; *******************************************************
; Ejemplo 2 - invocando una funcin que modifica parmetros
; *******************************************************
$hwnd = WinGetHandle("[CLASS:Notepad]")
$result = DllCall("[Link]", "int", "GetWindowText", "hwnd", $hwnd, "str", "", "int", 32768)
msgbox(0, "", $result[0]) ; nmeros de caracteres devueltos
msgbox(0, "", $result[2]) ; Texto devuelto en parmetro 2

; *******************************************************
; Ejemplo 3 - Mostrar la ventana PickIconDlg
; *******************************************************
$sFileName = @SystemDir & '\[Link]'
; Creando una estructura para almacenar el ndice de iconos
$stIcon = DllStructCreate("int")
$stString
= DLLStructCreate("wchar[260]")
$structsize = DllStructGetSize($stString)/2
DllStructSetData($stString, 1, $sFileName)
; ejecutando PickIconDlg - '62' es el valor ordinal para esta funcin
DllCall("[Link]", "none", 62, "hwnd", 0, "ptr", DllStructGetPtr($stString), "int", $structsize,
"ptr", DllStructGetPtr($stIcon))
$sFileName = DllStructGetData($stString, 1)
$nIconIndex = DllStructGetData($stIcon, 1)
; Mostrando el nuevo fichero y icono indexado
Msgbox(0, "Info", "Last selected file: " & $sFileName & @LF & "Icon-Index: " & $nIconIndex)

DllCallbackFree
Libera un apuntador creado previamente con DllCallbackRegister.
DllCallbackFree (apuntador)
Parmetros
355

apuntador

El apuntador DllCallback, devuelto por una llamada previa a DllCallbackRegister.

Valor de Retorno
Ninguno.
Comentarios
Antes de finalizar, AutoIt automticamente cierra cualquier apuntador abierto pero la
invocacin de DllCallbackFree sigue siendo una buena idea!
Relativo
DllCall, DllCallbackGetPtr, DllCallbackRegister
Ejemplo
; Crea la funcin callback
$handle = DLLCallbackRegister ("_EnumWindowsProc", "int", "hwnd;lparam")
; Invoca EnumWindows
DllCall("[Link]", "int", "EnumWindows", "ptr", DllCallbackGetPtr($handle), "lparam", 10)
; Borra la funcin callback
DllCallbackFree($handle)
; Prodecimiento Callback
Func _EnumWindowsProc($hWnd, $lParam)
If WinGetTitle($hWnd) <> "" And BitAnd(WinGetState($hWnd), 2) Then
$res = MsgBox(1, WinGetTitle($hWnd), "$hWnd=" & $hWnd & @CRLF & "lParam=" &
$lParam & @CRLF & "$hWnd(type)=" & VarGetType($hWnd))
If $res = 2 Then Return 0 ; Calcelar clickeado, devuelve 0 para detener para enumeracin
EndIf
Return 1 ; Devuelve 1 y continua la enumeracin
EndFunc

DllCallbackGetPtr
Devuelve el puntero para una funcin callback que puede ser pasado al API Win32.
DllCallbackGetPtr ( apuntador )
Parmetros
apuntador

Un apuntador DllCallback devuelto a partir de DllCallbackRegister.

Valor de Retorno
Con xitos

El puntero para la funcin callback.


356

Al Fallar

0.

Comentarios
Use DllCallbackGetPtr para pasar la direccin de una funcin callback para la API Win32
cuando usamos DllCall.
Relativo
DllCall, DllCallBackRegister, DllCallbackFree
Ejemplo
; Crea la funcin callback
$handle = DLLCallbackRegister ("_EnumWindowsProc", "int", "hwnd;lparam")
; Invoca EnumWindows
DllCall("[Link]", "int", "EnumWindows", "ptr", DllCallbackGetPtr($handle), "lparam", 10)
; Borra la funcin callback
DllCallbackFree($handle)
; Prodecimiento Callback
Func _EnumWindowsProc($hWnd, $lParam)
If WinGetTitle($hWnd) <> "" And BitAnd(WinGetState($hWnd), 2) Then
$res = MsgBox(1, WinGetTitle($hWnd), "$hWnd=" & $hWnd & @CRLF & "lParam=" &
$lParam & @CRLF & "$hWnd(type)=" & VarGetType($hWnd))
If $res = 2 Then Return 0 ; Calcelar clickeado, devuelve 0 para detener para enumeracin
EndIf
Return 1 ; Devuelve 1 y continua la enumeracin
EndFunc

DllCallbackRegister
Crea una funcin DLL Callback definida por usuario.
DllCallbackRegistra ( "funcin", "tipo de retorno", "parmetros" )
Parmetros
funcin

El nombre de la Funcin Definida de Usuario a invocar.

tipo de
retorno

El tipo de dato de retorno y la convencin de invocacin de la funcin (ver


DllCall).

parmetros

Una lista de parmetros separados por ";" que ser pasado a la funcin. Use los
tipos de datos DllCall.

Valor de Retorno

357

Con xitos
Al Fallar

Devuelve un apuntador "handle" dll para ser usado con DllCallbackGetPtr y


funciones DllCallbackFree.
Devuelve 0 si ocurre un error.

Comentarios
Cuando finaliza un trabajo con callback, invoque la funcin DllCallbackFree para cerrar este.
AutoIt normalmente cierra todos los archivos al finalizar, pero el uso de DllCallbackFree es una
buena idea.
Relativo
DllCall, DllCallbackFree, DllCallbackGetPtr
Ejemplo
; Crea una funcin callback
$handle = DLLCallbackRegister ("_EnumWindowsProc", "int", "hwnd;lparam")
; Invoca EnumWindows
DllCall("[Link]", "int", "EnumWindows", "ptr", DllCallbackGetPtr($handle), "lparam", 10)
; Borra la funcin callback
DllCallbackFree($handle)
; Procedimiento Callback
Func _EnumWindowsProc($hWnd, $lParam)
If WinGetTitle($hWnd) <> "" And BitAnd(WinGetState($hWnd), 2) Then
$res = MsgBox(1, WinGetTitle($hWnd), "$hWnd=" & $hWnd & @CRLF & "lParam=" &
$lParam & @CRLF & "$hWnd(type)=" & VarGetType($hWnd))
If $res = 2 Then Return 0 ; Calcelar clickeado, devuelve 0 y detiene la enumeracin
EndIf
Return 1 ; Devuelve 1 y continua la enumeracin
EndFunc

DllClose
Cierra un DLL previamente abierto.
DllClose (dllhandle)
Parmetros
dllhandle

El apuntador de un dll, devuelto por una llamada previa de DllOpen.

Valor de Retorno
Ninguno.

358

Comentarios
Antes de finalizar, AutoIt automticamente cierra cualquier dlls abierta, pero invocar DllClose
es una buena idea!
Relativo
DllCall, DllOpen
Ejemplo
$dll = DllOpen("[Link]")
$result = DllCall($dll, "int", "MessageBox", "hwnd", 0, "str", "algn texto", "str", "algn ttulo",
"int", 0)
DllClose($dll)

DllOpen
Abre un archivo DLL para usar en DllCall.
DllOpen ( "Nombre de fichero" )
Parmetros
Nombre de
fichero

Nombre de un fichero DLL para ser abierto.

Valor de Retorno
Con xitos
Al Fallar

Devuelve un apuntador "handle" dll para ser usado con funciones Dll.
Devuelve -1 si ocurre un error.

Comentarios
Cuando finaliza un trabajo con una dll, invoque la funcin DllClose para cerrar este. AutoIt
normalmente cierra todos los archivos al finalizar, pero el uso de DllClose es una buena idea.
Relativo
DllCall, DllClose
Ejemplo
$dll = DllOpen("[Link]")
$result = DllCall($dll, "int", "MessageBox", "hwnd", 0, "str", "algn texto", "str", "algn titulo",
"int", 0)
DllClose($dll)

359

DllStructCreate
Crea una estructura en estilo C/C++ para ser usado en DllCall.
DllStructCreate ( "Estructura" [,Puntero] )
Parmetros
"Estructura" Una cadena que representa la estructura a crear (Ver Observaciones).
Puntero

[opcional] Si es suplido la estructura no asigna memoria pero usa el puntero


dado.

Valor de Retorno
Con xitos
Al Fallar
@Error:

Una variable para ser usado con DllStruct calls.


0.
0 = No Error.
1 = Variable pasado a DllStructCreate no es una cadena.
2 = Resulta un tipo de dato desconocido en la cadena pasada.
3 = Falla la asignacin de memoria necesaria para la estructura, o el puntero = 0.
4 = Error asignando memoria para la cadena pasada.

Type

Details

BYTE

8bit(1byte) carcter con signo

BOOLEAN

8bit(1byte) carcter sin signo

CHAR

8bit(1byte) ASCII char

WCHAR

16bit(2byte) carcter UNICODE extenso

short

16bit(2bytes) entero con signo

USHORT

16bit(2bytes) entero sin signo

WORD

16bit(2bytes) entero sin signo

int

32bit(4bytes) entero con signo

long

32bit(4bytes) entero con signo

BOOL

32bit(4bytes) entero con signo

UINT

32bit(4bytes) entero sin signo

ULONG

32bit(4bytes) entero sin signo

DWORD

32bit(4bytes) entero sin signo

INT64

64bit(8bytes) entero con signo

UINT64

64bit(8bytes) entero sin signo

ptr

32 or 64bit entero sin signo (dependiendo si es usado la versin x86 o x64


version de AutoIt)
360

HWND

32bit(4bytes) entero

HANDLE

32bit(4bytes) entero

float

32bit(4bytes) punto flotante

double

64bit(8bytes) punto flotante

INT_PTR,
LONG_PTR,
LRESULT,
LPARAM

32 or 64bit entero con signo (dependiendo si es usado la versin x86 o x64


version de AutoIt)

UINT_PTR,
ULONG_PTR, 32 or 64bit entero sin signo (dependiendo si es usado la versin x86 o x64
DWORD_PTR, version de AutoIt)
WPARAM
Comentarios
Cada tipo de dato debe ser separado por un ';'. Cree arreglos por adicin del '[tamao]'
despus del tipo de dato.
ejemplo:DllStructCreate("int;char[128]").
DllStructCreate("byte;double") ; la estructura es de 16 bytes, el "double" es un desplazamiento
de 8.
DllStructCreate("align 4;byte;double") ; la estructura es de 12 bytes, el "double" es un
desplazamiento de 4.
Si es necesario un cambio en la alineacin, "align" puede ser adicionado antes del primer
elemento que necesita ser cambiado.
"align" o "align 8" representa el alineamiento por defecto.
Para liberar memoria asignada simplemente establezca la variable de retorno a 0.
Relativo
DllCall, DllStructGetData, DllStructSetData, DllStructGetPtr, DllStructGetSize, IsDllStruct
Ejemplo
;=========================================================
; Crea la estructura
; struct {
;
int
var1;
;
unsigned char var2;
;
unsigned int var3;
;
char
var4[128];
; }
;=========================================================
$str
= "int var1;ubyte var2;uint var3;char var4[128]"
361

$a
= DllStructCreate($str)
if @error Then
MsgBox(0,"","Error in DllStructCreate " & @error);
exit
endif
;=========================================================
; Establece datos en la estructura
; struct.var1 = -1;
; struct.var2 = 255;
; struct.var3 = INT_MAX; -1 will be typecasted to (unsigned int)
; strcpy(struct.var4,"Hola");
; struct.var4[0] = 'h';
;=========================================================
DllStructSetData($a,"var1",-1)
DllStructSetData($a,"var2",255)
DllStructSetData($a,"var3",-1)
DllStructSetData($a,"var4","Hola")
DllStructSetData($a,"var4",Asc("h"),1)
;=========================================================
; Mostrando la informacin de la estructura
;=========================================================
MsgBox(0,"DllStruct","Tamao de estructura: " & DllStructGetSize($a) & @CRLF & _
"Puntero de estructura: " & DllStructGetPtr($a) & @CRLF & _
"Dato:" & @CRLF & _
DllStructGetData($a,1) & @CRLF & _
DllStructGetData($a,2) & @CRLF & _
DllStructGetData($a,3) & @CRLF & _
DllStructGetData($a,4))
;=========================================================
; Liberando memoria asignada a la estructura
;=========================================================
$a=0

DllStructGetData

Devuelve el dato de un elemento de la estructura.


DllStructGetData (Estructura, Elemento [, ndice ])
Parmetros
Estructura

La estructura devuelta por DllStructCreate.

Elemento

El elemento de la estructura a acceder, Iniciando en 1 o el nombre de la


estructura dado en DllStructCreate.

362

ndice

[opcional] Para elementos que son arreglos esto espesifica el ndice de bacecero a recibir. Si es omitida la palabra reservada Default keyword entonces el
arreglo entero es devuelto (muy til para recibir cadenas). No usado para
elementos que no sean arreglos.

*char[n], byte[n] y ubyte[n] devuelve todos los datos de elementos cuando ndice es omitido.
Valor de Retorno
Con xitos
Al Fallar
@Error:

Dato en el elemento de la estructura.


0.
0 = No Error.
1 = La estructura no es una estructura correcta creada por DllStructCreate.
2 = El valor de elemento esta fuera de rango.
3 = ndice fuera de la estructura.
4 = El tipo de dato del elemento es desconocido.
5 = ndice <= 0.

Comentarios
Cuando el elemento es char[n] y ndice es omitido el dato devuelto es una Cadena.
Cuando el elemento es byte[n] o ubyte[n] y ndice es omitido el dato devuelto es tipo binario,
de otro modo siempre devuelve un nmero.
Relativo
DllStructCreate, DllStructSetData
Ejemplo
$p = DllStructCreate("dword dwOSVersionInfoSize;dword dwMajorVersion;dword
dwMinorVersion;dword dwBuildNumber;dword dwPlatformId;char szCSDVersion[128]")
;Pensar en esto como p->dwOSVersionInfoSize = sizeof(OSVERSIONINFO)
DllStructSetData($p, "dwOSVersionInfoSize", DllStructGetSize($p))
;haciendo el DllCall
$ret = DllCall("[Link]","int","GetVersionEx","ptr",DllStructGetPtr($p))
if Not $ret[0] Then
MsgBox(0,"DllCall Error","DllCall Failed")
exit
EndIf
;obtener los valore de retorno
$major = DllStructGetData($p,"dwMajorVersion")
$minor = DllStructGetData($p,"dwMinorVersion")
$build = DllStructGetData($p,"dwBuildNumber")
$platform = DllStructGetData($p,"dwPlatformId")
$version = DllStructGetData($p,"szCSDVersion")
363

;liberando la estructura
$p =0
msgbox(0,"","Mayor: " & $major & @CRLF & _
"Menor: " & $minor & @CRLF & _
"Build: " & $build & @CRLF & _
"ID plataforma: " & $platform & @CRLF & _
"Versin: " & $version)

DllStructGetPtr

Devuelve el apuntador de la estructura o del elemento dentro de la estructura.


DllStructGetPtr ( estructura [,elemento])
Parmetros
estructura

La estructura devuelta por DllStructCreate.

elemento

(opcional) El elemento de la estructura cuto apuntador usted necesita, inicia en


1 o el nombre del elemento definido con DllStructCreate.

Valor de Retorno
Con xitos:
Al Fallar:
@Error:

El apuntador de la estructura
0.
0 = Sin error.
1 = Estructura incorrecta segn esta definida por DllStructCreate.
2 = Elemento fuera de lmite.

Comentarios
Usado en DllCall.
Relativo
DllCall, DllStructCreate
Ejemplo
;Ejemplo1
;obtener el identificador de ventana y usando WinGetPos para obtener el rectngulo de
ventana
$hwnd = WinGetHandle("")
$coor = WinGetPos($hwnd)

364

;crea la estructura
$rect = DllStructCreate("int;int;int;int")
;hacer el DllCall
DLLCall("[Link]","int","GetWindowRect", _
"hwnd",$hwnd, _
"ptr",DllStructGetPtr($rect)) ; use DllStructGetPtr when calling DllCall
;obteniendo el rectngulo devuelto
$l = DllStructGetData($rect,1)
$t = DllStructGetData($rect,2)
$r = DllStructGetData($rect,3)
$b = DllStructGetData($rect,4)
;Liberando la estructura
$rect = 0
;mostrando el resultado de WinGetPos y el rectngulo retornado
MsgBox(0,"The Larry Test :)","WinGetPos(): (" & $coor[0] & "," & $coor[1] & _
") (" & $coor[2] + $coor[0] & "," & $coor[3] + $coor[1] & ")" & @CRLF & _
"GetWindowRect(): (" & $l & "," & $t & ") (" & $r & "," & $b & ")")
;Ejemplo2
; DllStructGetPtr referecniando un item
$a
= DllStructCreate("int")
if @error Then
MsgBox(0,"","Error en DllStructCreate " & @error);
exit
endif
$b = DllStructCreate("uint",DllStructGetPtr($a,1))
if @error Then
MsgBox(0,"","Error en DllStructCreate " & @error);
exit
endif
$c = DllStructCreate("float",DllStructGetPtr($a,1))
if @error Then
MsgBox(0,"","Error en DllStructCreate " & @error);
exit
endif
;estableciendo el dato
DllStructSetData($a,1,-1)
;=========================================================
; Mostrando los diferentes tipos de datos en algunos datos
;=========================================================
MsgBox(0,"DllStruct", _
"int: " & DllStructGetData($a,1) & @CRLF & _
"uint: " & DllStructGetData($b,1) & @CRLF & _
"float: " & DllStructGetData($c,1) & @CRLF & _
365

"")
; liberando memoria asignada
$a = 0

DllStructGetSize
Devuelve el tamao de una estructura DLL en bytes.
DllStructGetSize ( Estructura )
Parmetros
Estructura

La estructura devuelta por DllStructCreate.

Valor de Retorno
Con xitos:
Al Fallar:
@Error:

El tamao de una estructura en bytes.


0.
0 = Sin error.
1 = Estructura incorrecta segn esta definida por DllStructCreate.

Comentarios
Usado cuando el dato en la estructura necesita tener el tamao de la estructura.
Relativo
DllStructCreate, DllStructSetData
Ejemplo
;=========================================================
; Crea la estructura
; struct {
;
int
var1;
;
unsigned char var2;
;
unsigned int var3;
;
char
var4[128];
; }
;=========================================================
$str
= "int;ubyte;uint;char[128]"
$a
= DllStructCreate($str)
if @error Then
MsgBox(0,"","Error en DllStructCreate " & @error);
exit
endif

366

;=========================================================
; Establece datos en la estructura
; struct.var1 = -1;
; struct.var2 = 255;
; struct.var3 = INT_MAX; -1 will be typecasted to (unsigned int)
; strcpy(struct.var4,"Hola");
; struct.var4[0] = 'h';
;=========================================================
DllStructSetData($a,1,-1)
DllStructSetData($a,2,255)
DllStructSetData($a,3,-1)
DllStructSetData($a,4,"Hello")
DllStructSetData($a,4,Asc("h"),1)
;=========================================================
; Mostrando la informacin de la estructura
;=========================================================
MsgBox(0,"DllStruct","Struct Size: " & DllStructGetSize($a) & @CRLF & _
"Struct pointer: " & DllStructGetPtr($a) & @CRLF & _
"Data:" & @CRLF & _
DllStructGetData($a,1) & @CRLF & _
DllStructGetData($a,2) & @CRLF & _
DllStructGetData($a,3) & @CRLF & _
DllStructGetData($a,4))
;=========================================================
; Liberando memoria asignada a la estructura
;=========================================================
$a = 0

DllStructSetData
Establece el dato en uno de los elementos en la estructura.
DllStructSetData ( Estructura, Elemento, valor [, ndice ] )
Parmetros
Estructura

La estructura devuelta por DllStructCreate.

Elemento

El elemento de la estructura que usted desea acceder, inicia en 1 o el nombre


del elemento segn lo definido por DllStructCreate.

valor

El nuevo valor para colocar en la estructura

ndice

[opcional] Si el elemento es un arreglo, usted necesita especificar qu ndice va


a establecer, de otro modo se toma el ndice 1. El primer elemento es 1.

Valor de Retorno
Con xitos:

El valor, leda de la estructura.


367

Al Fallar:
@Error:

0.
0 = sin error.
1 = Estructura incorrecta segn esta definida por DllStructCreate.
2 = Valor del elemento fuera de rango.
3 = ndice sobrepasa la estructura.
4 = El tipo de dato del elemento es desconocido
5 = ndice <= 0.

Comentarios
Cuando el elemento es char[n], byte[n] o ubyte[n] el dato puede ser cadena, de otro modo es
tomado como nmero.
Relativo
DllStructCreate, DllStructGetData, DllStructGetSize
Ejemplo
;=========================================================
; Crea la estructura
; struct {
;
int
var1;
;
unsigned char var2;
;
unsigned int var3;
;
char
var4[128];
; }
;=========================================================
$str
= "int;ubyte;uint;char[128]"
$a
= DllStructCreate($str)
if @error Then
MsgBox(0,"","Error en DllStructCreate " & @error);
exit
endif
;=========================================================
; Establece datos en la estructura
; struct.var1 = -1;
; struct.var2 = 255;
; struct.var3 = INT_MAX; -1 will be typecasted to (unsigned int)
; strcpy(struct.var4,"Hola");
; struct.var4[0] = 'h';
;=========================================================
DllStructSetData($a,1,-1)
DllStructSetData($a,2,255)
DllStructSetData($a,3,-1)
DllStructSetData($a,4,"Hello")
DllStructSetData($a,4,Asc("h"),1)
;=========================================================
; Mostrando la informacin de la estructura
368

;=========================================================
MsgBox(0,"DllStruct","Struct Size: " & DllStructGetSize($a) & @CRLF & _
"Struct pointer: " & DllStructGetPtr($a) & @CRLF & _
"Data:" & @CRLF & _
DllStructGetData($a,1) & @CRLF & _
DllStructGetData($a,2) & @CRLF & _
DllStructGetData($a,3) & @CRLF & _
DllStructGetData($a,4))
;=========================================================
; Liberando memoria asignada a la estructura
;=========================================================
$a = 0

PluginOpen

Abre un fichero de plugin.


PluginOpen (nombre_fichero)
Aviso: Esta caracterstica es experimental. Puede no funcionar, puede contener errores, ser
cambiado o removido sin aviso alguno.
No reporte ningn fallo o recomiende nuevas ideas acerca de esta caracterstica.
USAR BAJO SU PROPIO RIESGO.
Parmetros
nombre_fichero El nombre del fichero de plugin para abrir.
Valor de Retorno
Con xitos:
Al Fallar:

Devuelve un "apuntador" dll para poder cerrarse con PluginClose().


Devuelve 0.

Comentarios
Ninguno.
Relativo
PluginClose
Ejemplo
$handle = PluginOpen("[Link]")

PluginClose
369

Cerrar un fichero plugin.


PluginClose ( apuntador_dll )
Aviso: Esta caracterstica es experimental. Puede no funcionar, puede contener errores, ser
cambiado o removido sin aviso alguno.
No reporte ningn fallo o recomiende nuevas ideas acerca de esta caracterstica.
USAR BAJO SU PROPIO RIESGO.
Parmetros
apuntador_dll El apuntador de una dll, retornado de una llamada previa a PluginOpen.
Valor de Retorno
Con xitos:
Al Fallar:

Devuelve 1.
Devuelve 0.

Comentarios
Ninguno.
Relativo
PluginOpen
Ejemplo
$handle = PluginOpen("[Link]")
PluginFunc1(0.1, 0.2) ; llamar la funcin de plugin con 2 parmetros
PluginClose($handle)

ProcessClose
Termina un proceso nombrado.
ProcessClose ("proceso")
Parmetros
proceso

El nombre o PID de el proceso a terminar.

Valor de Retorno
370

Con xito:
Al Fallar:

Devuelve 1.
Devuelve 0 y establece @error a:
1 = OpenProcess fall
2 = AdjustTokenPrivileges fall
3 = TerminateProcess fall
4 = No puede verificar si el proceso existe

Comentarios
Los nombres de procesos son ejecutables sin la ruta completa, ej., "[Link]" o
"[Link]"
Si procesos mltiples tienen el mismo nombre, el que tiene el ms alto PID es el terminado--a
pesar de como recientemente el proceso haya sido generado.
PID es el nmero nico que identifica un Proceso. Un PID puede ser obtenido a travs de los
comandos ProcessExists o Run.
El proceso es consultado aproximadamente cada 250 milisegundos.
Relativo
ProcessExists, ProcessWait, ProcessWaitClose, Run, WinClose, ProcessList, RunAs, Shutdown,
WinKill
Ejemplo
ProcessClose("[Link]")
$PID = ProcessExists("[Link]") ; devolver el PID o 0 si el proceso no es encontrado.
If $PID Then ProcessClose($PID)

ProcessExists
Revisa si un proceso especificado existe.
ProcessExists ("proceso")
Parmetros
proceso

El nombre o PID del proceso a revisar.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve el PID del proceso.


Devuelve 0 si proceso no existe.
371

Comentarios
Nombres de procesos son ejecutables sin la ruta completa, ej., "[Link]" o "[Link]"
PID es el nmero nico que identifica un Proceso.
El proceso es consultado aproximadamente cada 250 milisegundos.
Relativo
ProcessClose, ProcessWait, ProcessWaitClose, WinExists, ProcessList
Ejemplo
If ProcessExists("[Link]") Then
MsgBox(0, "Ejemplo", "Notepad est en ejecucin.")
EndIf

ProcessGetStats
Devuelve un arreglo sobre Memoria o informacin de IO(Entrada y Salida) de un proceso en
ejecucin.
ProcessGetStats (["proceso" [, tipo]])
Parmetros
proceso

[opcional] El nombre o PID del proceso a obtener informacin. Por defecto (-1)
es el proceso actual.

tipo

[opcional] 0 = (por defecto) informacin de memoria, 1 = informacin de IO(E/S)

Valor de Retorno
Con xito:
Al Fallar:

Un arreglo de informacin (Ver Comentarios)


0.

Comentarios
El arreglo devuelto es uni-dimensional y hace lo siguiente:
Tipo = 0 : Estadsticas de Memoria
$arreglo[0] = WorkingSetSize
$arreglo[1] = PeakWorkingSetSize
Tipo = 1 : Estadsticas de IO
$arreglo[0] = nmero de operaciones de lectura realizadas.
372

$arreglo[1] = nmero de operaciones de escritura realizadas.


$arreglo[2] = nmero de operaciones de I/O(E/S) realizadas, que no son de operaciones de
lectura y escritura.
$arreglo[3] = nmero de bytes ledos.
$arreglo[4] = nmero de bytes escritos.
$arreglo[5] = nmero de bytes transferidos durante operaciones que no son de lectura y
escritura.
Relativo
ProcessList
Ejemplo
; recupera la info de memoria de los procesos en ejecucin
$mem = ProcessGetStats()
; recupera la info de E/S de los procesos en ejecucin
$IO = ProcessGetStats(-1, 1)

ProcessSetPriority
Cambia la prioridad de un proceso
ProcessSetPriority ("proceso", prioridad)
Parmetros
proceso

El nombre o PID del proceso a revisar.

prioridad

Un bandera que determina que prioridad a establecer


0 - Inactivo/Bajo
1 - Por debajo de lo Normal
2 - Normal
3 - Por encima de lo Normal
4 - Alto
5 - Tiempo Real (Use con precaucin, tal vez vuelva el sistema inestable)

Valor de Retorno
Con xito:
Al Fallar:

Devuelve 1.
Devuelve 0 y establece el valor de @error en 1. Puede establecer @error a 2 si
se intenta usar una prioridad de clase no soportada.

Comentarios
Ninguno.
Relativo
373

ProcessList, _ProcessGetPriority
Ejemplo
Run("[Link]")
ProcessSetPriority("[Link]", 0)
; Notepad debera tener una prioridad Espera/Baja

ProcessList
Devuelve un arreglo listando los procesos actualmente en ejecucin (nombres y PIDs)
ProcessList (["nombre"])
Parmetros
nombre

[opcional] Si un nombre es dado solamente los procesos del mismo nombre


sern devueltos.

Valor de Retorno
Con xito:
Al Fallar:

Un arreglo de nombres de procesos y sus PIDs (Ver Observaciones)


@error es establecido a 1 cuando la lista no puede ser construida.

Comentarios
El arreglo devuelto es bi-dimensional y es compuesta de la siguiente manera:
$arreglo[0][0] = Nmero de procesos
$arreglo[1][0] = 1er. Nombre de proceso
$arreglo[1][1] = 1er. ID de proceso (PID)
$arreglo[2][0] = 2do. Nombre de proceso
$arreglo[2][1] = 2do. ID de proceso (PID)
...
$arreglo[n][0] = ensimo Nombre de proceso
$arreglo[n][1] = ensimo ID de proceso (PID)
La lista puede estar vaca si $arreglo[0][0] = 0. No se establece @error en este caso.
Relativo
ProcessClose, ProcessExists, ProcessSetPriority, ProcessWait, ProcessWaitClose,
ProcessGetStats, WinGetProcess
Ejemplo
; Lista todos los procesos
$list = ProcessList()
for $i = 1 to $list[0][0]
374

msgbox(0, $list[$i][0], $list[$i][1])


next
; Lista slo los procesos de [Link]
$list = ProcessList("[Link]")
for $i = 1 to $list[0][0]
msgbox(0, $list[$i][0], $list[$i][1])
next

ProcessWait
Pausa el script ejecucin hasta que proceso dado exista.
ProcessWait ("proceso" [, tiempoExpiracin])
Parmetros
proceso

El nombre de el proceso a revisar.

tiempoExpiracin

[opcional] Especifica cunto tiempo a esperar (en segundos). Por defecto a


esperar indefinidamente.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve el PID del proceso.


Devuelve 0 si el tiempo de espera expir.

Comentarios
Nombres de procesos son ejecutables sin la ruta completa, ej., "[Link]" o "[Link]"
El proceso es consultado aproximadamente cada 250 milisegundos.
Esta funcin de procesos que no acepta un PID. Porque los PIDs son asignados al azar, esperar
por cierto PID en particular que no existe, no tiene sentido.
Relativo
ProcessClose, ProcessExists, ProcessWaitClose, RunWait, WinWait, WinWaitActive, ProcessList,
RunAsWait, WinGetProcess
Ejemplo
ProcessWait("[Link]")

ProcessWaitClose
Pausa el script en ejecucin hasta que dado proceso termine.
375

ProcessWaitClose ( "proceso" [, tiempoExpiracin] )


Parmetros
proceso

El nombre o PID del proceso a revisar.

tiempoExpiracin

[opcional] Especifica cunto tiempo a esperar (en segundos). Por defecto


espera indefinidamente.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve 1 y establece @extended para el cdigo de salida de los procesos.


Devuelve 0 si el tiempo de espera expir. En PID no vlidos @error es
establecido a no-cero y @extended es establecido a 0xCCCCCCCC.

Comentarios
Nombres de procesos son ejecutables sin la ruta completa, ej., "[Link]" o "[Link]"
PID es el nmero nico que identifica a un Proceso. Un PID puede ser obtenido a travs de
comandos como ProcessExists o Run.
El proceso es consultado aproximadamente cada 250 milisegundos.
El valor devuelto es 1 si el proceso no existe.
Relativo
ProcessClose, ProcessExists, ProcessWait, RunWait, WinWaitClose, ProcessList, RunAsWait,
WinGetProcess
Ejemplo
;espera hasta que no exista una instancia de [Link]
ProcessWaitClose("[Link]")
; Esto esperar hasta que esta instancia en particular de notepad haya terminado
$PID = Run("[Link]")
ProcessWaitClose($PID)

Run
Ejecuta un programa externo.
Run ( "programa" [, "directorio de trabajo" [, flag_mostrar[, opt_flag ]]] )

376

Parmetros
programa

La ruta completa del programa (EXE, BAT, COM, o PIF) a ejecutar (ver
Comentarios).

directorio de
[opcional] El directorio de trabajo actual. Este no es la ruta del programa.
Trabajo
[opcional] El bandera "show" del programa ejecutado:
@SW_HIDE = Ventana oculta (o Palabra clave por defecto)
flag_mostrar
@SW_MINIMIZE = Ventana minimizada
@SW_MAXIMIZE = Ventana maximizada

opt_flag

[opcional] Controla varias opciones relativas a como los procesos padre he hijo
interactan.
0x1 ($STDIN_CHILD) = Provee un apuntador al flujo o flujo del proceso hijo de
STDIN
0x2 ($STDOUT_CHILD) = Provee un apuntador al flujo o flujo de STDOUT
0x4 ($STDERR_CHILD) = Provee un apuntador al flujo de STDERR
0x8 ($STDERR_MERGED) = Provee el mismo apuntador para STDOUT y STDERR.
Implica ambos $STDOUT_CHILD y $STDERR_CHILD.
0x10 ($STDIO_INHERIT_PARENT) = Provee al hijo con el flujo STDIO del padre.
Este flag no puede ser combinado con ningn otro flag de STDIO. Este flag es
solo til cuando el padre es compilado como una Aplicacin de Consola.
0x10000 ($RUN_CREATE_NEW_CONSOLE) = La consola del proceso hijo
debera ser creado en una ventana propia en vez de utilizar la ventana padre.
Este flag es solo til cuando el padre es compilado como una Aplicacin de
Consola.

Valor de Retorno
Con xito:
Al Fallar:

El PID del proceso que fue ejecutado.


Devuelve 0 y establece el valor de @error en no-cero.

Comentarios
Las rutas con espacios necesitan ser encerradas entre comilas.
Para ejecutar comandos de DOS (consola), intente Run(@ComSpec & "/c" y "nombre De
Comando", "", @SW_HIDE) ;no se olvide de "" antes "/c"
Despus de ejecutar el programa solicitado el script continuar. Para detener la ejecucin de
secuencia de comandos hasta que el programa haya terminado utilice la funcin RunWait.
Proporcionar el Estndar de E/S(I/O) con el parmetro adecuado de valores permite la
interaccin con el proceso hijo a travs de las funciones StderrRead, StdinWrite y StdoutRead.
Combine el flag con valores (o use $STDERR_CHILD, $STDIN_CHILD & $STDOUT_CHILD,
definidos en Constants.au3) para gestionar ms de una secuencia.
Con el fin de cerrar los flujos, las siguientes condiciones debe ser cumplidas: 1) El proceso hijo
cerr su proceso al final del flujo (esto sucede cuando el proceso hijo se cierra). 2) AutoIt debe
leer cualquier captura de flujos hasta que no hay ms datos. 3) Si STDIN es provisto como
377

proceso hijo, StdinWrite() debe ser llamado cerrar el flujo. Una vez que todos los flujos son
detectados como ya no es necesario, todos los recursos internos automticamente sern
liberados.
StdioClose puede ser usado para forzar a que el flujo de STDIO cierre.
Relativo
RunWait, RunAs, RunAsWait, ShellExecute, ShellExecuteWait, StderrRead, StdinWrite,
StdoutRead, StdioClose, ProcessClose, ConsoleRead
Ejemplo
Run(@WindowsDir & "\[Link]", "", @SW_MAXIMIZE)

RunWait
Ejecuta un programa externo y pausa la ejecucin del script hasta que el programa finaliza.
RunWait ("programa" [, "directorio de trabajo" [, flag_mostrar [, opt_flag ]]])
Parmetros
La ruta completa del programa (EXE, BAT, COM, o PIF) a ejecutar (ver
Comentarios).

programa

directorio_de_trabajo [opcional] El directorio de trabajo. Este no es la ruta del programa.

flag_mostrar

[opcional] El bandera "show" del programa ejecutado:


@SW_HIDE = Ventana oculta (o Palabra clave por defecto)
@SW_MINIMIZE = Ventana minimizada
@SW_MAXIMIZE = Ventana maximizada

opt_flag

[optional] Controla varias opciones relativas a como los procesos padre


he hijo interactan.
0x10000 ($RUN_CREATE_NEW_CONSOLE) = La consola del proceso
hijo debera ser creado en una ventana propia en vez de utilizar la
ventana padre. Este flag es solo til cuando el padre es compilado
como una Aplicacin de Consola.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve el cdigo de salida que del programa que fue ejecutado.


Devuelve 0 y establece el valor de @error en no-cero.

Comentarios
Las rutas con espacios necesitan ser encerradas entre comillas.

378

Para ejecutar comandos de DOS (consola), intente RunWait(@ComSpec & "/c" y "nombre de
comando", "", @SW_HIDE) ;no se olvide de "" antes "/c"
Al ejecutar el programa solicitado el script se pausar. Para ejecutar un programa y continuar
con el script utilice la funcin Run.
En algunos programas aparecer que devuelve inmediatamente al script la ejecucin, aunque
todava se ejecutando el programa; estos programas abren otros procesos - usted puede ser
capaz de usar la funcin ProcessWaitClose al apuntador en estos casos.
Relativo
ProcessWait, ProcessWaitClose, Run, ShellExecute, ShellExecuteWait, RunAs, RunAsWait
Ejemplo
Local $val = RunWait(@WindowsDir & "\[Link]", @WindowsDir, @SW_MAXIMIZE)
; script espera hasta que Notepad cierre
MsgBox(0, "Programa devuelve con el cdigo de salida:", $val)

RunAs
Ejecuta un programa externo bajo el contexto de un usuario diferente.
RunAs ("NombreDeUsuario", "dominio", "contrasea", flag_acceso, "programa" [,
"directorio de trabajo" [,flag_mostrar [, opt_flag ]]])
Parmetros
NombreDeUsuario El nombre de usuario a conectar.
dominio

El dominio en el que ser autenticado.

contrasea

La contrasea del usuario.

flag_acceso

0 - Sesin interactiva sin perfil.


1 - Sesin interactiva con perfil.
2 - Solamente credenciales de red.
4 - Hereda la llamada del entorno del proceso en lugar del usuario.

programa

La ruta completa del programa (EXE, BAT, COM, o PIF) a ejecutar (ver
Comentarios).

directorio de
Trabajo

[opcional] El directorio de trabajo actual. Este no es la ruta del programa.

flag_mostrar

[opcional] el flag "show" del programa ejecutado:


@SW_HIDE = Ventana oculta (o Palabra clave por defecto)
@SW_MINIMIZE = Ventana minimizada
@SW_MAXIMIZE = Ventana maximizada

opt_flag

[opcional] Controla varias opciones relativas a como los procesos padre he


379

hijo interactan
0x1 ($STDIN_CHILD) = Provee un apuntador al flujo del proceso hijo de
STDIN
0x2 ($STDOUT_CHILD) = Provee un apuntador al flujo de STDOUT
0x4 ($STDERR_CHILD) = Provee un apuntador al flujo de STDERR
0x8 ($STDERR_MERGED) = Provee el mismo apuntador para STDOUT y
STDERR. Implica ambos $STDOUT_CHILD y $STDERR_CHILD.
0x10 ($STDIO_INHERIT_PARENT) = Provee al hijo con el flujo STDIO del
padre. Este flag no puede ser combinado con ningn otro flag de STDIO.
Este flag es solo til cuando el padre es compilado como una Aplicacin de
Consola.
0x10000 ($RUN_CREATE_NEW_CONSOLE) = La consola del proceso hijo
debera ser creado en una ventana propia en vez de utilizar la ventana
padre. Este flag es solo til cuando el padre es compilado como una
Aplicacin de Consola.
Valor de Retorno
Con xito:
Al Fallar:

El PID del proceso que fue ejecutado.


Devuelve 0 y establece el valor de @error en no-cero.

Comentarios
Las rutas con espacios necesitan ser encerradas entre comillas.
Es importante especificar un directorio de trabajo del usuario que usted est ejecutando como
el que accede, de otro modo la funcin fallar.
Es recomendado que usted solamente cargue el perfil de usuario si est seguro que lo
necesita. Hay una pequea oportunidad de que un perfil puede ser pegado en la memoria bajo
las condiciones adecuadas. Si un script usando RunAs() pasa para ser ejecutando con la cuenta
de SYSTEM (por ejemplo, si el script est ejecutndose como un servicio) y el perfil de usuario
es cargado, entonces usted debe tener cuidado de que el script se quede ejecutando hasta que
el proceso hijo cierre.
Cuando se ejecuta como un administrador, el servicio de sesin secundaria (RunAs) debe ser
activado sino la funcin fallar. Este no aplica cuando se est ejecutando como la cuenta de
SYSTEM.
Despus de ejecutar el programa solicitado el script continuar. Para detener la ejecucin de
secuencia de comandos hasta que el programa haya terminado utilice la funcin RunWait.
Proporcionar el Estndar de E/S(I/O) con el parmetro adecuado de valores permite la
interaccin con el proceso hijo a travs de las funciones StderrRead, StdinWrite y StdoutRead.
Combine el flag con valores (o use $STDERR_CHILD, $STDIN_CHILD & $STDOUT_CHILD,
definidos en Constants.au3) para gestionar ms de una secuencia.
Con el fin de que cerrar flujos, las siguientes condiciones debe ser cumplidas: 1) El proceso hijo
cerr su proceso al final del flujo (esto sucede cuando el proceso hijo se cierra). 2) AutoIt debe
leer cualquier captura de flujos hasta que no hay ms datos. 3) Si STDIN es provisto como
proceso hijo, StdinWrite() debe ser llamado cerrar el flujo. Una vez que todos los flujos son
380

detectados como ya no es necesario, todos los recursos internos automticamente sern


liberados.
StdioClose puede ser usado para forzar a que el flujo de STDIO cierre.
Opciones de "cargar perfil" y "solamente credenciales de red" son incompatibles. Usando
ambas producir resultados impredecibles.
Existe un asunto en la generacin de Windows XP generation de Windows que impide la
redireccin del STDIO redirection y el flag_mostrar en el directorio de tabajo. Ver el articulo de
la Base de Conocimientos de Microsoft KB818858 para ms informacin acerca de cuales
versiones son afectadas as como tambin un correcin para este asunto. Los usuarios con
Windows 2000, Windows XP SP2 o despus, o Windows Vista no son afectados.
Relativo
Run, RunWait, RunAsWait, ShellExecute, ShellExecuteWait, StderrRead, StdinWrite,
StdoutRead, StdioClose, ProcessClose
Ejemplo
; Llena el nombre de usuario y contrasea apropiados para su sistema.
Local $sUserName = "NombreDeUsuario"
Local $sPassword = "Password"
; Ejecuta un comando como el otro usuario.
RunAs($sUserName, @ComputerName, $sPassword, 0, @ComSpec, @SystemDir)

RunAsWait
Ejecuta un programa externo bajo el contexto de un usuario diferente y pausa la ejecucin del
script hasta que el programa finaliza.
RunAsWait ("NombreDeUsuario", "dominio", "contrasea", flag_acceso, "programa" [,
"directorio de trabajo" [,flag_mostrar [, opt_flag ]]])
Parmetros
NombreDeUsuario

El nombre de usuario a conectar.

dominio

El dominio en el que ser autenticado.

contrasea

La contrasea del usuario.

flag_acceso

0 - Sesin interactiva sin perfil.


1 - Sesin interactiva con perfil.
2 - Solamente credenciales de red.
4 - Hereda la llamada del entorno del proceso en lugar del usuario.

programa

La ruta completa del programa (EXE, BAT, COM, o PIF) a ejecutar (ver
Comentarios).

381

directorio_de_Trabajo

[opcional] El directorio de trabajo actual. Este no es la ruta del


programa.

flag_mostrar

[opcional] El bandera "show" del programa ejecutado:


@SW_HIDE = Ventana oculta (o Palabra clave por defecto)
@SW_MINIMIZE = Ventana minimizada
@SW_MAXIMIZE = Ventana maximizada

opt_flag

[opcional] Controla varias opciones relativas a como los procesos


padre he hijo interactan.
0x10000 ($RUN_CREATE_NEW_CONSOLE) = La consola del proceso
hijo debera ser creado en una ventana propia en vez de utilizar la
ventana padre. Este flag es solo til cuando el padre es compilado
como una Aplicacin de Consola.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve el cdigo de salida que del programa que fue ejecutado.


Devuelve 0 y establece el valor de @error en no-cero.

Comentarios
Las rutas con espacios necesitan ser encerradas entre comilas.
Es importante especificar un directorio de trabajo del usuario que usted est ejecutando como
el que accede, de otro modo la funcin fallar.
Es recomendado que usted solamente cargue el perfil de usuario si est seguro que lo
necesita. Hay una pequea oportunidad de que un perfil puede ser pegado en la memoria bajo
las condiciones adecuadas. Si un script usando RunAs() pasa para ser ejecutado con la cuenta
de SYSTEM (por ejemplo, si el script est ejecutndose como un servicio) y el perfil de usuario
es cargado, entonces usted debe tener cuidado de que el script se quede ejecutando hasta que
el proceso hijo cierre.
Cuando se ejecuta como un administrador, el servicio de sesin secundaria (RunAs) debe ser
activado sino la funcin fallar. Este no aplica cuando se est ejecutando como la cuenta de
SYSTEM.
Al ejecutar el programa solicitado el script se pausar. Para ejecutar un programa y continuar
con el script utilice la funcin RunAs.
En algunos programas aparecer que devuelve inmediatamente al script la ejecucin, aunque
todava se ejecutando el programa; estos programas abren otros procesos - usted puede ser
capaz de usar la funcin ProcessWaitClose al apuntador en estos casos.
Opciones de "cargar perfil" y "solamente credenciales de red" son incompatibles. Usando
ambas producir resultados impredecibles.
Relativo
ProcessWait, ProcessWaitClose, Run, RunWait, ShellExecute, ShellExecuteWait, RunAs
382

Ejemplo
; Llena el nombre de usuario y contrasea apropiados para su sistema.
Local $sUserName = "NombreDeUsuario"
Local $sPassword = "Password"
; Ejecuta un comando como el otro usuario.
RunAs($sUserName, @ComputerName, $sPassword, 0, @ComSpec, @SystemDir)
; Espera a que el proceso cierre.
ProcessWaitClose($pid)
; Muestra un mensaje.
MsgBox(0, "", "El proceso que se esperaba cerrarse ha terminado.")

ShellExecute
Ejecuta un programa externo usando la API de ShellExecute.
ShellExecute ("nombre de archivo" [, "Parmetros" [, "directorio de trabajo" [, "verbo" [,
flagDeAparicion]]]])
Parmetros
nombre de archivo

El nombre del archivo a ejecutar (EXE, .txt, .lnk, etc).

Parmetros

[opcional] Opcin para enviar parmetros al programa ejecutado. No


usar ninguno si se deja en blanco ("")

Directorio_de_trabajo

[opcional] El directorio de trabajo. Dejando en vaco ("") usa el


directorio actual de trabajo.

verbo

[opcional] El "verbo" a utilizar, verbos comunes incluyen:


open = Abre el archivo especificado. El archivo puede ser un archivo
ejecutable, un documento, o una carpeta
edit = Abre el editor y abre el documento para edicin. Si "nombre de
archivo" no es un documento, la funcin fallar
print = Imprime el documento especificado. Si "nombre de archivo"
no es un documento, la funcin fallar
properties = Muestra el archivo o propiedad de carpeta

flagDeAparicin

Ver Comentarios para ms informacin del comportamientopor


defecto en caso de no ser especificado el verbo.
[opcional] La bandera de aparicin o "show" define como se ver la
ventana del programa ejecutado:
@SW_HIDE = Ventana oculta
@SW_MINIMIZE = Ventana minimizada
@SW_MAXIMIZE = Ventana maximizada

Valor de Retorno

383

Con xito:
Al Fallar:

Devuelve 1.
Devuelve 0 y establece el valor de @error a no-cero.

Comentarios
Despus de ejecutar el programa solicitado el script contina. Para pausar la ejecucin del
script hasta que el programa generado finalice usar la funcin ShellExecuteWait en su lugar.
Cuando el verbo no es especificado el utilizado el por defecto. El verbo por defecto es el
configurado en el registro. Si en el registro no existe ningn verbo establecido por defecto
entonces el verbo "open" verb es usado. Si el verbo "open" no esta presente entonces el
primer verbo listado en el registro es usado(excepto en Windows 2000).
Relativo
ShellExecuteWait, Run, RunWait, RunAs, RunAsWait
Ejemplo
; Abre Notepad
ShellExecute("[Link]")
; Abre un archivo de texto (.txt) con su editor predeterminado
ShellExecute("[Link]", "", @ScriptDir, "edit")

ShellExecuteWait
Ejecuta un programa externo usando la API de ShellExecute y pausa la ejecucin del script
hasta que finalice.
ShellExecuteWait (nombre_de_archivo" [, "Parmetros" [, "directorio_de_trabajo" [,
"verbo" [, flagDeAparicin]]]])
Parmetros
nombre_de_archivo

El nombre del archivo a ejecutar (EXE, .txt, .lnk, etc).

Parmetros

[opcional] Opcin para enviar parmetros al programa ejecutado. No


usar ninguno si se deja en blanco ("")

Directorio_de_Trabajo

[opcional] El directorio de trabajo. Dejando en vaco ("") usa el


directorio actual de trabajo.

verbo

[opcional] El "verbo" a utilizar, verbos comunes incluyen:


open = Abre el archivo especificado. El archivo puede ser un archivo
ejecutable, un documento, o una carpeta
edit = Abre el editor y abre el documento para edicin. Si "nombre de
archivo" no es un documento, la funcin fallar
print = Imprime el documento especificado. Si "nombre de archivo"
no es un documento, la funcin fallar

384

properties = Muestra el archivo o propiedad de carpeta


Ver Comentarios para ms informacin del comportamientopor
defecto en caso de no ser especificado el verbo.

flagDeAparicin

[opcional] La bandera de aparicin o "show" define como se ver la


ventana del programa ejecutado:
@SW_HIDE = Ventana oculta
@SW_MINIMIZE = Ventana minimizada
@SW_MAXIMIZE = Ventana maximizada

Valor de Retorno
Con xito:
Al Fallar:

Devuelve el cdigo de salida del programa que fu ejecutado.


Devuelve 0 y establece el valor de @error a no-cero.

Comentarios
Despus de ejecutar el programa solicitado el script pausa hasta que el programa solicitado
termina.
Cuando el verbo no es especificado el utilizado el por defecto. El verbo por defecto es el
configurado en el registro. Si en el registro no existe ningn verbo establecido por defecto
entonces el verbo "open" verb es usado. Si el verbo "open" no esta presente entonces el
primer verbo listado en el registro es usado(excepto en Windows 2000).
Relativo
ShellExecute, Run, RunWait, RunAs, RunAsWait
Ejemplo
$val = ShellExecuteWait("[Link]")
; el script espera que Notepad cierra
MsgBox(0, "Programa devuelto con el cdigo de salida:", $val)

Shutdown
Apaga el sistema.
Shutdown ( cdigo [, razn] )
Parmetros
cdigo

Una combinacin de cdigos de apagado. Ver Comentarios.

razn

[opcional] Cdigo de razn de terminacin de usuario.

Valor de Retorno
385

Con xito:
Al Fallar:

Devuelve 1.
Devuelve 0 y @error es establecido a GetLastError().

Comentarios
El cdigo de apagado es una combinacin de los siguientes valores:
0 = Cerrar sesin (Logoff)
1 = Cierra el sistema (Shutdown)
2 = Reiniciar (Reboot)
4 = Forzar (Force)
8 = Apaga el sistema
16= Forzar si se cuelga
32= Suspender (Standby)
64= Hibernacin
Agregar los valores requeridos juntos. Para cerrar y apagar, por ejemplo, el cdigo debera ser
9 (shutdown + power down = 1 + 8 = 9).
Suspender o Hibernar son ignorados si otros cdigos son establecidos.
Relativo
ProcessClose
Ejemplo
Shutdown(6) ;Fuerza un reincio

StderrRead

Lee del flujo de STDERR de un proceso hijo previamente ejecutado.


StderrRead ( id_del_proceso[, revisin = false[, binario = false]] )
Parmetros
id_del_proceso

El ID del proceso de un proceso hijo, como es devuelto por una llamada previa
de Run.

revisin

[opcional] Si el valor es true, es decir, verdadero la funcin no remueve los


caracteres ledos del flujo.

binario

[opcional] Si el valor true, es decir, verdadero la funcin lee la informacin


como binario en vez de texto (por defecto es texto).

Valor de Retorno
Con xito:

Devuelve la informacin leda. @extended contiene el nmero de bytes ledos.


386

Al Fallar:

Establece @error a no-cero si EOF es alcanzado, STDERR no fue redirigido por el


proceso u otro error.

Comentarios
StderrRead lee el flujo de la consola estndar de un proceso hijo, que normalmente es usado
por aplicaciones de consola para escribir a la pantalla. Durante la llamada a Run para el
proceso hijo usted desea leer, el parmetro STD I/O debe tener incluido el valor de
$STDERR_CHILD (4) para que esta funcin trabaje apropiadamente (vea la funcin Run).
StderrRead no bloquea, lo devolver inmediatamente. Con el fin de obtener toda la
informacin, debe ser llamado en un ciclo.
Revisando sobre el flujo no elimina los datos de la memoria, sin embargo, no devolver la
informacin disponible como es normalmente.
Por defecto, los datos o informacin es devuelta en formato de texto. Usando la opcin
binaria, los datos sern devueltos en formato binario.
Relativo
StdoutRead, StdinWrite, StdioClose, Run, RunAs
Ejemplo
; Demuestra StdoutRead()
#include <Constants.au3>
Local $foo = Run(@ComSpec & " /c dir [Link]", @SystemDir, @SW_HIDE, $STDERR_CHILD +
$STDOUT_CHILD)
Local $line
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
MsgBox(0, "STDOUT lee:", $line)
Wend
While 1
$line = StderrRead($foo)
If @error Then ExitLoop
MsgBox(0, "STDERR lee:", $line)
Wend
MsgBox(0, "Debug", "Saliendo...")

StdinWrite
Escribe un nmero de caracteres al flujo de STDIN de un proceso hijo previamente ejecutado.
StdinWrite (id_del_proceso[, datos])
387

Parmetros
id_del_proceso El ID del proceso de un proceso hijo, devuelto por una llamada previa a Run.
datos

[opcional] Los datos que usted desea escribir. Este puede ser como texto o
binario.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve el nmero de caracteres escritos.


Establece @error a no-cero si STDIN no fue redirigido por el proceso u otro
error.

Comentarios
StderrRead escribe el flujo de la consola estndar de un proceso hijo, que normalmente es
usado por aplicaciones de consola para escribir a la pantalla. Durante la llamada a Run para el
proceso hijo usted desea leer, el parmetro STD I/O debe tener incluido el valor de
$STDERR_CHILD (4) para que esta funcin trabaje apropiadamente (vea la funcin Run).
El segundo parmetro opcional es la cadena que usted desea StdinWrite escribir al flujo. Si la
funcin es llamada sin un segundo argumento, StdinWrite cierra el flujo y lo invalida para
escritura posterior.
El flujo es de principio a fin en memoria con un tamao arbitrario limitado; si en cualquier
tiempo cuando esta funcin es llamada (a menos sea llamada para cerrar el flujo) no hay ms
espacio para ms caracteres para que sean escritos al flujo, la funcin StdinWrite funcin
bloquear (pausa) y no vuelve hasta que el proceso hijo cierra el flujo o lee lo suficientes
caracteres del flujo para permitir que el procedimiento de escritura complete. Esto significa
que el proceso de AutoIt ser detenido, y no procesar hotkeys, mensajes GUI, etc. hasta que
el proceso hijo lea del flujo de STDIN.
Los caracteres son convertidos a ANSI antes de ser escritos.
Los datos binarios son escritos tal como son. Estos no son convertidos a cadena. Para imprimir
una representacin hexadecimal de un dato binario, use la funcin String() para una
conversin explcita a cadena.
Relativo
StdoutRead, StderrRead, StdioClose, Run, RunAs
Ejemplo
; Demuentra el uso de StdinWrite()
#include <Constants.au3>
Local $foo = Run("[Link]", @SystemDir, @SW_HIDE, $STDIN_CHILD + $STDOUT_CHILD)
; Escribe una cadena para ser ordenada al proceso hijo de [Link] STDIN
StdinWrite($foo, "rat" & @CRLF & "cat" & @CRLF & "bat" & @CRLF)
388

; Llamando sin el segundo argumento cierra el flujo


StdinWrite($foo)
; Lee del proceso hijo STDOUT y lo muestra
Local $data
While True
$data &= StdoutRead($foo)
If @error Then ExitLoop
Sleep(25)
WEnd
MsgBox(0, "Debug", $data)

StdioClose
Cierra todos los recursos asociados con un proceso previamente ejecutado redireccin de
STDIO.
StdioClose (id_del_proceso)
Parmetros
id_del_proceso El ID del proceso de un proceso hijo, devuelto por una llamada previa a Run.
Valor de Retorno
Con xito:
Al Fallar:

No-cero.
0 si el proceso no tiene redireccin STDIO o ya fue cerrado.

Comentarios
Este funcin cierra todos los apuntadores y las emisiones relacionadas con todos los recursos
de STDIO. No sera posible leer datos del proceso STDIO. Datos pendientes se perdern.
Relativo
StdoutRead, StderrRead, StdinWrite, Run, RunAs
Ejemplo
; Demuestra StdioClose()
#include <Constants.au3>
Local $pid = Run(@ComSpec & " /c dir [Link]", @SystemDir, @SW_HIDE, $STDERR_MERGED +
$STDOUT_CHILD)
StdioClose($pid)
; Sin datos a ser ledos porque se han cerrados todos los flujos.
Local $line
While 1
389

$line = StdoutRead($pid)
If @error Then ExitLoop
MsgBox(0, "STDOUT lee:", $line)
Wend
While 1
$line = StderrRead($pid)
If @error Then ExitLoop
MsgBox(0, "STDERR lee:", $line)
Wend
MsgBox(0, "Debug", "Saliendo...")

StdoutRead
Lee del flujo STDOUT de un proceso hijo previamente ejecutado.
StdoutRead (id_del_proceso[, revisin = false[, binario = false]])
Parmetros
id_del_proceso El ID del proceso hijo, devuelto por una llamada previa a Run.
revisin

[opcional] Si el valor es true, es decir, verdadero la funcin no remueve los


caracteres ledos del flujo.

binario

[opcional] Si el valor true, es decir, verdadero la funcin lee la informacin


como binario en vez de texto (por defecto es texto)

Valor de Retorno
Con xito:
Al Fallar:

Devuelve la informacin leda. @extended contiene el nmero de bytes ledos.


Establece @error a no-cero si EOF es alcanzado, STDOUT no fue redirigido por el
proceso u otro error.

Comentarios
StdoutRead lee el flujo de la consola estndar de un proceso hijo, que normalmente es usado
por aplicaciones de consola para escribir a la pantalla. Durante la llamada a Run para el
proceso hijo usted desea leer, el parmetro STD I/O parmetro debe tener incluido el valor de
$STDOUT_CHILD (2) para que esta funcin trabaje apropiadamente (vea la funcin Run).
StdoutRead no bloquea, lo devolver inmediatamente. Con el fin de obtener toda la
informacin, debe ser llamado en un ciclo.
Revisando sobre el flujo no elimina los datos de la memoria, sin embargo, no devolver la
informacin disponible como es normalmente.
Por defecto, los datos o informacin es devuelta en formato de texto. Usando la opcin
binaria, los datos sern devueltos en formato binario.
390

Relativo
StderrRead, StdinWrite, StdioClose, Run, RunAs
Ejemplo
; Demuestra StdoutRead()
#include <Constants.au3>
Local $foo = Run(@ComSpec & " /c dir [Link]", @SystemDir, @SW_HIDE, $STDERR_CHILD +
$STDOUT_CHILD)
Local $line
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
MsgBox(0, "STDOUT lee:", $line)
Wend
While 1
$line = StderrRead($foo)
If @error Then ExitLoop
MsgBox(0, "STDERR lee:", $line)
Wend
MsgBox(0, "Debug", "Saliendo...")

391

Referencia de Administracin de Registro


A continuacin se muestra una lista completa de las funciones de Administracin de Registro
disponibles en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.
Funcin

Descripcin

RegDelete

Elimina una clave del registro.

RegEnumKey

Lee el nombre de una subclave de acuerdo a su instancia.

RegEnumVal

Lee el nombre de un valor de acuerdo a su instancia.

RegRead

Lee un valor del registro.

RegWrite

Crea una clave o valor en el registro.

RegDelete

Elimina una clave del registro.


RegDelete ( "nombredeclave" [, "nombredelvalor"] )
Parmetros
nombredeclave La clave de registro a borrar.
nombredelvalor [opcional] El nombre del valor a borrar.
Valor de Retorno
Con xito:
Especial:
Al Fallar:

Devuelve 1.
Devuelve 0 si el clave/valor no existe.
Devuelve 2 si hubo un error al eliminar clave/valor.
@error puede ser establecerse a los siguientes valores :
1 si est deshabilitado abrir la clave solicitada
2 si est deshabilitado abrir la clave principal solicitada
3 si est deshabilitado conectar remotamente al registro
-1 si est deshabilitado borrar el valor solicitado
-2 si est deshabilitado borrar clave/valor solicitado

Comentarios

392

Una clave del Registro debe comenzar con "HKEY_LOCAL_MACHINE" ( "HKLM") o


"HKEY_USERS" ( "HKU") o "HKEY_CURRENT_USER" ( "HKCU") o "HKEY_CLASSES_ROOT" (
"HKCR") o "HKEY_CURRENT_CONFIG" ( "HKCC") .
Cuando se ejecuta en 64-bit de Windows si desea eliminar una clave o valor especfico para el
entorno de 64 bits tiene que el sufijo de HK... con 64 es decir, HKLM64.
Para acceder al valor (por defecto) use "" (una cadena en blanco) para 'nombredelvalor'.
Eliminar del registro es potencialmente peligroso--por favor, tener cuidado!
Es posible acceder a los registros a distancia mediante el uso de un nombredeclave en la forma
"\\computadora\nombredeclave". Para utilizar esta caracterstica debe tener los derechos de
acceso correctos.
Relativo
RegRead, RegWrite, RegEnumKey, RegEnumVal
Ejemplo
RegDelete("HKEY_CURRENT_USER\Software\Test", "TestKey")
RegWrite("HKEY_CURRENT_USER\Software\Test")
RegWrite("HKEY_CURRENT_USER\Software\Test1")

RegEnumKey

Lee el nombre de una subclave de acuerdo a su instancia.


RegEnumKey ( "nombredeclave", instancia )
Parmetros
nombredeclave El clave del registro a leer.
instancia

La instancia de clave base-1 a recuperar.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve el nombre de la subclave solicitada.


Devuelve una cadena vaca "" y establece @error a:
1 si est deshabilitado abrir la clave solicitada
2 si est deshabilitado abrir la clave principal solicitada
3 si est deshabilitado conectar remotamente al registro
-1 si est deshabilitado recuperar la subclave solicitada (instancia de clave fuera
de rango)
393

Comentarios
Una clave del Registro debe comenzar con "HKEY_LOCAL_MACHINE" ( "HKLM") o
"HKEY_USERS" ( "HKU") o "HKEY_CURRENT_USER" ( "HKCU") o "HKEY_CLASSES_ROOT" (
"HKCR") o "HKEY_CURRENT_CONFIG" ( "HKCC").
Cuando se est ejecutando en Windows 64-bit si usted desea enumerar una clave especfica al
entorno de 64 bit usted debe tener el sufijo en HK... con 64 ej. HKLM64.
Relativo
RegEnumVal, RegDelete, RegWrite
Ejemplo
For $i= 1 to 10
$var = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE", $i)
If @error <> 0 then ExitLoop
MsgBox(4096, "SubClave #" & $i & " bajo HKLM\Software: ", $var)
Next

RegEnumVal

Lee el nombre de un valor de acuerdo a su instancia.


RegEnumVal ("nombredeclave", instancia)
Parmetros
nombredeclave El clave del registro a leer.
instancia

La instancia de clave base-1 a recuperar.

Valor de Retorno
Con xito:
Al Fallar:

Devuelve el valor del registro solicitado. @EXTENDED es establecido al tipo de


valor.
Devuelve una cadena vaca "" y establece @error a:
1 si est deshabilitado abrir la clave solicitada
2 si est deshabilitado abrir la clave principal solicitada
3 si est deshabilitado conectar remotamente al registro
-1 si est deshabilitado recuperar la subclave solicitada (instancia de clave fuera
de rango)

Comentarios

394

Una clave del Registro debe comenzar con "HKEY_LOCAL_MACHINE" ( "HKLM") o


"HKEY_USERS" ( "HKU") o "HKEY_CURRENT_USER" ( "HKCU") o "HKEY_CLASSES_ROOT" (
"HKCR") o "HKEY_CURRENT_CONFIG" ( "HKCC").
Cuando se est ejecutando en Windows 64-bit si usted desea enumerar una clave especfica al
entorno de 64 bit usted debe tener el sufijo en HK... con 64 ej. HKLM64.
RegEnumKey, RegDelete, RegWrite
Ejemplo
For $i = 1 to 100
$var = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\Autoit", $i)
if @error <> 0 Then ExitLoop
MsgBox(4096, "Nombre de valor #" & $i & " bajo clave de AutoIt3", $var)
next

RegRead

Lee un valor del registro.


RegRead ("NombreDeClave", "NombreDeValor")
Parmetros
nombredeclave El clave de registro a leer.
NombreDeValor El valor a leer.
Valor de Retorno
Con xito:

Al Fallar:

Devuelve el valor solicitado del registro. @EXTENDED es establecido al tipo del


valor $REG_... . Estos tipos son definidos en el archivo incluido de
"Constants.au3".
Devuelve "" y establece la bandera @error a:
1 si est deshabilitado abrir la clave solicitada
2 si est deshabilitado abrir la clave principal solicitada
3 si est deshabilitado conectarse remotamente al registro
-1 si est deshabilitado abrir el valor solicitado
-2 si tipo de valor no est soportado

Comentarios
Una clave del Registro debe comenzar con "HKEY_LOCAL_MACHINE" ( "HKLM") o
"HKEY_USERS" ( "HKU") o "HKEY_CURRENT_USER" ( "HKCU") o "HKEY_CLASSES_ROOT" (
"HKCR") o "HKEY_CURRENT_CONFIG" ( "HKCC").

395

Cuando se est ejecutando en Windows 64-bit si usted desea enumerar una clave especfica al
entorno de 64 bit usted debe tener el sufijo en HK... con 64 ej. HKLM64.
AutoIt soporta claves de registro del tipo REG_BINARY, REG_SZ, REG_MULTI_SZ,
REG_EXPAND_SZ, y REG_DWORD.
Para acceder al valor (por defecto) use "" (una cadena en blanco) para nombredelvalor.
Cuando se lee una clave REG_BINARY, el resultado es un tipo de dato binario (en versiones
previas este era una cadena de valores hexadecimales).
Cuando se lee una clave REG_MULTI_SZ, devolver mltiples entradas separados por @LF usar StringSplit(..., @LF) para obtener cada entrada.
Es posible acceder a los registros a distancia mediante el uso de un 'nombredeclave' en la
forma "\\computadora\nombredeclave". Para utilizar esta caracterstica debe tener los
derechos de acceso correctos.
Relativo
RegDelete, RegWrite, StringSplit
Ejemplo
$var = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion",
"ProgramFilesDir")
MsgBox(4096, "Archivos de programa estn en:", $var)

RegWrite

Crea una clave o valor en el registro.


RegWrite ("NombreDeClave" [,"NombreDeValor" [, "tipo" [, valor]]])
Parmetros
NombreDeClave

La clave del registro a escribir. Si no se especifican parmetros esta clave


simplemente ser creada.

NombreDeValor [opcional] El nombre del valor a escribir.


tipo

[opcional] Tipo de clave a escribir: "REG_SZ", "REG_MULTI_SZ",


"REG_EXPAND_SZ", "REG_DWORD", "REG_QWORD", o "REG_BINARY".

valor

[opcional] El valor a escribir.

Valor de Retorno
Con xito:

Devuelve 1.
396

Al Fallar:

Devuelve 0 si hubo un error escribiendo la clave o valor del registro.


@error puede ser establecido a los siguientes valores:
1 si est deshabilitado abrir la clave solicitada
2 si est deshabilitado abrir la clave principal solicitada
3 si est deshabilitado conectarse remotamente al registro
-1 si est deshabilitado abrir el valor solicitado
-2 si tipo de valor no est soportado

Comentarios
Una clave del Registro debe comenzar con "HKEY_LOCAL_MACHINE" ( "HKLM") o
"HKEY_USERS" ( "HKU") o "HKEY_CURRENT_USER" ( "HKCU") o "HKEY_CLASSES_ROOT" (
"HKCR") o "HKEY_CURRENT_CONFIG" ( "HKCC").
Cuando se est ejecutando en Windows 64-bit si usted desea enumerar una clave especfica al
entorno de 64 bit usted debe tener el sufijo en HK... con 64 ej. HKLM64.
AutoIt soporta claves de registro del tipo REG_BINARY, REG_SZ, REG_MULTI_SZ,
REG_EXPAND_SZ, y REG_DWORD.
Para acceder el (Default) valor use "" (una cadena en blanco) para el NombreDeValor.
Para acceder al valor (por defecto) use "" (una cadena en blanco) para NombreDeValor.
Cuando se escribe una clave REG_MULTI_SZ con mltiples entradas, debe separarse con @LF.
El valor no debe terminar con un @LF a menos que usted quiere dejar una cadena vaca al final
(ver ejemplo).
Es posible acceder a los registros a distancia mediante el uso de un NombreDeClave en la
forma "\\computadora\nombredeclave". Para utilizar esta caracterstica debe tener los
derechos de acceso correctos en NT/2000/XP/2003.
Relativo
RegDelete, RegRead, RegEnumKey, RegEnumVal
Ejemplo
; Escribe un valor simple de REG_SZ
RegWrite("HKEY_CURRENT_USER\Software\Test","TestKey", "REG_SZ", "Hola esto es una
prueba")
; Escribe valor REG_MULTI_SZ de "line1" y "line2"
RegWrite("HKEY_CURRENT_USER\Software\Test","TestKey1", "REG_MULTI_SZ", "line1" & @LF
& "line2")
; Escribe el valor REG_MULTI_SZ de "line1"
RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKey2", "REG_MULTI_SZ", "line1")
; siempre aade una cadena vaca nula
397

RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKey3", "REG_MULTI_SZ", "line1" &


@LF & "line2" & @LF)
RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKey4", "REG_MULTI_SZ", "line1" &
@LF & @LF & "line2" & @LF)
; vaca REG_MULTI_SZ
RegWrite("HKEY_CURRENT_USER\Software\Test","TestKey5", "REG_MULTI_SZ", "")
; crea solo la clave
RegWrite("HKEY_CURRENT_USER\Software\Test1")

398

Referencia de Administracin de Cadena


A continuacin se muestra una lista completa de las funciones de Administracin de
Cadena disponibles en AutoIt. Click en una de ellas para obtener detalles de su
descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes
GUI Incluidas si usted necesita usarlo para constantes de controles.

Funcin

Descripcin

StringAddCR

Toma una cadena de texto y todos los caracteres de lnea prefijos (


Chr(10) ) con un carcter de retorno de carro ( Chr(13) )

StringCompare

Compara dos cadenas de texto con opciones.

StringInStr

Revisa si una cadena contiene una subcadena dada.

StringIsAlNum

Revisa si una cadena contiene solamente caracteres alfanumricos.

StringIsAlpha

Revisa si una cadena contiene solamente caracteres alfabticos.

StringIsASCII

Revisa si una cadena contiene solamente caracteres ASCII en el rango


0x00 - 0x7f (0 - 127).

StringIsDigit

Revisa si una cadena contiene solamente caracteres de dgitos (0-9).

StringIsFloat

Revisa si una cadena es un nmero tipo punto flotante.

StringFormat

Devuelve una cadena de texto con formato (similar a la funcin


sprintf() de C )

StringFromASCIIArray

Convierte un arreglo de cdigos ASCII a una cadena.

StringIsInt

Revisa si una cadena es un entero.

StringIsLower

Revisa si una cadena contiene solamente letras minsculas.

StringIsSpace

Revisa si una cadena contiene solamente caracteres de espacios en


blanco.

399

StringIsUpper

Revisa si una cadena contiene solamente letras maysculas.

StringIsXDigit

Revisa si una cadena contiene solamente dgitos (0-9) y caracteres


hexadecimales (A-F)

StringLeft

Devuelve un nmero de caracteres a partir del lado izquierdo de una


cadena de texto.

StringLen

Devuelve el nmero de caracteres en una cadena de texto.

StringLower

Convierte a cadena a minsculas.

StringMid

Extrae un nmero de caracteres de una cadena de texto.

StringRegExp

Revisa si una cadena encaja en un patrn dado de expresin regular.

StringRegExpReplace

Reemplaza texto en un cadena basado en un expresin regular.

StringReplace

Reemplaza subcadenas en una cadena.

StringRight

Devuelve un nmero de caracteres del lado izquierdo de una cadena.

StringSplit

Divide una cadena en varias partes de acuerdo a un delimitador dado.

StringStripCR

Remueve todos los valor de retorno de carro ( Chr(13) ) de una


cadena.

StringStripWS

Recorta los espacios en blanco de una cadena.

StringToASCIIArray

Convierte una cadena a un arreglo conteniendo el cdigo ASCII de


cada caracter.

StringTrimLeft

Corta un nmero de caracteres del lado izquierdo de una cadena.

StringTrimRight

Corta un nmero de caracteres del lado derecho de una cadena.

StringUpper

Convierte una cadena a maysculas.

400

StringAddCR
Toma una cadena de texto y todos los caracteres de lnea prefijos (Chr(10)) con un carcter de
retorno de carro (Chr(13)).
StringAddCR ("cadena de texto")
Parmetros
cadena de
texto

La cadena de texto a convertir.

Valor de Retorno
Devuelve la cadena de texto con todas las instancias de los caracteres de alimentacin de lnea
(@LF) prefijados con un caracter de retorno de carro (@CR).
Comentarios
Ninguno.
Relativo
StringStripCR, StringReplace
Ejemplo
$old = "Notepad" & @LF & "espera" & @LF & "un texto CRLF."
$new = StringAddCR($old)

StringCompare
Compara dos cadenas de texto con opciones.
StringCompare ( "cadena de texto1", "cadena de texto2" [, casoSensitivo] )
Parmetros
cadena de
texto1

La primer cadena a evaluar.

cadena de
texto2

La segunda cadena a evaluar.

401

[opcional] Bandera para indicar si las operaciones deberan ser caso sensitivo.
0 = no caso sensitivo, usando el user's locale (por defecto)
casoSensitivo
1 = caso sensitivo
2 = no caso sensitivo, usando una comparacin bsica/rpida

Valor de Retorno
0

cadena de texto1 y cadena de texto2 son iguales

>0

cadena de texto1 es mayor que cadena de texto2

<0

cadena de texto1 es menor que cadena de texto2

Comentarios
Ninguno.
Relativo
StringInStr, StringLeft, StringLen, StringLower, StringMid, StringRight, StringTrimLeft,
StringTrimRight, StringUpper
Ejemplo
$result = StringCompare("MELN", "meln")
MsgBox(0, "Resultado de StringCompare (modo 0):", $result)
$result = StringCompare("MELN", "meln", 1)
MsgBox(0, "Resultado de StringCompare (modo 1):", $result)
$result = StringCompare("MELN", "meln", 2)
MsgBox(0, "Resultado de StringCompare (modo 2):", $result)

StringInStr
Revisa si una cadena contiene una subcadena dada.
StringInStr ("cadena de texto", "subcadena" [, caso_sensitivo [, ocurrencia [, inicio [,
cantidad]]]])
Parmetros
cadena de
texto

La cadena a evaluar.

402

subcadena

La subcadena a buscar.
[opcional] Bandera para indicar si las operaciones deberan ser caso sensitivo.
0 = no es caso sensitivo, usando el usuario local (por defecto)

caso_sensitivo

1 = caso sensitivo
2 = no es caso sensitivo, usando una comparacin bsica/rpida

ocurrencia

[opcional] Cual ocurrencia de la subcadena a buscar en la cadena. Usa


ocurrencia negativa para buscar del lado derecho. El valor predefinido es 1
(busca la primer ocurrencia).

inicio

[opcional] El inicio de posicin de bsqueda.

cantidad

[opcional] El nmero de caracteres a buscar. Esto efectivamente limita la


bsqueda a una porcin de toda la cadena. Ver Comentarios.

Valor de Retorno
Con xito:

Devuelve la posicin de la subcadena.

Al Fallar:

Devuelve 0 si la subcadena no es encontrada.

@Error

0 - Operacin normal
1 - Parmetro invlido de "inicio" y/o "ocurrencia".

Comentarios
El primer carcter de posicin es 1.
El parmetro "cantidad" debe ser ms largo que la subcadena a buscar. Este parmetro
(combinado con el parmetro inicio) efectivamente limita la busqueda de una subcadena en
toda la cadena. Las dos declaraciones siguientes son equivalentes:
StringInStr("la cadena abuscar", "cadena", 0, 1, 1, 11)
StringInStr(StringMid("la cadena abuscar", 1, 11), "cadena")

Relativo
StringCompare, StringLeft, StringLen, StringLower, StringMid, StringRight, StringTrimLeft,
StringTrimRight, StringUpper, StringRegExp, StringSplit

403

Ejemplo
$result = StringInStr("Soy una cadena", "RING")
MsgBox(0, "resultado de bsqueda:", $result)
$location = StringInStr("Cunta madera pondra maderalo un plato en un plato de madera
podra maderalo?", "madera", 0, 3) ; Busca la 3ra ocurrencia de "madera"

StringIsAlNum
Revisa si una cadena contiene solamente caracteres alfanumricos.
StringIsAlNum ( "cadena de texto" )
Parmetros
cadena
texto

de

La cadena a revisar

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0 si la cadena contiene caracteres no-alfanumricos.

Comentarios
Tenga presente que cualquier espacio en blanco causar que StringIsAlNum devuelva 0.
Relativo
StringIsAlpha, StringIsASCII, StringIsDigit,
StringIsXDigit, StringUpper, StringLower

StringIsLower,

StringIsSpace,

StringIsUpper,

Ejemplo
$x = "Esta es una frase con espacios en blanco."
MsgBox(0,"StringIsAlNum devuelve:", StringIsAlNum($x))

StringIsAlpha
Revisa si una cadena contiene solamente caracteres alfabticos.

404

StringIsAlpha ("string")
Parmetros
cadena

La cadena a revisar.

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0 si la cadena contiene Caracteres no-alfabticos

Comentarios
Tenga presente que cualquier espacio en blanco causar que StringIsAlpha devuelva 0.
Relativo
StringIsAlNum, StringIsASCII, StringIsDigit, StringIsLower, StringIsSpace, StringIsUpper,
StringIsXDigit, StringUpper, StringLower
Ejemplo
$x = "Esta es una frase con espacios en blanco."
MsgBox(0,"StringIsAlpha devuelve:", StringIsAlpha($x))

StringIsASCII
Revisa si una cadena contiene solamente caracteres ASCII en el rango 0x00 - 0x7f (0 - 127).
StringIsASCII ( "cadena de texto" )
Parmetros
cadena

La cadena a revisar.

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0 si la cadena contiene caracteres extendidos de ASCII.

Comentarios
Ninguno.
Relativo
405

StringIsAlNum, StringIsAlpha, StringIsDigit, StringIsLower, StringIsSpace, StringIsUpper,


StringIsXDigit, StringUpper, StringLower
Ejemplo
$x = StringIsASCII("Esta es una frase.")
MsgBox(0,"StringIsASCII devuelve:", $x)

StringIsDigit
Revisa si una cadena contiene solamente caracteres de dgitos (0-9).
StringIsDigit ( "cadena de texto" )
Parmetros
cadena

La cadena a revisar.

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0 si la cadena contiene no-dgitos.

Comentarios
Ver ejemplos.
Relativo
StringIsAlNum, StringIsAlpha, StringIsASCII, StringIsLower, StringIsSpace, StringIsUpper,
StringIsXDigit, StringIsInt
Ejemplo
StringIsDigit("12333") ;devuelve 1
StringIsDigit("1.5") ;devuelve 0 debido al punto decimal
StringIsDigit("1 2 3") ;devuelve 0 debido al espacio en blanco
StringIsDigit("")
;devuelve 0

StringIsFloat
Revisa si una cadena es un nmero tipo punto flotante.

406

StringIsFloat ( "cadena de texto" )


Parmetros
cadena de
texto

La cadena o expresin a revisar.

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0 si no contiene el formato de punto flotante.

Comentarios
Una cadena es flotante si contiene como mnimo un dgito decimal y exactamente un punto; el
solamente hecho de otro carcter permitido es opcional, el signo ms o menos al empezar.
(StringIsFloat no acepta un caracter de coma como el punto decimal an si la configuracin
local de la computadora usa ese smbolo.) Si el parmetro no es una cadena de texto, su valor
es convertido a una cadena. Ver ejemplos.
Relativo
StringIsInt, IsFloat
Ejemplo
StringIsFloat("1.5") ;devuelve 1
StringIsFloat("7.") ;devuelve 1 desde que contiene una expresin decimal
StringIsFloat("-.0") ;devuelve 1
StringIsFloat("3/4") ;devuelve 0 desde que por la pleca en '3' y '4' no es un flotante
StringIsFloat("2") ; devuelve 0 desde que '2' es un entero, no un flotante
StringIsFloat(1.5) ;devuelve 1 desde que 1.5 convertido a cadena lo contiene.
StringIsFloat(1.0) ;devuelve 0 desde que 1.0 convertido a cadena no lo contiene.

StringFormat

Devuelve una cadena de texto con formato (similar a la funcin sprintf() de C )


StringFormat ( "control de formato", var1 [, ... var32] )
Parmetros
control de
formato

El formato y banderas para usar (ver Observaciones)

var1...var32

Hasta 32 variables que ser la salida de acuerdo al "control de formato".


407

Valor de Retorno
Devuelve la cadena de texto con formato de acuerdo a una "variable formato" definido en el
parmetro de "control de formato".
Comentarios
Para prevenir una sobrecarga de memoria temporal, cada "variable" es limitada a 65535
caracteres.
Caracteres de Escape pueden contener en el "control de formato" tales como \n (@LF), \r
(@CR), \t (@TAB]. As que si usted desea tener un "\" usted necesita usar \\, lo mismo para
"%" %%.
"formato

de

variable"

es;

%[banderas]

Especificacin

[ancho]
de

[.precisin]

tipo
ancho

El segundo campo opcional de la especificacin de formato es el ancho. El argumento de ancho


es un decimal positivo entero controlando el nmero mnimo de caracteres impresos. Si el
nmero de caracteres en la salida es menor que el ancho especificado, espacios en blanco son
aadidos a la izquierda o la derecha de los valores dependiendo si la bandera (para alinear
a la izquierda) es especificado hasta que el ancho mnimo es alcanzado. Si el ancho es
prefijado con 0, los ceros son aadidos hasta que el ancho mnimos es alcanzado (no es til
para nmeros alineados a la izquierda).
La especificacin del ancho nunca causa un valor para ser truncado. Si el nmero de caracteres
en la salida es mayor que el ancho especificado, o si el ancho no es dado, todos los caracteres
del valor son impresos (sujeto a la precisin de la especificacin).
Tipo de especificacin
Tipo

Tipo de Formato de
Variable salida

d, i

Entero

Entero
decimal con
signo.

Entero

Entero octal
sin signo.

Entero

Entero
decimal sin
signo.

Entero

Entero
hexadecimal
sin signo,
usando
"abcdef".

Entero

Entero
hexadecimal
408

sin signo,
usando
"ABCDEF".
e

Flotante

Valor con signo teniendo la forma [ - ][Link] e [sign]ddd donde d


es un simple dgito decimal, dddd es uno o ms dgitos decimales,
ddd es exactamente tres dgitos decimales, y sign es + o -.

Flotante

Idntico al formato e excepto que E en lugar de e introduce el


exponente.

Flotante

Valor con signo con la forma [ - ][Link], donde dddd es uno o


ms dgitos decimales. El nmero de dgitos antes del punto
decimal depende en la magnitud del nmero, y el nmero de
dgitos despus del punto decimal depende en la precisin
solicitada.

Flotante

Valor con signo impreso en formato f o e, lo que es ms compacto


por el valor dado y precisin. El formato e es usado solamente
cuando el exponente del valor es menos que -4 o mayor o igual
que el argumento de precisin. Ceros adelante son truncados, y el
punto decimal solamente si una o ms dgitos lo siguen.

Flotante

Idntico al formato g, excepto que E, en lugar de e, introduce el


exponente (donde es apropiado).

Cadena Cadena de
de texto texto.

Bandera de especificacin
Bandera Significado

Predeterminado

Alinea a la izquierda el resultado dentro del ancho del


Alineacin a la derecha.
campo dado.

Prefija la salida con un signo (+ o -) si el valor de la


salida es con un tipo de signo.

Si el ancho es prefijado con 0, los ceros son agregados


hasta que el ancho mnimo es alcanzado. Si 0 y Sin rellenos.
aparecen, el 0 es ignorado. Si 0 es especificado con un
formato entero (i, u, x, X, o, d) el 0 es ignorado.

Blank

Prefija el valor de salida con un espacio en blanco si


est con signo y es positivo; el espacio en blanco es
No aparece en blanco.
ignorado su ambos el espacio y la bandera + aparece.

Cuando es usado con el formato o, x, o X, la bandera


# prefija cualquier salida no-cero con 0, 0x, o 0X,
respectivamente.

Cuando es usado con el formato e, E, o f, la bandera # Punto decimal aparece


fuerza la salida a que contenga un punto decimal en solamente si dgitos lo
todos los casos.
siguen.

Cuando es usado con el formato g o G , la bandera #

Signo aparece solamente


para valores con signo
negativo (-).

No aparece en blanco.

Punto decimal aparece


409

fuerza el valor de salida a que contenga un punto


solamente si dgitos los
decimal en todos los casos y previene el truncamiento siguen. Ceros antes son
de ceros antecediendo.
truncados.
Ignorado cuando usado c, d, i, u, o s.
Especificacin de Precisin
El tercer campo opcional de la especificacin de formato es la especificacin de la precisin.
Especifica un entero decimal positivo, precedido de un punto (.), que especifica el nmero de
caracteres para ser impresos, el nmero de posicin decimal, o el nmero de dgitos
significantes (ver tabla de abajo). A diferencia de la especificacin del ancho, la especificacin
de la precisin puede causar tambin truncamiento del valor de salida o redondeo de un valor
de punto flotante. Si la precisin es especificada como 0 y el valor para ser convertido es 0, el
resultado no es la salida de caracteres, como es mostrado abajo:
StringFormat( "%.0d", 0 ); /* No devuelve caracteres */
Cmo los valores de precisin afectan el tipo
Tipo

Significado

Predeterminado

d, i,
u, o,
x, X

La precisin especifica el nmero mnimo de


dgitos para ser impresos. Si el nmero de dgitos
en el argumento es menor que la precisin, el
valor de salida es rellenada con ceros a la
izquierda. El valor no es truncado cuando el
nmero de dgitos excede la precisin.

Precisin determinada es 1.

e, E

La precisin especifica el nmero de dgitos para


ser impresos despus del punto decimal. El ltimo
dgito impreso es redondeado.

Precisin predeterminada es 6; si
la precisin es 0 o el punto (.)
aparece sin un nmero despus,
no se imprimir el punto decimal.

El valor de precisin especifica el nmero de


dgitos despus del punto decimal. Si un punto
decimal aparece, como mnimo un dgito aparece
antes. El valor es redondeado al nmero apropiado
de dgitos.

La precisin predeterminada es 6;
si la precisin es 0, o si el punto (.)
aparece sin nmeros despus de
l, el punto decimal no ser
impreso.

g, G

La precisin especifica el nmero mximo de


dgitos a ser impresos.

Seis significantes dgitos son


impresos, con cualquier
antecedente de ceros son
truncados.

La precisin especifica el nmero mximo de


Los caracteres son impresos hasta
caracteres a ser impresos. Caracteres en exceso de que un caracter nulo es
precisin no son impresos.
encontrado.

Relativo
Ninguno.
Ejemplo
410

$n = 43951789;
$u = -43951789;
; note que el doble %%, imprime el caracter '%' literalmente
printf("%%d = '%d'\n", $n);
'43951789'
representacin de un entero estndar
printf("%%e = '%e'\n", $n);
'4.395179e+007' notacin cientfica
printf("%%u = '%u'\n", $n);
'43951789'
entero sin signo representacin de un
positivo entero
printf("%%u <0 = '%u'\n", $u);
'4251015507'
entero sin signo representacin de un
negativo entero
printf("%%f = '%f'\n", $n);
'43951789.000000' representacin de un punto flotante
printf("%%.2f = '%.2f'\n", $n);
'43951789.00'
representacin de un punto flotante con 2
dgitos despus del punto decimal
printf("%%o = '%o'\n", $n);
'247523255'
representacin octal
printf("%%s = '%s'\n", $n);
'43951789'
representacin de cadena
printf("%%x = '%x'\n", $n);
'29ea6ad'
representacin hexadecimal (minsculas)
printf("%%X = '%X'\n", $n);
'29EA6AD'
representacin hexadecimal (maysculas)
printf("%%+d = '%+d'\n", $n);
printf("%%+d <0= '%+d'\n", $u);

'+43951789'
'-43951789'

especificador en un signo positivo


especificador en un signo negativo

$s = 'mono';
$t = 'muchos monos';
printf("%%s = [%s]\n", $s);
[mono]
salida estndar de cadena
printf("%%10s = [%10s]\n", $s); [ mono] justificacin a la derecha con espacios
printf("%%-10s = [%-10s]\n", $s); [mono ] justificacin a la izquierda con espacios
printf("%%010s = [%010s]\n", $s); [0000mono] cero-relleno trabaja en cadenas tambin
printf("%%10.10s = [%10.10s]\n", $t); [muchos mono]
justificacin a la izquierda pero con
un corte de 10 caracteres
printf("%04d-%02d-%02d\n", 2008, 4, 1);
Func Printf($format, $var1, $var2=-1, $var3=-1)
If $var2=-1 Then
ConsoleWrite(StringFormat($format, $var1))
Else
ConsoleWrite(StringFormat($format, $var1, $var2, $var3))
EndIf
EndFunc

StringFromASCIIArray
Convierte un arreglo de cdigos ASCII a una cadena.
StringFromASCIIArray( arreglo, [ inicio [, final [, codificacin ] ] ] )
Parmetros

411

arreglo

El arreglo de cdigos ASCII para convertir a caracteres.

inicio

[optional] El ndice de base 0 desde donde iniciar el procesamiento (Por defecto:


0)

final

[optional] El ndice de base 0 hasta donde se procesar (por defecto:


UBound($array) - 1).

codificacin

[optional] El arreglo contendr valores en los siguientes cojuntos de caracteres:


0 - UTF-16 (por defecto)
1 - ANSI
2 - UTF-8

Valor de Retorno

1 - La entrada no es un arreglo.
2 - ndice de incio no vlido.
Comentarios
La cadena devuelta puede contener caracteres Chr(0) embebidos pero estos no sern
aplicados sobre la misma. Muchas funciones de cadena se detendrn ante al primer Chr(0)
encontrado, sin embargo, si es necesario el acceso al contenido completo de la cadena
entonces la funcin StringToBinary() puede convertirla en una cadena binaria preservando
todos los datos.
Si usted intenta crear un arreglo manualmente (En oposicin a usar una rreglo devuelto con
StringToASCIIArray()) entonces los cdigos en el arreglos deben ser espesificados en UNICODE.
Relativo
StringToASCIIArray
Ejemplo
#include <Array.au3> ; Para_ArrayDisplay()
; Convierte una cadena en un areglo.
Local $a = StringToASCIIArray("abc")
; Muestra el arreglo para ver los valores de cdigos ASCII
;de cada caracter.
_ArrayDisplay($a)
; Ahora convirte el arreglo en una cadena.
412

Local $s = StringFromASCIIArray($a)
; Muestra la cadena para ver si concuerda con la cadena original.
MsgBox(0, "", $s)

StringIsInt
Revisa si una cadena es un entero.
StringIsInt ( "cadena de texto" )
Parmetros
cadena

La cadena a revisar.

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0 si la cadena no puede ser un entero.

Comentarios
StringIsInt tambin devuelve 1 para expresiones que no son cadenas; sin embargo, StringIsInt
devuelve 0 para expresiones hexadecimales tales como "4ff0". La puntuacin permitida slo es
una ms o un menos en el principio de la cadena.
Relativo
StringIsFloat, StringIsDigit, IsInt
Ejemplo
StringIsInt("+42") ;devuelve 1
StringIsInt("-00") ;devuelve 1
StringIsInt("1.0") ;devuelve 0 debido al punto decimal
StringIsInt(1.0) ;devuelve 1 debido a la conversin nmero-cadena
StringIsInt("1+2") ;devuelve 0 debido al signo mas

StringIsLower
Revisa si una cadena contiene solamente letras minsculas.
StringIsLower ( "cadena de texto" )
413

Parmetros
cadena

La cadena a revisar.

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0 si la cadena contiene caracteres que no sean letras minsculas.

Comentarios
Note que dgitos/puntuacin/espacios en blanco causarn que StringIsLower devuelva 0.
Relativo
StringIsAlNum, StringIsAlpha, StringIsASCII, StringIsDigit, StringIsSpace, StringIsUpper,
StringIsXDigit, StringUpper, StringLower

Ejemplo
If StringIsLower("abcfoo") Then
MsgBox(0, "Resultado:", "Cadena contenida slo en letras minsculas")
EndIf

StringIsSpace
Revisa si una cadena contiene solamente caracteres de espacios en blanco.
StringIsSpace ("cadena de texto")
Parmetros
cadena

La cadena a revisar.

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0 si cadena contiene caracteres que no son espacios en blanco.

414

Comentarios
Espacios en blanco incluye Chr(9) por Chr(13) que son HorizontalTab, LineFeed, VerticalTab,
FormFeed, y CarriageReturn.
Espacios en blanco tambin incluye el espacio estndar ( Chr(32) ).
Relativo
StringIsAlNum, StringIsAlpha, StringIsASCII, StringIsDigit, StringIsLower, StringIsUpper,
StringIsXDigit, StringUpper, StringLower, StringStripCR, StringStripWS
Ejemplo
$x = " " & @LF & Chr(11) & @TAB & " " & @CRLF
If StringIsSpace($x) Then
MsgBox(0,"", "Cadena contiene caracteres con espacios en blanco.")
EndIf

StringIsUpper
Revisa si una cadena contiene solamente letras maysculas.
StringIsUpper ( "cadena de texto" )
Parmetros
cadena

La cadena a revisar.

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0 si cadena contiene letras que no son maysculas.

Comentarios
Note que dgitos/puntuacin/espacios en blanco causarn que StringIsUpper devuelva 0.
Relativo
StringIsAlNum, StringIsAlpha, StringIsASCII, StringIsDigit, StringIsLower, StringIsSpace,
StringIsXDigit, StringUpper, StringLower
Ejemplo
If StringIsUpper("ABCDF") Then
415

MsgBox(4096, "", "Cadena contiene slo letras MAYUSCULAS")


EndIf

StringIsXDigit
Revisa si una cadena contiene solamente dgitos (0-9) y caracteres hexadecimales (A-F)
StringIsXDigit ( "cadena de texto" )
Parmetros
cadena

La cadena a revisar.

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0 si cadena contiene caracteres no-hexadecimales.

Comentarios
Caracteres vlidos son 0123456789abcdefABCDEF Note que una cadena conteniendo espacios
en blanco o el prefijo "0x" causar StringIsXDigit devuelva 0.
Relativo
StringIsAlNum, StringIsAlpha, StringIsASCII, StringIsDigit, StringIsLower, StringIsSpace,
StringIsUpper, StringUpper, StringLower
Ejemplo
StringIsXDigit("00FC") ;devuelve 1
StringIsXDigit("2570") ;devuelve 1
StringIsXDigit("a cafe") ;devuelve 0 debido al espacio
StringIsXDigit(1 + 2.0) ;devuelve 1 debido a la conversin de nmero-cadena

StringLeft
Devuelve un nmero de caracteres a partir del lado izquierdo de una cadena de texto.
StringLeft ( "cadena de texto", contador )
Parmetros
416

cadena

La cadena a evaluar.

contador

El nmero de caracteres a extraer.

Valor de Retorno
Devuelve una cadena conteniendo la cantidad de caracteres especificada a partir de la
izquierda de la cadena.
Comentarios
Si contador excede la longitud de la cadena, la cadena entera es devuelta.
Si contador es negativa, una cadena vaca es devuelta.
Relativo
StringInStr, StringLen, StringLower, StringMid, StringRight, StringTrimLeft, StringTrimRight,
StringUpper, StringCompare, StringReplace, StringSplit
Ejemplo
$result = StringLeft("Soy una cadena", 3)
MsgBox(0, "3 caracteres de la izquierda son:", $result)

StringLen
Devuelve el nmero de caracteres en una cadena de texto.
StringLen ("cadena de texto")
Parmetros
cadena

La cadena a evaluar.

Valor de Retorno
Devuelve la longitud de la cadena de texto.
Comentarios
Una expresin numrica es automticamente evaluada y convertida a cadena.
Relativo
StringInStr, StringLeft, StringLower, StringMid, StringRight, StringTrimLeft, StringTrimRight,
StringUpper, StringCompare, StringReplace, StringSplit

417

Ejemplo
$len = StringLen("Cun largo soy?")
MsgBox(0, "Largo de cadena es:", $len

StringLower
Convierte a cadena a minsculas.
StringLower ( "cadena de texto" )
Parmetros
string

La cadena para convertir.

Valor de Retorno
Devuelve la cadena convertida a minsculas.
Comentarios
Ninguno.
Relativo
StringIsLower, StringIsUpper, StringInStr, StringLeft, StringLen, StringMid, StringRight,
StringTrimLeft, StringTrimRight, StringUpper, StringCompare, StringIsAlNum, StringIsAlpha,
StringIsASCII, StringIsSpace, StringIsXDigit, StringReplace, StringSplit
Ejemplo
$var = StringLower("Soy una cadena")
MsgBox(0, "Cadena convertida a minscula es:", $var

StringMid
Extrae un nmero de caracteres de una cadena de texto.
StringMid ( "cadena de texto", iniciar [, contador] )
Parmetros
cadena

La cadena a evaluar.

418

inicio

La posicin de carcter a iniciar. (1 = primer caracter)

contador

[opcional] El nmero de caracteres a extraer. Por defecto todo el resto de la


cadena.

Valor de Retorno
Devuelve la cadena extrada.
Comentarios
Si inicio est fuera-de-los-lmites, una cadena vaca es devuelta. Si la posicin de inicio es vlida
pero el contador est fuera de los lmites, todo el resto ser devuelto.
Relativo
StringInStr, StringLeft, StringLen, StringLower, StringRight, StringTrimLeft, StringTrimRight,
StringUpper, StringCompare, StringReplace, StringSplit
Ejemplo
$var = StringMid("Soy una cadena de texto", 3, 2)
MsgBox(0, "2 caracteres extrados de la posicin 3 son:", $var)

StringRegExp
Revisa si una cadena encaja en un patrn dado de expresin regular.
StringRegExp ( "prueba", "patrn" [, flag ] [, compensar ] ] )
Parmetros
prueba

La cadena a revisar.

patrn

La expresin regular a comparar.

flag

[opcional] Un nmero para indicar cmo la funcin se comportar. Ver debajo


para detalles. El predefinido es 0.

compensar

[opcional] La posicin de cadena a iniciar la coincidencia (inicia en 1) El


predefinido es 1.

419

Bandera

Valores

Devuelve 1 (coincide) o 0 (no coincide)

Devuelve un arreglo de coincidencias.

Devuelve un arreglo de coincidencias incluyendo la coincidencia completa (estilo


Perl / PHP)

Devuelve un arreglo de coincidencias globales.

Devuelve un arreglo de arreglos conteniendo coincidencias globales incluyendo


la coincidencia completa (estilo Perl / PHP)

Valor de Retorno
Bandera = 0 :
@Error

Significado

Patrn malo. @Extended = compensacin de error en el patrn.

Bandera = 1 o 2 :
@Error

Significado

Arreglo es vlido. Revisa @Extended para la prxima compensacin

Arreglo no es vlido. No hay coincidencias.

Patrn malo, el arreglo no es vlido. @Extended = compensacin de error en


patrn.

Bandera = 3 o 4 :
@Error

Significado

Arreglo es vlido.

Arreglo no es vlido. No hay coincidencias.

420

Patrn malo, el arreglo no es vlido. @Extended = compensacin de error en


patrn.

Comentarios
El parmetro flag puede ser uno de 5 valores (0 hasta 4). 0 asigna true (1) o false (0) como si el
patrn hubiera sido encontrado o no. 1 y 2 busca la primera coincidencia y devuelve este en un
arreglo. 3 y 4 busca mltiples impactos y rellena el arreglo con todo el texto encontrado. 2 y 4
incluye el texto completo en el primer ndice del arreglo, no solamente captura los grupos,
todo lo cual usted obtiene con los flag 1 y 3.
La notacin de expresiones regulares son una manera de especificar un patrn para las
cadenas que se pueden buscar. Las expresiones regulares son cadenas de caracteres en
caracteres de texto plano que indicar qu texto debe existir en la cadena de destino, y algunos
caracteres que dan un significado especial para indicar lo que se permite la variabilidad en la
cadena objetivo. Expresiones regulares en AutoIt son normalmente entre maysculas y
minsculas.
Las expresiones regulares se construyen de uno o ms de las siguientes expresiones regulares
sencillas especificadoras. Si el caracter no est en la siguiente tabla, entonces slo coincidir
con s mismo.
Repeticin de caracteres (*, +,?, {...}) Tratar de igualar el mayor conjunto posible, que permite
que los siguientes caracteres para igualar y, salvo que ir inmediatamente seguido de un signo
y, a continuacin, encontrar el modelo ms pequeo que permite los siguientes caracteres
para igualar tambin.
Grupos anidados son permitidos, pero tenga en cuenta que todos los grupos, excepto la no
captura de los grupos, asignar al arreglo devuelto, con los grupos exteriores despus de la
asignacin de grupos internos.
Descripcin completa se puede encontrar aqu
([Link]
Precaucin: Las expresiones regulares malas puede producir un bucle infinito, acaparando casi
la CPU y pueden producir un error grave.
Caracteres de Coincidencia

[ ... ]

Coincide cualquier carcter en el set. Eje. [aeiou] coincide con cualquier vocal
minscula. Un contiguo establece que puede ser definido usando un guin entre
el iniciando y el final de caracteres. Eje. [a-z] coincide con cualquier caracter
minscula. Para incluir un guin (-) en un set, usarlo como el primer o el ltimo
de carcter del set. Para inclur un corchete cerrado en un set, usarlo como el
primer carcter de el set. Eje. [][] tampoco coincidir [ o ]. Note que caracteres
421

especiales no retiene sus significados especiales dentro un set, con la excepcin


de \\, \^, \-,\[ y \] coincide con el caracter de escape dentro un set.

[^ ... ]

Coincide cualquier carcter no en el set. Eje. [^0-9] coincide con cualquier nodgito. Para incluir un caret (^) en un set, ponerlo despus de empezar de
establecer o escaparlo (\^).

[:class:]

Coincide un carcter en la clase de caracteres. Clases vlidas son: alpha (algn


caracter alfabtico), alnum (algn caracter alfanumrico), lower (alguna letra
minscula), upper (alguna letra mayscula), dgito (algn dgito decimal 0-9),
xdigit (algn dgito hexadecimal, 0-9, A-F, a-f), space (algn espacio en blanco),
blank (slo un espacio o tabulador), print (algn caracter imprimible), graph
(algn caracter imprimible excepto espacios), cntrl (algn caracter de control
[ascii 127 o <32]) o punct (algn caracter de puntuacin). As [0-9] es
equivalente a [[:digit:]].

[^:class:]

Coincide con cualquier carcter no en la clase, pero solamente si el primer


caracter.

( ... )

Grupo. Los elementos en el grupo son tratados en orden y pueden ser repetidos
juntos. Eje. (ab)+ coincidir "ab" o "abab", pero no "aba". Un grupo tambin
guardar el texto coincide para usar en copia de las referencias y en el arreglo
devuelto por la funcin, dependiendo en el valor de bandera.

(?i)

Bandera de caso-insensitivo. Este no opera como un grupo. Dice al motor de


expresin regular para hacer un caso-insensitivo coincidiendo de ese punto.

(?-i)

(por defecto) Bandera de caso-sensitivo. Este no opera como un grupo. Dice al


motor de expresin regular para hacer un caso-sensitivo coincidiendo de ese
punto.
Grupo de caso-sensitivo. Se comporta simplemente como un grupo normal,
pero realiza coincidencias de caso-sensitivo dentro del grupo. Primariamente
para usar despus bandera (-i) o dentro de un grupo de caso-insensitivo.

(?: ... )

Grupo no-captador. Se comporta simplemente como un grupo normal, pero no


guarda los caracteres coincidentes en el arreglo tampoco puede el texto
coincidido ser usado para volver a referenciar.

(?i: ... )

Grupo caso-insensitivo no-captador. Se comporta simplemente como un grupo


no-captador, pero realiza caso-insensitivo coincide dentro del grupo.

(?-i: ... )

Grupo caso-sensitivo no-captador. Se comporta simplemente como un grupo


no-captador, pero realiza caso-sensitivo coincide dentro del grupo.

422

(?m)

^ y $ coincide con nuevas lneas dentro de datos.

(?s)

. coincide cualquier incluyendo una nueva lnea. (por defecto "." no coincide con
una nueva lnea)

(?x)

Ignora espacios en blanco y # comentarios.

(?U)

Invertir codicia de los cuantificadores.

Coincide con cualquier carcter simple (excepto nueva lnea).

O. La expresin en un lado o el otro puede ser coincidido.

Escape un caracter especial (tiene coincidencia con el caracter actual) o


introduce un caracter especial (ver ms abajo).

\\

Coincide con una barra actual (\).

\a

Alarma, que es, el caracter BEL (chr(7)).

\A

Coincide solamente empezando de cadena.

\b

Coincide a una palabra.

\B

Coincide cuando no es una palabra.

\c

Coincide con un caracter de control, basado en el prximo caracter. Por


ejemplo, \cM coincide con ctrl-M.

\d

Coincide con cualquier dgito (0-9).

\D

Coincide con cualquier no-dgito.

\e

Coincide con un caracter de escape (chr(27)).

\E

caso la modificacin final.

\f

Coincide con un caracter formfeed (chr(12)).

\h

cualquier espacio horizontal.

\H

cualquier carcter que no es un espacio horizontal.

423

\n

Coincide una lnea de alimentacin (@LF, chr(10)).

\Q

patrn de cita (desactivado) metacaracteres hasta \E.

\r

Coincide un retorno de carro (@CR, chr(13)).

\s

Coincide cualquier espacio en blanco: Chr(9) a travs de Chr(13) que son


Tabulador Horizontal, Line Feed, Tabulador Vertical, Form Feed, y Retorno de
carro, y el espacio estndar ( Chr(32) ).

\S

Coincide con cualquier caracter que no es espacio.

\t

Coincide con un caracter de tabulador (chr(9)).

\v

cualquier espacio vertical en blanco.

\V

cualquier carcter que no es un espacio vertical espacio en blanco.

\w

Coincide con cualquier caracter "palabra": a-z, A-Z, 0-9 o lnea de subrayar (_).

\W

Coincide con cualquier caracter que no es palabra.

\###

Coincide con el caracter ascii cuyo cdigo es dado o copias de referencia. Puede
ser como mximo 3 dgitos octales.
Coincide con copias de referencia si son encontradas. Coincide con el primer
grupo nmero dado exactamente. Por ejemplo, ([:alpha:])\1 coincidir una letra
doble.

\x##

Coincide el caracter ascii cuyo cdigo es dado en hexadecimal. Puede ser como
mximo 2 dgitos.

\z

Coincide solamente al final de la cadena.

\Z

Coincide solamente al final de la cadena, o antes de una nueva lnea al final.

Caracteres de repeticin
{x}

Repite el caracter anterior, en un set o un grupo exactamente x veces.

{x,}

Repite el caracter anterior, en un set o un grupo como mnimo x veces.

{0,x}

Repite el caracter anterior, en un set o un grupo en la mayora de x veces.

424

{x, y}

Repite el caracter anterior, en un set o un grupo entre x y y veces, inclusive.

Repite el caracter anterior, en un set o un grupo 0 o ms veces. Equivalente a


{0,}

Repite el caracter anterior, en un set o un grupo 1 o ms veces. Equivalente a


{1,}

El caracter anterior, en un set o un grupo puede o puede que no aparezca.


Equivalente a {0, 1}

? (despus
de que un
caracter se
repita)

Busca la ms pequeo coincidencia en lugar de la ms grande.

Clases de Caracter
[:alnum:]

letras y dgitos

[:alpha:]

letras

[:ascii:]

cdigos caracter 0 - 127

[:blank:]

espacio o tabulador solamente

[:cntrl:]

caracter de control

[:digit:]

dgitos decimales (igual como \d)

[:graph:]

caracteres de impresin, excluyendo espacio

[:lower:]

letras minsculas

[:print:]

caracteres de impresin, incluyendo espacio

[:punct:]

caracteres de impresin, excluyendo letras y dgitos

[:space:]

espacio en blanco (no es muy parecido como \s, incluye VT: chr(11) )

[:upper:]

letras maysculas

425

[:word:]

caracteres "palabra" (igual como \w)

[:xdigit:]

dgitos hexadecimales

Relativo
StringInStr, StringRegExpReplace
Ejemplo
;Opcin 1, usando offset
$nOffset = 1
While 1
$array = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>',
'<(?i)test>(.*?)</(?i)test>', 1, $nOffset)
If @error = 0 Then
$nOffset = @extended
Else
ExitLoop
EndIf
for $i = 0 to UBound($array) - 1
msgbox(0, "Prueba RegExp con Opcin 1 - " & $i, $array[$i])
Next
WEnd

;Opcin 2, devolucin simple, estilo php/preg_match()


$array = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>',
'<(?i)test>(.*?)</(?i)test>', 2)
for $i = 0 to UBound($array) - 1
msgbox(0, "Prueba RegExp con Opcin 2 - " & $i, $array[$i])
Next

;Opcin 3, devolucin global, estilo AutoIt


$array = StringRegExp('<test>a</test> <test>b</test> <test>c</Test>',
'<(?i)test>(.*?)</(?i)test>', 3)
for $i = 0 to UBound($array) - 1
msgbox(0, "Prueba RegExp con Opcin 3 - " & $i, $array[$i])
Next

;Opcin 4, devolucin simple, estilo php/preg_match_all()


$array = StringRegExp('F1oF2oF3o', '(F.o)*?', 4)
for $i = 0 to UBound($array) - 1
$match = $array[$i]
426

for $j = 0 to UBound($match) - 1
msgbox(0, "Prueba cRegExp con Opcin 4 - " & $i & ',' & $j, $match[$j])
Next
Next

StringRegExpReplace
Reemplaza texto en un cadena basado en un expresin regular.
StringRegExpReemplaza ( "prueba", "patrn", "reemplazo", [ contador ] )
Parmetros
prueba

La cadena a revisar.

patrn

La expresin regular a comparar. Ver StringRegExp para un definicin de


patrones.

reemplazo

El texto a reemplazar en la expresin regular coincidiendo. Para insertar el


grupo de texto coincidente, \0 - \9 (o $0 - $9) puede ser usado como referencia.

contador

[opcional] El nmero de veces a ejecutar el reemplazo en la cadena. El


predefinido es 0. Use 0 para reemplazo global.

Valor de Retorno
@Error

Significado

Ejecutado apropiadamente. Revisa @Extended por el nmero de reemplazos


realizados.

Patrn invlido. @Extended = compensacin de error en patrn.

Comentarios
Para separar referencias previas (reemplazar) desde nmeros actuales, agrpalos con
corchetes, ejemplo: "${1}5".
Relativo
StringRegExp
Ejemplo
Test1()
427

Test2()
; Este ejemplo demuestra un reemplazo bsico. Este reemplazar las vocales a,e,i,o,u por el
caracter @
Func Test1()
Local $sInput = "El murcilago revoloteaba sobre el agua"
Local $sOutput = StringRegExpReplace($sInput, "[aeiou]", "@")
Display($sInput, $sOutput)
EndFunc ; Test1()
; El siguiente ejemplo demuestra el uso de referencias hacia atrs para cambiar la fecha.
; desde MM/DD/YYYY para [Link]
Func Test2()
Local $sInput = 'algn texto1 12/31/2009 01:02:03 algn texto2' & @CRLF & _
'algn texto3 02/28/2009 11:22:33 some text4'
Local $sOutput = StringRegExpReplace($sInput, '(\d{2})/(\d{2})/(\d{4})', ' $2.$1.$3 ')
Display($sInput, $sOutput)
EndFunc ; Test2()
Func Display($sInput, $sOutput)
; Formatea la salida
Local $sMsg = StringFormat("Input:\t%s\n\nOutput:\t%s", $sInput, $sOutput)
MsgBox(0, "Resultado", $sMsg)
EndFunc ; Display()

StringReplace
Reemplaza subcadenas en una cadena.
StringReplace("cadena de texto", "cadenaBuscada/inicio", "cadenaReemplazo" [, ocurrencia
[, caso_sensitivo]])
Parmetros
cadena

La cadena a evaluar.

"cadenaBuscada/inicio" La subcadena a buscar o la posicin de carcter a iniciar el reemplazo.


cadenaReemplazo

La cadena de reemplazo.

ocurrencia

[opcional] El nmero de veces a reemplazar de cadenaBuscada. Use


un valor negativo para reemplazar desde el lado derecho.
0 = todas las cadenas buscadas sern reemplazadas (por defecto)

caso_sensitivo

[opcional] Bandera para indicar si las operaciones deberan ser caso


428

sensitivo.
0 = no sea caso sensitivo, usando el user's locale (por defecto)
1 = caso sensitivo
2 = no sea caso sensitivo, usando una comparacin bsico/rpido

Valor de Retorno
Devuelve la nueva cadena, el nmero de reemplazos realizados son guardados en @extended.
Comentarios
Por defecto si ocurrencia es positiva la bsqueda/reemplazo es ejecutada de derecha a
izquierda. De esta forma, StringReplace("aaa", "aa", "bb") retorna "bba"
Si el mtodo de inicio es usado, la ocurrencia y parmetro de casosensitivo son ignorados. Si la
cadenaReemplazo no puede ser guardada una cadena vaca ser devuelta y @error es
establecido a 1.
Relativo
StringLeft, StringLen, StringLower, StringMid, StringRight, StringTrimLeft, StringTrimRight,
StringUpper, StringStripWS, StringAddCR
Ejemplo
$text = StringReplace("esta es una lnea de texto", " ", "-")
$numreplacements = @extended
MsgBox(0, "Nueva cadena de texto es", $text)
MsgBox(0, "El nmero de reemplazos realizados fu de", $numreplacements)

StringRight
Devuelve un nmero de caracteres del lado izquierdo de una cadena.
StringRight ( "cadena de texto", contador )
Parmetros
cadena

La cadena a evaluar.

contador

El nmero de caracteres a obtener.

Valor de Retorno
Devuelve una cadena conteniendo segn el contador de caracteres a la derecha de la cadena.
429

Comentarios
Si el contador excede una longitud de cadena, la cadena entera es devuelta.
Si el contador es negativo, una cadena vaca es devuelta.
Relativo
StringInStr, StringLeft, StringLen, StringLower, StringMid, StringTrimLeft, StringTrimRight,
StringUpper, StringCompare, StringReplace, StringSplit
Ejemplo
$var = StringRight("Soy una cadena", 3)
MsgBox(0, "3 caracteres ms a la derecha son:", $var)

StringSplit
Divide una cadena en varias partes de acuerdo a un delimitador dado.
StringSplit ("cadena de texto", "delimitador" [, flag ])
Parmetros
cadena

La cadena a evaluar.

delimitador

Uno o ms caracteres para usar como delimitador (caso sensitivo)

flag

Cambia como las cadenas son separas, sume valores mltiples de flags si es
requerido:
flag = 0 (por defecto), cada caracter en la cadena del delimitador marcar
donde para dividir la cadena.
flag = 1, el demilitador completo se usar para separar las cadenas.
flag = 2, Deshabilita el retorno de la cantidad de partes en el primer ndice del
arreglo - esto construye un arreglo de ndice base cero (debe usar UBound()
para obtener el tamao del arreglo en este caso)

Valor de Retorno
Devuelve un arreglo, el primer elemento ($arreglo[0]) contiene el nmero de cadenas
devueltas, los elementos restantes ($arreglo[1], $arreglo[2], etc.) contiene las cadenas
delimitadas. Si flag = 2 entoces no se devuelve la cantidad en el primer ndice del arreglo.
Si no hay delimitadores encontrados, @error es establecido a 1, el contador es 1 ($arreglo[0])
y la cadena completa ser devuelta ($arreglo[1]).
Comentarios
430

Si usted usa una cadena vaca "" para los delimitadores, cada carcter ser devuelto como un
elemento.
Si el delimitador que usted desea usar es una subcadena en lugar de caracter individual, ver el
ejemplo ms abajo.
StringSplit es muy til como una alternativa a StringInStr y como un medio para crear un
arreglo.
Tenga cuidado en que si usted usa el macro @CRLF usted est referenciando a 2 caracteres, as
que usted generar lneas en blanco extra.
Relativo
StringInStr, StringLeft, StringLen, StringLower, StringMid, StringRight, StringTrimLeft,
StringTrimRight, StringUpper
Ejemplo
$days = StringSplit("Sun,Mon,Tue,Wed,Thu,Fri,Sat", ",")
;$days[1] contiene "Sun" ... $days[7] contiene "Sat"
$text = "Esta\nlnea\ncontiene\nquiebres de lnea estilo-C."
$array = StringSplit($text, '\n', 1)

StringStripCR
Remueve todos los valor de retorno de carro (Chr(13)) de una cadena.
StringStripCR ("cadena de texto")
Parmetros
cadena

La cadena a convertir.

Valor de Retorno
Devuelve la cadena con todas las instancias del @CR carcter (Chr(13)) removido.
Comentarios
Ninguno.
Relativo
StringAddCR, StringStripWS, StringIsSpace

431

Ejemplo
$result = StringStripCR("Soy una cadena" & Chr(13) & Chr(10))
MsgBox(0, "Todos los caracteres de CR cortados son:", $result)

StringStripWS
Recorta los espacios en blanco de una cadena.
StringStripWS ("cadena de texto", flag)
Parmetros
cadena

La cadena a recortar.

flag

Bandera para indicar el tipo de recortes que debera ser realizado (agregue las
banderas juntos para operaciones mltiples):
1 = recorta los espacio en blanco del inicio
2 = recorta espacio en blanco del final
4 = recorta dobles (o ms) espacios entre palabras
8 = recorta todos los espacios (sobrescribe todas los dems flag)

Valor de Retorno
Devuelve la nueva cadena recortadas del espacio buscado.

Comentarios
Espacios en blanco incluye Chr(9) hasta Chr(13) que son TabHorizontal, LineFeed, TabVertical,
FormFeed, y Retorno de carro. Espacios en blanco tambin incluye la cadena nula ( Chr(0) ) y el
espacio estndar ( Chr(32) ).
Para recortar espacios simples entre palabras, use la funcin StringReplace.
Relativo
StringStripCR, StringIsSpace, StringReplace
Ejemplo
$text = StringStripWS(" esta es una lnea de texto ", 3)
MsgBox(0, "cortado de ambos extremos", $text)

432

StringToASCIIArray
Convierte una cadena a un arreglo conteniendo el cdigo ASCII de cada caracter.
StringToASCIIArray("cadena", [ inicio [, final [, codificacin ] ] ])
Parmetros
"cadena"

La cadena para convertir en un arreglo de cdigos ASCII.

inicio

[opcional] La posicin de base cero desde sonde inicial el procesamiento (por


defecto: 0).

final

[opcional] La posicin de base cero hasta donde se procesar (por defecto:


StringLen("cadena")).

codificacin

[opcional] El arreglo devuelto contendr caracteres en el siguiente cojunto de


caracteres:
0 - UTF-16 (por defecto)
1 - ANSI
2 - UTF-8

Valor de Retorno
Comentarios
La cadena puede contener Chr(0) embebidos. Estos pueden aparecer en el arreglo devuelto as
como al cuelquier dato pasado al mismo. El procesamiento solo se detiene cuando el final de la
cadena es alcanzado o el usuario espesifica el final.
El orden para convertir datos binarios para un arreglo usando esta funcin es convertir
primero a cadena usando la funcin BinaryToString().
Relativo
StringFromASCIIArray, BinaryToString
Ejemplo
#include <Array.au3> ; For _ArrayDisplay()
Local $a = StringToASCIIArray("abc")
_ArrayDisplay($a)

433

StringTrimLeft
Corta un nmero de caracteres del lado izquierdo de una cadena.
StringTrimLeft ( "cadena de texto", contador )
Parmetros
cadena

La cadena a evaluar.

contador

El nmero de caracteres a cortar.

Valor de Retorno
Devuelve una cadena cortada por la cantidad definida en contador a partir de la izquierda.

Comentarios
Si
contador
est
fuera
de
lmites,
una
cadena
vaca
es
devuelta.
StringTrimLeft($str, $n) es funcionalmente equivalente a StringRight($str, StringLen($str) - $n)

Relativo
StringInStr, StringLeft, StringLen, StringLower, StringMid, StringRight, StringTrimRight,
StringUpper, StringCompare, StringReplace, StringSplit

Ejemplo
$result = StringTrimLeft("Soy una cadena", 3)
MsgBox(0, "Cadena sin los 3 caracteres de la izquierda:", $result)

StringTrimRight
Corta un nmero de caracteres del lado derecho de una cadena.
StringTrimRight ( "cadena de texto", contador )
Parmetros
cadena

La cadena a evaluar.

434

contador

El nmero de caracteres a cortar.

Valor de Retorno
Devuelve el cadena cortada por contador de caracteres desde la derecha.
Comentarios
Si el contador est fuera de lmites, una cadena vaca ser devuelta.
StringTrimRight($str, $n) es funcionalmente equivalente a StringLeft($str, StringLen($str) - $n)
Relativo
StringInStr, StringLeft, StringLen, StringLower, StringMid, StringRight, StringTrimLeft,
StringUpper, StringCompare, StringReplace, StringSplit
Ejemplo
$result = StringTrimRight("Soy una cadena", 3)
MsgBox(0, "Cadena sin los 3 caracteres de la derecha:", $result)

StringUpper
Convierte una cadena a maysculas.
StringUpper ( "cadena de texto" )
Parmetros
cadena

La cadena a convertir.

Valor de Retorno
Devuelve la cadena convertida a maysculas.
Comentarios
Ninguno.
Relativo
StringIsLower, StringIsUpper, StringInStr, StringLeft, StringLen, StringLower, StringMid,
StringRight, StringTrimLeft, StringTrimRight, StringCompare, StringIsAlNum, StringIsAlpha,
StringIsASCII, StringIsSpace, StringIsXDigit, StringReplace, StringSplit
Ejemplo
435

$result = StringUpper("Soy una cadena de 4-palabras")


MsgBox(0, "Cadena convertida a maysculas:", $result)

436

Referencia de Funciones de Tiempo e Intervalo


A continuacin se muestra una lista completa de las funciones de Funciones de Tiempo e
Intervalo disponibles en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.

Funcin

Descripcin

Sleep

Pausa la ejecucin del script.

TimerInit

Devuelve una marcaDeTiempo (en milisegundos)

TimerDiff

Devuelve la diferencia en tiempo de una llamada previa a TimerInit().

Sleep
Pausa la ejecucin del script.
Sleep (retraso)
Parmetros
retraso

Cantidad de tiempo a pausar (en milisegundos)

Valor de Retorno
Ninguno.
Comentarios
Tiempo mximo a retrasar es de 2147483647 milisegundos (24 das)
Relativo
Ninguno.
Ejemplo
Sleep(5000) ; cinco segundos

437

TimerInit
Devuelve una marcaDeTiempo (en milisegundos)
TimerInit ( )
Parmetros
Ninguno.
Valor de Retorno
Devuelve un nmero de marcaDeTiempo (en milisegundos)
Comentarios
Ninguno.
Relativo
TimerDiff
Ejemplo
$begin = TimerInit()
sleep(3000)
$dif = TimerDiff($begin)
MsgBox(0,"Diferencia de Tiempo",$dif)

TimerDiff
Devuelve la diferencia en tiempo de una llamada previa a TimerInit().
TimerDiff ( marcaDeTiempo )
Parmetros
marcaDeTiempo marcaDeTiempo devuelta de una llamada previa a TimerInit()

Valor de Retorno
Devuelve la diferencia de tiempo (en milisegundos) de una llamada previa a TimerInit()
Comentarios
Ninguno.

438

Relativo
TimerInit
Ejemplo
$begin = TimerInit()
sleep(3000)
$dif = TimerDiff($begin)
MsgBox(0,"Diferencia de Tiempo",$dif)

439

Referencia de Funciones de Barra de Tareas


A continuacin se muestra una lista completa de las funciones de Funciones de Barra de Tareas
disponibles en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.

Funcin

Descripcin

TrayAutoPause
(Option)

Script pausa cuando se da clic en el icono de la barra de tareas.

TrayCreateItem

Crea un control de itemMenu para la bandeja.

TrayCreateMenu

Crea un control de menu para el menu de bandeja.

TrayItemDelete

Elimina un control de menu/item del men de bandeja.

TrayItemGetHandle

Devuelve el apuntador para un men de bandeja(item).

TrayItemGetState

Obtiene el estado actual de un control.

TrayItemGetText

Obtiene el itemtexto de un control de men/item de bandeja.

TrayItemSetOnEvent

Define un Funcin de usuario para ser invocada cuando un item del


cono de Autoit es clickeado.

TrayItemSetState

Establece el estado de un control menu/item en la bandeja del


sistema.

TrayItemSetText

Establece el texto del item en un control menu/item.

TrayGetMsg

Consulta cualquier evento ocurrido en un men de bandeja.

TrayIconDebug
(Option)

Si est activado muestra la lnea del script actual en la bandeja de


iconos (tray icono) en un tip, que ayuda a depurar.

TrayIconHide (Option) Oculta el icono de AutoIt, de la bandeja de conos (tray icono). Nota: El

440

icono inicialmente aparecer por ~750 milisegundos.


TrayMenuMode
(Option)

Extiende el comportamiento del icono de la bandeja/menu. Esto


puede ser una combinacin(adicin)de los siguientes valores.

TrayOnEventMode
(Option)

Habilita/deshabilita las notificaciones de las funciones de OnEvent


para el icono de la barra de tareas.

TraySetClick

Establece el modo de clic en el cono de la bandeja - con clics del


mouse se mostrar el men del icono.

TraySetIcon

Carga/establece un icono especificado en la bandeja.

TraySetOnEvent

Define una funcin de usuario que ser invocada cuando una accin
especial ocurre en la bandeja.

TraySetPauseIcon

Carga/establece un icono de pausa en la bandeja especificado.

TraySetState

Establece el estado del icono de la bandeja del sistema.

TraySetToolTip

(Re)Establece el texto tooltip para el icono de bandeja.

TrayTip

Muestra un globo tip desde el icono de AutoIt. (2000/XP solamente)

TrayAutoPause

Pausa el script cuando se da clic en el icono de la barra de tareas.


0 = no pausa
1 = pausa (por defecto). Si no existe DefaultMenu la pausa no ocurrir.

TrayCreateItem
Crea un control de itemMenu para la bandeja.
TrayCreateItem ( texto [, IDmenu [, entradaMenu [, itemRadioMenu]]] )
Parmetros
441

texto

El texto del control.

IDmenu

[opcional] Le permite crear un submenu en el menu referenciado. Si es igual


a -1 ser aadido 'detrs' del ltimo item creado (configuracin por defecto)

entradaMenu

[opcional] Le permite definir el nmero de entrada para ser creado. Las


entradas son enumeradas iniciando en 0. Si es igual a -1 ser aadido 'detrs'
de la ltima entrada creada (configuracin por defecto)

itemRadioMenu

[opcional] 0 (por defecto) = crear un itemMenu normal , 1 = crear un


itemRadioMenu.

Valor de Retorno
Con xito:

Devuelve el identificador (ID del control) del nuevo itemMenu.

Al Fallar:

Devuelve 0.

Comentarios
Si el parmetro de 'texto' es una cadena en blanco ( "" ) entonces un separador de lnea ser
creada.
Por defecto, itemMenus normales con marca (no itemMenus de radio) sern automticamente
desmarcados si usted los pulsa!
Para desactivar este comportamiento use el valor '2' en TrayMenuMode.
itemMenus de Radio, son automticamente agrupados juntos y estos grupos estn separados
por una lnea de separacin o un item normal item que no es item de radio.
Por defecto, un radio itemMenu pulsado ser seleccionado automticamente y todos los
dems items de radio en el mismo grupo sern deseleccionados!
Para desactivar este comportamiento use el valor '8' en TrayMenuMode.
Relativo
TrayItemSetState, TrayItemSetText, TrayGetMsg, TrayItemDelete, TrayItemSetOnEvent
Ejemplo
; ****************
; * Primer ejemplo *
; ****************
#NoTrayIcon
Opt("TrayMenuMode",1) ; Los tems de men por defecto (del Script Pausado/Salir) no sern
442

mostrados.
$prefsitem = TrayCreateItem("Preferencias")
TrayCreateItem("")
$aboutitem = TrayCreateItem("Acerca")
TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $prefsitem
Msgbox(64, "Preferencias:", "SO:" & @OSVersion)
Case $msg = $aboutitem
Msgbox(64, "Acerca de:", "Ejemplo-AutoIt3.")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit

; *****************
; * Segundo ejemplo *
; *****************
#Include <Constants.au3>
#NoTrayIcon
Opt("TrayMenuMode",1) ; Los tems de men por defecto (del Script Pausado/Salir) no sern
mostrados.
; Crear 2 menuitmes radio
$radio1 = TrayCreateItem("Radio1", -1, -1, 1)
TrayItemSetState(-1, $TRAY_CHECKED)
$radio2 = TrayCreateItem("Radio2", -1, -1, 1)
$radio3 = TrayCreateItem("Radio3", -1, -1, 1)
TrayCreateItem("") ; grupos menitem de Radios pueden ser separados por una lnea
separadora u otra menuitem normal
443

$radio4 = TrayCreateItem("Radio4", -1, -1, 1)


$radio5 = TrayCreateItem("Radio5", -1, -1, 1)
TrayItemSetState(-1, $TRAY_CHECKED)
$radio6 = TrayCreateItem("Radio6", -1, -1, 1)
TrayCreateItem("")
$aboutitem = TrayCreateItem("Acerca")
TrayCreateItem("")
$exititem = TrayCreateItem("Salir")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $aboutitem
Msgbox(64, "About:", "Ejemplo de Bandeja-AutoIt3 con grupos de radios y items de
men.")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit

TrayCreateMenu
Crea un control de menu para el menu de bandeja.
TrayCreateMenu ( "sub/menutexto" [, IDmenu [, entradaMenu]] )
Parmetros
sub/menutexto El texto de sub/menu.

IDmenu

[opcional] Si es definido, le permite crear un submenu en el men


referenciado. Si es igual a -1 lo referir al primer nivel del menu.

entradaMenu

[opcional] Permite definir el nmero de entrada para ser creada. Las entradas
444

son enumeradas iniciando en 0.

Valor de Retorno
Con xito:

Devuelve el identificador (ID del control) del nuevo men de bandeja.

Al Fallar:

Devuelve 0.

Comentarios
Ninguno.

Relativo
TrayItemSetState, TrayItemSetText, TrayGetMsg, TrayItemDelete

Ejemplo
#NoTrayIcon
Opt("TrayMenuMode",1) ; Los tems de men por defecto (del Script Pausado/Salir) no sern
mostrados.
$settingsitem = TrayCreateMenu("Configuracin")
$displayitem = TrayCreateItem("Mostrar", $settingsitem)
$printeritem = TrayCreateItem("Impresora", $settingsitem)
TrayCreateItem("")
$aboutitem = TrayCreateItem("Acerca")
TrayCreateItem("")
$exititem
= TrayCreateItem("Salir")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $aboutitem
Msgbox(64,"Acerca:","Ejemplo de AutoIt3-Tray")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit
445

TrayItemDelete
Elimina un control de menu/item del men de bandeja.
TrayItemDelete (IDcontrol)
Parmetros
ID del
control

El identificador del control (ID del control) como es devuelto por una funcin
TrayCreateItem o TrayCreateMenu.

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0.

Comentarios
Ninguno.
Relativo
TrayCreateItem, TrayCreateMenu
Ejemplo
#NoTrayIcon
Opt("TrayMenuMode",1) ; Los tems de men por defecto (del Script Pausado/Salir) no sern
mostrados.
$settingsitem = TrayCreateMenu("Configuracin")
$displayitem = TrayCreateItem("Mostrar", $settingsitem)
$printeritem = TrayCreateItem("Impresora", $settingsitem)
TrayCreateItem("")
$aboutitem = TrayCreateItem("Acerca")
TrayCreateItem("")
$exititem
= TrayCreateItem("Salir")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
446

Case $msg = $aboutitem


Msgbox(64,"Acerca:","Ejemplo de AutoIt3-Tray")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit

TrayItemGetHandle
Devuelve el apuntador para un men de bandeja (item).
TrayItemGetHandle (IDcontrol)
Parmetros
ID del
control

El identificador del control(ID del control) como es devuelto por una funcin
como TrayCreateItem o TrayCreateMenu.

Valor de Retorno
Con xito:

Devuelve el ID del identificador de un control dado.

Al Fallar:

Devuelve 0.

Comentarios
Para obtener el apuntador para el men contextual de bandeja use '0' como ID del control.
Relativo
TrayItemGetState, TrayItemGetText
Ejemplo
#include <Constants.au3>
Opt("TrayMenuMode", 1) ; No mostrar el men de contexto predeterminado
Global Const $MIM_APPLYTOSUBMENUS = 0x80000000
Global Const $MIM_BACKGROUND
= 0x00000002
TraySetIcon("[Link]", 21)
TraySetToolTip("Esto es slo un pequeo ejemplo para mostrar los mens con colores en la
447

bandeja" & @LF & "son fciles bajo Windows 2000 y posteriores.")
$OptionsMenu = TrayCreateMenu("Opciones")
$OnTopItem = TrayCreateItem("Siempre encima", $OptionsMenu)
TrayItemSetState(-1, $TRAY_CHECKED)
$RepeatItem = TrayCreateItem("Repetir siempre", $OptionsMenu)
TrayCreateItem("")
$AboutItem = TrayCreateItem("Acerca")
TrayCreateItem("")
$ExitItem
= TrayCreateItem("Salir del ejemplo")
SetMenuColor(0, 0xEEBB99) ; valor del color BGR, '0' significa que el men de contexto de la
bandeja es llamado as mismo
SetMenuColor($OptionsMenu, 0x66BB99); BGR color
While 1
$Msg = TrayGetMsg()
Switch $Msg
Case $ExitItem
ExitLoop
Case $AboutItem
Msgbox(64, "Acerca...", "Ejemplo de men de bandeja con color")
EndSwitch
WEnd
Exit

; Aplicar el color al men


Func SetMenuColor($nMenuID, $nColor)
$hMenu = TrayItemGetHandle($nMenuID) ; Get the internal menu handle
$hBrush = DllCall("[Link]", "hwnd", "CreateSolidBrush", "int", $nColor)
$hBrush = $hBrush[0]
Local $stMenuInfo = DllStructCreate("dword;dword;dword;uint;dword;dword;ptr")
DllStructSetData($stMenuInfo, 1, DllStructGetSize($stMenuInfo))
DllStructSetData($stMenuInfo, 2, BitOr($MIM_APPLYTOSUBMENUS, $MIM_BACKGROUND))
DllStructSetData($stMenuInfo, 5, $hBrush)
DllCall("[Link]", "int", "SetMenuInfo", "hwnd", $hMenu, "ptr",
DllStructGetPtr($stMenuInfo))
EndFunc

TrayItemGetState
Obtiene el estado actual de un control.
448

TrayItemGetState ([ID del control])


Parmetros
ID del
control

[opcional] El identificador del control(ID del control) como es devuelto por una
funcin como TrayCreateItem o TrayCreateMenu.

Valor de Retorno
Devuelve el estado. Ver Tabla de TrayItemSetState para sus valores.
Comentarios
Ninguno.
Relativo
TrayItemSetState, TrayItemGetHandle
Ejemplo
#NoTrayIcon
Opt("TrayMenuMode",1) ; Los tems de men por defecto (del Script Pausado/Salir) no sern
mostrados.
$getitem = TrayCreateItem("Obtener estado")
TrayCreateItem("")
$aboutitem = TrayCreateItem("Acerca")
TrayCreateItem("")
$exititem = TrayCreateItem("Salir")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $getitem
Msgbox(64,"Estado",TrayItemGetState($aboutitem))
Case $msg = $aboutitem
Msgbox(64,"Acerca:","Ejemplo de AutoIt3-Tray")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit
449

TrayItemGetText
Obtiene el itemtexto de un control de men/item de bandeja.
TrayItemGetText ( IDcontrol )
Parmetros
ID del
control

El identificador del control(ID del control) como es devuelto por una funcin
como TrayCreateItem o TrayCreateMenu.

Valor de Retorno
Con xito:

Devuelve 1.

Al Fallar:

Devuelve 0.

Comentarios
Ninguno.
Relativo
TrayItemSetText, TrayItemGetHandle
Ejemplo
#NoTrayIcon
Opt("TrayMenuMode",1) ; Los tems de men por defecto (del Script Pausado/Salir) no sern
mostrados.
$getitem = TrayCreateItem("Obtener texto")
TrayCreateItem("")
$aboutitem = TrayCreateItem("Acerca")
TrayCreateItem("")
$exititem = TrayCreateItem("Salir")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $getitem
Msgbox(64,"Estado",TrayItemGetText($aboutitem))
450

Case $msg = $aboutitem


Msgbox(64,"Acerca:","Ejemplo de AutoIt3-Tray")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit

TrayItemSetOnEvent
Define un Funcin de usuario para ser invocada cuando un item del cono de Autoit es
clickeado.
TrayItemSetOnEvent (itemID, "funcin")
Parmetros
itemID

El identificador del item(itemID) devuelto por la funcin TrayCreateItem.

funcin

El nombre de la funcin de usuario a invocar.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0.

@error:

1 si "funcin" no es definida.

Comentarios
Las funciones OnEvent son solamente invocadas cuando TrayOnEventMode es establecido a 1
- cuando se usa este modo TrayGetMsg No es utilizado.
Dentro de la funcin de usuario invocada el identificador de Item puede ser devuelto con
@TRAY_ID.
Si la funcin es una cadena vaca "" el usuario definido previamente es deshabilitado.
Relativo
TrayCreateItem, TrayGetMsg, TrayOnEventMode (Option), TraySetOnEvent
Ejemplo

451

#NoTrayIcon
Opt("TrayOnEventMode",1)
Opt("TrayMenuMode",1) ; tray menu items por defecto (Script Paused/Exit) no ser mostrado.
TraySetClick(16) ; Solo el botn secundario del mouse mostrar el men contextual
$infoitem = TrayCreateItem("Info")
TrayItemSetOnEvent(-1,"ShowInfo")
TrayCreateItem("")
$exititem = TrayCreateItem("Exit")
TrayItemSetOnEvent(-1,"ExitScript")
TraySetState()
While 1
Sleep(10) ; ciclo
WEnd
Exit

; Funciones
Func ShowInfo()
Msgbox(0,"Info","Tray OnEvent Demo")
EndFunc
Func ExitScript()
Exit
EndFunc

TrayItemSetState
Establece el estado de un control menu/item en la bandeja del sistema.
TrayItemSetState ( ID del control, estado )
Parmetros
ID del

El identificador del control (ID del control) devuelto por una funcin
452

control

TrayCreateItem o TrayCreateMenu.

estado

Ver el Tabla de estado ms abajo.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0.

Comentarios
Tabla de estado
Estado

Valor Comentarios

Sin cambio

$TRAY_CHECKED

Menuitem ser seleccionado

$TRAY_UNCHECKED 4

Menuitem ser deseleccionado

$TRAY_ENABLE

64

Menuitem ser activado

$TRAY_DISABLE

128

Menuitem ser desactivado

$TRAY_FOCUS

256

Menuitem ser seleccionado

$TRAY_DEFAULT

512

Menuitem ser establecido como el itemMenupor por defecto.

Los valores de estado pueden ser sumados por ejemplo $TRAY_CHECKED + $TRAY_DEFAULT
coloca el itemMenu como marcado (checked) y con el estado predeterminado.
Para resetear/Borrar el estado del $TRAY_DEFAULT para un itemMenu simplemente use esta
funcin en el item con otro estado, por instancia con $TRAY_ENABLE.
Las constantes definidas ms arriba se encuentran en #include <Constants.au3>
Relativo
TrayItemGetState, TrayCreateItem, TrayCreateMenu, TraySetState
Ejemplo

453

#Include <Constants.au3>
#NoTrayIcon
Opt("TrayMenuMode",1) ; tray menu items por defecto (Script Paused/Exit) no ser mostrado.
$chkitem
= TrayCreateItem("Revisarlo")
TrayCreateItem("")
$checkeditem = TrayCreateItem("Revisado")
TrayCreateItem("")
$exititem
= TrayCreateItem("Exit")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $chkitem
TrayItemSetState($checkeditem,$TRAY_CHECKED)
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit

TrayItemSetText
Establece el texto del item en un control menu/item.
TrayItemSetText (ID del control, texto)
Parmetros
ID del
control

El identificador del control (ID del control) devuelto por una funcin
TrayCreateItem o TrayCreateMenu.

texto

El nuevo texto para el control menu/item.

Valor de Retorno
Con xitos

Devuelve 1.

454

Al Fallar

Devuelve 0.

Comentarios
Para cambiar el texto del un itemMenu por defecto (Script Pausado/Salir) use la constante
$TRAY_ITEM_EXIT y $TRAY_ITEM_PAUSE como ID del control.
Relativo
TrayItemGetText
Ejemplo
#Include <Constants.au3>
#NoTrayIcon
Opt("TrayAutoPause",0) ; Script no ser pausado cuando se haya clickeado el icono de bandeja
$valitem = TrayCreateItem("Valor:")
TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
TraySetState()
TrayItemSetText($TRAY_ITEM_EXIT,"Salir de Programa")
TrayItemSetText($TRAY_ITEM_PAUSE,"Pausar Programa")
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $valitem
TrayItemSetText($valitem,"Valor:" & Int(Random(1,10,1)))
Case $msg = $aboutitem
Msgbox(64,"About:","AutoIt3-Tray-sample")
EndSelect
WEnd
Exit

TrayGetMsg
Consulta cualquier evento ocurrido en un men de bandeja.
TrayGetMsg ( )
Parmetros
455

Ninguno.
Valor de Retorno
Devuelve un evento.
El "evento" devuelto es el ID del control ID enviando el mensaje, o su evento especial (como el
clic del mouse en el icono de bandeja). O si no hay mensajes, el evento estar en 0.
IDs de Eventos
0

No hay eventos

Control ID

el ID del control enviando el mensaje

$TRAY_EVENT_PRIMARYDOWN

el botn primario del mouse fue presionado

$TRAY_EVENT_PRIMARYUP

el botn primario del mouse fue liberado

$TRAY_EVENT_SECONDARYDOWN el botn secundario del mouse fue presionado


$TRAY_EVENT_SECONDARYUP

el botn secundario del mouse fue liberado

$TRAY_EVENT_PRIMARYDOUBLE

el botn primario del mouse fue doblemente presionado

$TRAY_EVENT_SECONDARYDOUBLE el botn secundario del mouse fue doblemente


presionado

Comentarios
Esta funcin automticamente espera en el CPU cuando es requerido as que puede ser usado
con seguridad en ciclos cortos sin ahogar todo el CPU.
Las constantes definidas ms arriba se encuentran en #include <Constants.au3>
Relativo
TrayCreateItem, TrayCreateMenu, TrayItemSetOnEvent
Ejemplo
#NoTrayIcon
Opt("TrayMenuMode",1) ; Los tems de men por defecto (del Script Pausado/Salir) no sern
mostrados.
$settingsitem = TrayCreateMenu("Configuracin")
$displayitem = TrayCreateItem("Mostrar", $settingsitem)
$printeritem = TrayCreateItem("Impresora", $settingsitem)
TrayCreateItem("")
$aboutitem = TrayCreateItem("Acerca")
456

TrayCreateItem("")
$exititem
= TrayCreateItem("Salir")
TraySetState()
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $aboutitem
Msgbox(64,"Acerca:","Ejemplo de AutoIt3-Tray")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit

TrayIconDebug
Si est activado muestra la lnea del script actual en la bandeja de iconos (tray icono) en un tip,
que ayuda a depurar.
0 = no informacin de depuracin (por defecto)
1 = muestra la informacin

TrayIconHide
Oculta el icono de AutoIt, de la bandeja de conos (tray icono). Nota: El icono inicialmente
aparecer por ~750 milisegundos.
0 = Muestra el icono (por defecto)
1 = Oculta el icono

TrayMenuMode
Extiende el comportamiento del icono de la bandeja/menu. Esto puede ser una combinacin
(adicin) de los siguientes valores.
0 = por defecto tems de menu (Script Pause/Exit) son anexados para el men creado por
usuario; usuario revisa si los tems son estn verificados; si usted da doble clic en el icono de la
barra del sistema entonces el id de control es devuelto con el estilo-"Default" (por defecto).

457

1 = Menu no por defecto.


2 = usuario crea tems de verificacin que no so automticamente des-chequeados si damos
clic en estos.
4 = No retorna el itemMenuID que tiene el estilo-"por defecto" en el menu principal si damos
clic en el icono de la barra del sistema.
8 = desactiva el auto chequeo de grupos de botones de radio.

TrayOnEventMode
Habilita/deshabilita las notificaciones de las funciones de OnEvent para el icono de la barra de
tareas.
0 = (por defecto) deshabilitado.
1 = habilitado.

TraySetClick
Establece el modo de clic en el cono de la bandeja - con clics del mouse se mostrar el men
del icono.
TraySetClick ( bandera )
Parmetros

bandera

0 = El menu de la bandeja nunca ser mostrado con un clic del mouse


1 = Presionando el botn primario del mouse
2 = Liberando el botn primario del mouse
4 = Doble clic en el botn primario del mouse
8 = Doble clic en el botn secundario del mouse
16 =Liberando el botn secundario del mouse
32 =Doble clic en el botn secundario del mouse
64 =Pasar el mouse sobre el icono del tray.

Valor de Retorno
Ninguno.
458

Comentarios
Estas banderas NO son valores de eventos de la bandeja!
El valor por defecto es "9" - Presionando el botn primario o secundario del mouse mostrar el
men.
Relativo
TraySetOnEvent
Ejemplo
#NoTrayIcon
Opt("TrayMenuMode",1) ; tray menu items por defecto (Script Paused/Exit) no ser mostrado.
$settingsitem = TrayCreateMenu("Settings")
$displayitem = TrayCreateItem("Display", $settingsitem)
$printeritem = TrayCreateItem("Printer", $settingsitem)
TrayCreateItem("")
$aboutitem = TrayCreateItem("About")
TrayCreateItem("")
$exititem
= TrayCreateItem("Exit")
TraySetState()
TraySetClick(16)
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
ContinueLoop
Case $msg = $aboutitem
Msgbox(64,"About:","AutoIt3-Tray-sample")
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit

TraySetIcon
Carga/establece un icono especificado en la bandeja.
TraySetIcon ( [nombreArchivo [, iconID] )
Parmetros
459

nombreArchivo [opcional] El nombre del archivo de icono para ser mostrado en la bandeja.
iconID

[opcional] El identificador del icono si el archivo contiene mltiples iconos.

Valor de Retorno
Ninguno.
Comentarios
Para restablecer el icono al por defecto, use la funcin sin parmetros:
TraySetIcon().
Pasando un nmero positivo har referencia a la cadena del nombre del icono.
Pasando un nmero negativo causa un comportamiento de "ndice" en base a 1. Algunas Dll
pueden tener iconos extrados solo con nmeros negativos.
El parmetro nombreArchivo puede ser "blank", "info", "question", "stop" o "warning" para
seleccionar algunos correspondientes iconos estndares.
Relativo
TraySetPauseIcon, TraySetState
Ejemplo
#NoTrayIcon
Opt("TrayMenuMode",1) ;tray menu items por defecto (Script Paused/Exit) no ser mostrado.
$exititem

= TrayCreateItem("Exit")

TraySetState()
$start = 0
While 1
$msg = TrayGetMsg()
If $msg = $exititem Then ExitLoop
$diff = TimerDiff($start)
If $diff > 1000 Then
$num = -Random(0,100,1) ; negativo para usar numeracin ordinal
ToolTip("#icon=" & $num)
TraySetIcon("[Link]",$num)
$start = TimerInit()
EndIF
WEnd
Exit
460

TraySetOnEvent
Define una funcin de usuario que ser invocada cuando una accin especial ocurre en la
bandeja.
TraySetOnEvent ( specialID, "funcin" )
Parmetros
specialID

Ver el Tabla de ID espaciales ms abajo.

funcin

El nombre de el funcin de usuario a invocar.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0.

@error:

1 si "funcin" no es definida.

Comentarios
Las funciones OnEvent son utilizadas solamente cuando TrayOnEventMode es establecido a 1 cuando estamos en este modo TrayGetMsg no es usado.
Tabla de ID espaciales
ID especial

Valor Comentarios

$TRAY_EVENT_SHOWICON

-3

El icono de bandeja ser mostrado.

$TRAY_EVENT_HIDEICON

-4

El icono de bandeja ser ocultado.

$TRAY_EVENT_FLASHICON

-5

El usuario provocar un pestaeo intermitente en


el icono.

$TRAY_EVENT_NOFLASHICON

-6

El usuario deshabilitar un pestaeo intermitente


en el icono.

$TRAY_EVENT_PRIMARYDOWN

-7

El botn primario del botn fue presionado sobre


el icono de bandeja.

461

$TRAY_EVENT_PRIMARYUP

-8

El botn primario del botn fue liberado sobre el


icono de bandeja.

$TRAY_EVENT_SECONDARYDOWN

-9

El botn secundario del botn fue presionado


sobre el icono de bandeja.

$TRAY_EVENT_SECONDARYUP

-10

El botn secundario del botn fue liberado sobre


el icono de bandeja.

$TRAY_EVENT_MOUSEOVER

-11

El mouse de desplaza sobre el icono de la bandeja.

$TRAY_EVENT_PRIMARYDOUBLE

-13

El botn primario del mouse presiona doblemente


sobre el icono de bandeja.

$TRAY_EVENT_SECONDARYDOUBLE -14

El botn secundario del mouse presiona


doblemente sobre el icono de bandeja.

Si la funcin es una cadena vaca "" la funcin previa de usuario es deshabilitada.


Las constanes definida ms arriba se encuentran en #include <Constants.au3>
Relativo
TrayOnEventMode (Option), TrayItemSetOnEvent, TraySetClick
Ejemplo
#include <Constants.au3>
#NoTrayIcon
Opt("TrayOnEventMode",1)
Opt("TrayMenuMode",1) ; tray menu items por defecto (Script Paused/Exit) no ser mostrado.
$exit = TrayCreateItem("Exit")
TrayItemSetOnEvent(-1,"ExitEvent")
TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE,"SpecialEvent")
TraySetOnEvent($TRAY_EVENT_SECONDARYUP,"SpecialEvent")
TraySetState()
While 1
Sleep(10) ; ciclo
WEnd
Exit

462

; Funciones
Func SpecialEvent()
Select
Case @TRAY_ID = $TRAY_EVENT_PRIMARYDOUBLE
Msgbox(64,"SpecialEvent-Informacin","Botn primario del mouse doblemente
clickeado.")
Case @TRAY_ID = $TRAY_EVENT_SECONDARYUP
Msgbox(64,"SpecialEvent-Info","Botn secundario del mouse clickeado.")
EndSelect
EndFunc

Func ExitEvent()
Exit
EndFunc

TraySetPauseIcon
Carga/establece un icono de pausa en la bandeja especificado.
TraySetPauseIcon ( [nombreArchivo [, iconID] )
Parmetros
nombreArchivo

[opcional] El nombre del archivo de icono para ser mostrado en la bandeja


del sistema.

iconID

[opcional] El identificador de icono si el archivo contiene mltiples iconos.

Valor de Retorno
Ninguno.
Comentarios
Para restablecer el icono de pausa al por defecto(cruz roja), use la funcin sin parmetros:
TraySetPauseIcon().
Pasando un nmero positivo la referencia se har sobre el nombre del icono.
Pasando un nmero negativo provocar un comportamiento de "ndice" en base a 1. Algunas
Dll pueden tener iconos extrados solo con nmeros negativos.
Relativo
TraySetIcon, TraySetState
Ejemplo
463

#NoTrayIcon
TraySetPauseIcon("[Link]",12)
TraySetState()
While 1
$msg = TrayGetMsg()
WEnd
Exit

TraySetState
Establece el estado del icono de la bandeja del sistema.
TraySetState ([bandera])
Parmetros

bandera

[opcional]Una combinacin de lo siguiente:


1 = Muestra el icono de bandeja (por defecto)
2 = Destruye/Oculta el icono de bandeja
4 = parpadea el icono de bandeja
8 = detiene el parpadeo del icono de bandeja
16 = Restablece el icono a su valor por defecto (no parpadea, el texto tip por
defecto)

Valor de Retorno
Ninguno.
Comentarios
Esta funcin sobrescribe las opciones de "TrayIconHide" y la configuracin de "#NoTrayIcon".
El icono normal y de pausa NO son restablecidos por esta funcin!
Relativo
TrayItemSetState, TraySetIcon, TraySetPauseIcon
Ejemplo
#NoTrayIcon
Opt("TrayMenuMode",1) ; tray menu items por defecto (Script Paused/Exit) no ser mostrado.
464

$exititem

= TrayCreateItem("Exit")

TraySetIcon("warning")
TraySetToolTip("SOS")
TraySetState() ; Muestra el icono de bandeja
$toggle = 0
While 1
$msg = TrayGetMsg()
Select
Case $msg = 0
Sleep(1000)
If $toggle = 0 Then
TraySetState() ; Muestra el icono de bandeja
$toggle = 1
Else
TraySetState(2) ; Oculta el icono de bandeja
$toggle = 0
EndIF
Case $msg = $exititem
ExitLoop
EndSelect
WEnd
Exit

TraySetToolTip
(Re)Establece el texto tooltip para el icono de bandeja.
TraySetToolTip ( [texto] )
Parmetros
texto

[opcional] El nuevo texto para ser mostrado como tooltip. La longitud es


limitada - ver Observaciones.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0.
465

Comentarios
En Windows 2000 y posterior la extension del tooltip es limitado a 128 caracteres.
Para restablecer el texto de Tooltip al por defecto, use la funcin sin parmetros:
TraySetToolTip()
El ToolTip es solamente cambiado cuando el icono de bandeja es visible!
Relativo
TrayTip
Ejemplo
#NoTrayIcon
TraySetState()
TraySetToolTip("Este es mi nuevo texto ToolTip!")
While 1
Sleep(10) ; ciclo
WEnd
Exit

TrayTip
Muestra un globo tip desde el icono de AutoIt. (2000/XP solamente)
TrayTip ( "ttulo", "texto", tiempo lmite [, opciones] )
Parmetros
ttulo

Texto que aparecer en la parte superior del globo tip. (63 caracteres como
mximo)

texto

mensaje que aparecer en el globo tip. (255 caracteres como mximo)

tiempo
lmite

Un tiempo estimado (en segundos) en que el globo tip se mantendr. (Windows


establece un mnimo-mximo de 10-30 segundo, aunque esto es una
estimacin.)

opciones

[opcional] Ver Observaciones. 0=Sin icono (por defecto),


1=icono de informacin, 2=icono de advertencia, 3=icono de error

466

Valor de Retorno
Ninguno
Comentarios
TrayTip funciona solamente bajo Windows 2000/XP o superior.
Un Tray tip se cerrar si el icono de bandeja de AutoIt desaparece. Consecuentemente, el
TrayTip no puede aparecer si AutoItSetOption("TrayIconHide", 1) es establecido o si el usuario
ha deshabilitado el globo tip a travs del Registro!
Windows XP usualmente emite un sonido mostrando un globo tip. Este sonido puede ser
desactivado adicionado 16 a los parmetros de opciones o colocando un ttulo vaco.
Para limpiar un globo tip que ha sido borrado, invoque otro globo tip con una cadena vaca (y
cualquier ttulo)
Relativo
MsgBox, ToolTip, TrayIconHide (Option), TraySetToolTip
Ejemplo
TrayTip("Yo spy un ttulo", "y yo un mensaje", 5, 1)
MsgBox(4096,"", "Presiona OK para otro tip.")
TrayTip("Limpiar cualquier tip del tray","",0)
TrayTip("", "Un tray tip diferente.", 5)
Sleep(5000)

467

Referencia de Variables y Conversiones


A continuacin se muestra una lista completa de las funciones de Variables y Conversiones
disponibles en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.

Funcin

Descripcin

Asc

Devuelve el cdigo ASCII de un carcter.

AscW

Devuelve el cdigo unicode de un carcter.

Chr

Devuelve el carcter correspondiente a un cdigo ASCII.

ChrW

Devuelve el carcter correspondiente a un cdigo unicode.

Assign

Asigna un dato a una variable por su nombre.

Binary

Devuelve la representacin binaria de una expresin.

BinaryLen

Devuelve el nmero de bytes de un dato variant binario.

BinaryMid

Extrae un nmero de bytes de un dato variant binario.

BinaryToString

Convierte un dato variant binario en una cadena.

Dec

Devuelve la representacin numrica de una cadena hexadecimal.

Eval

Devuelve el valor de una variable definida por una cadena.

Hex

Devuelve la representacin de una cadena o valor binario convertido a


hexadecimal.

HWnd

Convierte una expresin en un apuntador (handle) HWND.

Int

Devuelve la representacin numrica del valor entero (el nmero


completo) de una expresin.

468

IsAdmin

Verifica que el usuario actual tenga privilegio de administrador.

IsArray

Chequea si una variable es de tipo arreglo.

IsBinary

Chequea si una variable o expresin es de tipo binaria.

IsBool

Chequea si una variable es de tipo booleano.

IsDeclared

Chequea si una variable ha sido declarada.

IsDllStruct

Chequea si una variable es de tipo DllStruct.

IsFloat

Chequea si una variable o expresin es de tipo flotante (decimal).

IsHWnd

Chequea si una variable es un puntero y un apuntador vlido de


ventana.

IsInt

Chequea si una variable o expresin es de tipo entero.

IsKeyword

Chequea si una variable es una palabra clave (Por ejemplo, Default).

IsNumber

Chequea si una variable es de tipo numrico.

IsObj

Chequea si una variable o expresin es de tipo objeto.

IsPtr

Cheque si una variable es de tipo puntero.

IsString

Chequea si una variable es de tipo cadena.

MustDeclareVars
(Option)

Si esta opcin es utilizada entonces todas las variables deben ser


predeclaradas con Dim, Local o Global antes de poder ser usadas evita la oportunidad de usar variables mal deletreadas causando bugs
(errores).

Number

Devuelve la representacin numrica de una expresin.

Ptr

Convierte una expresin en una variante de puntero.

String

Devuelve una representacin de una expresin en cadena de texto.

469

StringToBinary

Convierte una cadena en datos binarios.

UBound

Devuelve el tamao de un arreglo dimensionado.

Asc
Devuelve el cdigo ASCII de un carcter.
Asc ("carcter")
Parmetros
carcter

El carcter para obtener el cdigo. Si una cadena es usada, el cdigo del primer
carcter es tomado.

Valor de Retorno
Devuelve el cdigo ASCII de un carcter especificado.

Comentarios
Ver el Apndice para una tabla completa de valores ASCII.
Asc("0") == 48, Asc("9") == 57, Asc("A") == 65, Asc("Z") == 90, Asc("a") == 97, Asc("z") == 122,
etc.
Relativo
AscW, Chr, ChrW
Ejemplo
$code = Asc("A")
MsgBox(0, "Cdigo ASCII de A:", $code)

AscW
Devuelve el cdigo unicode de un carcter.
AscW ("carcter")
Parmetros
470

carcter

El carcter para obtener el cdigo. Si una cadena es usada, el cdigo del primer
carcter es tomado.

Valor de Retorno
Devuelve el cdigo unicode de un carcter especificado.
Comentarios
Ver el Apndice para una tabla completa de valores ASCII.
Relativo
Asc, Chr, ChrW
Ejemplo
$code = AscW("A")
MsgBox(0, "Cdigo Unicode de A:", $code)

Chr
Devuelve el carcter correspondiente a un cdigo ASCII.
Chr ( cdigo ASCII )
Parmetros
cdigo ASCII Un cdigo ASCII en el rango entre 0-255 (ej., 65 devuelve la letra capital A).

Valor de Retorno
Con xitos

Devuelve una cadena conteniendo la representacin ASCII del cdigo dado

Al Fallar

Devuelve una cadena vaca y establece el valor de @error en 1 si el cdigo ASCII


es superior a 255.

Comentarios
Chr(48) == "0", Chr(57) == "9", Chr(65) == "A", Chr(90) == "Z", Chr(97) == "a", Chr(122) = "z",
etc.
Una tabla completa de valores ASCII se encuentra en el apndice.
Relativo
Asc, AscW, ChrW, String
471

Ejemplo
$text = ""
For $i = 65 to 90
$text = $text & Chr($i)
Next
MsgBox(0, "Alfabeto de maysculas", $text)

ChrW
Devuelve el carcter correspondiente a un cdigo unicode.
ChrW ( cdigo unicode )
Parmetros
cdigo
unicode

Un cdigo unicode en el rango de 0-65535 (ej., 65 devuelve la letra capital A).

Valor de Retorno
Con xitos

Devuelve una cadena conteniendo la representacin del cdigo dado.

Al Fallar

Devuelve una cadena vaca y establece el valor de @error en 1 si el cdigo


unicode es superior a 65535.

Comentarios
Una tabla completa de valores ASCII se halla en el apndice.
Relativo
Asc, AscW, Chr, String
Ejemplo
$text = ""
For $i = 256 to 512
$text = $text & ChrW($i)
Next
MsgBox(0, "Caracteres Unicode del 256 al 512", $text)

Assign
Asigna un dato a una variable por su nombre.
472

Assign ("varname", "dato" [, flag])


Parmetros
varname

El nombre de la variable para asignar el dato. No puede ser un arreglo de


elementos.

dato

El dato usado para ser asignado a la variable.

flag

[opcional] controla la forma de asignacin (puede sumar valores


conjuntamente):
0 = (por defecto) Crea la variable si es necesario
1 = Fuerza la creacin entorno Local
2 = Fuerza la creacin entorno Global
4 = Falla si la variable no existe

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si es deshabilitado para crear/asignar la variable.

Comentarios
Si existe necesidad de utilizar Assign() para crear/escribir para una variable, entonces en
muchas situaciones, Eval() puede ser usado para leer la variable y IsDeclared() debera ser
utilizado para chequear si la variable existe.
Relativo
Eval, IsDeclared, Execute
Ejemplo
Global $variable
If Assign("variable", "Hola") Then MsgBox(4096, "", $variable) ; Muestra "Hola"

Binary
Devuelve la representacin binaria de una expresin.
Binary (expresin)

473

Parmetros
expresin

Una expresin para convertir en dato binario/byte.

Valor de Retorno
Devuelve un variant Binario.
Comentarios
Ninguno
Relativo
Int, Number, IsBinary, BinaryLen, BinaryMid, BinaryToString, StringToBinary
Ejemplo
$var = Binary("0x00204060")
;$var es de tipo binario
msgbox(0, "IsBinary", IsBinary($var))

BinaryLen
Devuelve el nmero de bytes de un dato variant binario.
BinaryLen ( binario )
Parmetros
binario

El dato binario para evaluar.

Valor de Retorno
Devuelve la longitud del dato binario en bytes.
Comentarios
Ninguno
Relativo
Binary, BinaryMid
Ejemplo
; Crea el dato binario 0x10203040

474

$binary = Binary("0x10203040")
MsgBox(0, "Length in bytes:", BinaryLen($binary) )

BinaryMid
Extrae un nmero de bytes de un dato variant binario.
BinaryMid ( binario, iniciar [, contador] )
Parmetros
binario

El dato binario para evaluar.

iniciar

La posicin de byte para iniciar. (1 = primer byte)

contador

[opcional] El nmero de bytes para extraer. Por defecto extrae el resto de la


cadena a partir del inicio.

Valor de Retorno
Devuelve el dato binario extrado.
Comentarios
Si iniciar esta fuera de lmite, un variant binario vaco es devuelto. Si inicio es vlido pero el
contador esta fuera de lmite, la cadena entera del dato binario es devuelto.
Relativo
Binary, BinaryLen
Ejemplo
;Crea el dato binario 0x10203040
$binary = Binary("0x10203040")
$extract = BinaryMid($binary, 2, 2)
MsgBox(0, "2nd and 3rd bytes are", $extract)

BinaryToString
Convierte un dato variant binario en una cadena.
BinaryToString (expresin [, flag])

475

Parmetros
expresin

Una expresin para convertir en cadena.

flag

[opcional] Cambia cmo el dato binario es devuelto:


flag = 1 (por defecto), dato binario tomado como ANSI
flag = 2, dato binario tomado como UTF16 Little Endian
flag = 3, dato binario tomado como UTF16 Big Endian
flag = 4, dato binario tomado como UTF8

Valor de Retorno
Con xitos:

La representacin en cadena del dato binario.

Al Fallar:

Una cadena vaca. @error es establecido a lo siguiente:


1 - Cadena de entrada tiene 0 extensin.
2 - Cadena de entrada tiene un nmero impar de bytes y se esper que fuera
UTF16 (debe contener un nmero par de bytes para ser UTF16 vlido).

Comentarios
A diferencia de String() que devuelve una representacin hexadecimal de un dato binario, esta
funcin asume que el dato binario es una cadena y la convierte apropiadamente.
Relativo
Binary, IsBinary, String, StringToBinary, StringToASCIIArray
Ejemplo
; Binario ANSI a cadena
$buffer = StringToBinary("Hola - ??")
MsgBox(4096, "String() representacin" , $buffer)
$buffer = BinaryToString($buffer)
MsgBox(4096, "BinaryToString() ANSI representacin" , $buffer)
; Binario UTF16-LE a cadena
$buffer = StringToBinary("Hola - ??", 2)
MsgBox(4096, "String() representacin" , $buffer)
$buffer = BinaryToString($buffer, 2)
MsgBox(4096, "BinaryToString() UTF16-LE representacin" , $buffer)
; Binario UTF16-BE a cadenag
$buffer = StringToBinary("Hola - ??", 3)
MsgBox(4096, "String() representacin" , $buffer)
$buffer = BinaryToString($buffer, 3)
MsgBox(4096, "BinaryToString() UTF16-BE representacin" , $buffer)
476

; Binario UTF8 a cadena


$buffer = StringToBinary("Hola - ??", 4)
MsgBox(4096, "String() representacin" , $buffer)
$buffer = BinaryToString($buffer, 4)
MsgBox(4096, "BinaryToString() UTF8 representacin" , $buffer)

Dec
Devuelve la representacin numrica de una cadena hexadecimal.
Dec ( "hex" )
Parmetros
hex

La cadena hexadecimal a convertir.

Valor de Retorno
Con xitos

Devuelve un entero.

Al Fallar

Devuelve 0 estableciendo @error a 1 si una cadena no vlida es dada o si se


produce un desbordamiento.

Comentarios
La funcin solo trabaja con nmeros enteros de 32 bit con signo(-2147483648 a 2147483647)
Relativo
Hex
Ejemplo
$dec = Dec("FFFF") ;retorna el nmero 65535

Eval
Devuelve el valor de una variable definida por una cadena.
Eval (cadena)
Parmetros
477

cadena

cadena representando el nombre de la variable.

Valor de Retorno
Con xitos

Devuelve el valor de la variable.

Al Fallar

Devuelve "" (cadena vaca) con @error fijado a valor diferente de 0.

Comentarios
Si le es necesario utilizar Eval() para leer una variable, en muchas situaciones Assign() debe ser
usado para crear/escribir para la variable y IsDeclared() para revisar si la variable existe.
Relativo
IsDeclared, Assign, Execute
Ejemplo
Dim $a_b = 12
$s = Eval("a" & "_" & "b") ; $s es establecido a 12
$s =Eval("c") ; $s = "" y @error = 1

Hex
Devuelve la representacin de una cadena o valor binario convertido a hexadecimal.
Hex (expresin [, longitud])
Parmetros
expresin

La expresin a convertir.

longitud

[opcional] Nmero de caracteres para ser devueltos (por encima de 8) para


enteros.
Los caracteres son truncados desde la izquierda si la longitud es muy pequea.
Este parmetro es ignorado si el dato es binario.

Valor de Retorno
Con xitos

Devuelve una cadena de longitud de caracteres, rellenado con cero si es


necesario.

478

devuelve el tipo binario convertido.


Especial:

Devuelve "" (cadena vaca) si longitud es menor que 1.

Al Fallar

Devuelve "" (cadena vaca) y fija @error a 1 si longitud es mayor que 8.

Comentarios
Esta funcin solo funciona con nmeros enteros de 32 bit con signo (-2147483648 a
2147483647).
La funcin tambin establece @error a 1 si no se dan los dgitos suficientes - la cadena
devuelta contendr entonces el ltimo dgito significativo.
Relativo
Dec, BitAND, BitNOT, BitOR, BitRotate, BitShift, BitXOR
Ejemplo
$result = Hex(1033, 4) ;devuelve "0409"

HWnd
Convierte una expresin en un apuntador (handle) HWND.
HWnd (expresin)
Parmetros
expresin

Una expresin para convertir en apuntador(handle) HWND.

Valor de Retorno
Con xitos - Si el valor puede ser convertido a HWND, la representacin HWND ser devuelto.
Al Fallar - Si el HWND no denota una ventana vlida, un HWND (NULL) 0 ser devuelto y
@error puesto a 1.
Comentarios
Nmeros decimales pueden no ser convertidos en HWND.
Una cadena literal no puede ser convertida a HWND debido a que no existe garanta de que
una ventana tenga el mismo HWND alguna otra vez. Esto no esta estrictamente prohibido,
pero es un error del programador y debera ser evitado.
Relativo
479

Int, String, Number, Ptr


Ejemplo
Run("[Link]")
WinWait("[CLASS:Notepad]")
Local $hWnd = WinGetHandle("[CLASS:Notepad]")
Local $sHWND = String($hWnd) ; Comvierte a cadena
WinSetState(HWnd($sHWND), "", @SW_MINIMIZE)
Sleep(5000) ; Notepad debe ser minimizado
WinClose(HWnd($sHWND))

Int
Devuelve la representacin numrica del valor entero (el nmero completo) de una expresin.
Int (expresin)
Parmetros
expresin

Una expresin para convertir en entero.

Valor de Retorno
Con xitos

Devuelve un entero.

Al Fallar

Devuelve 0 y coloca @error en 1 si no es un entero, un decimal o una cadena.

Comentarios
La porcin fraccionaria de la expresin en truncada, as Int(1.999999) devuelve 1
Int(0/0) devuelve -9223372036854775807, por si usted se lo preguntara!.
Esta funcin realiza correcciones menores en nmeros de punto flotante (nmeros decimales)
para acotar la impresicin natural de los nmeros de punto flotante. Por ejemplo, las
expresiones de punto flotante 0.7 + 0.2 + 0.1 produce un nmero de punto flotante que no es
1.0 exactamente.
Int() corrige esta anormalidad, sin embargo, ciertas circunstancias extremedamente raras
pueden llevar a Int() a retornar un valor no esperado (La disparidad en la deteccin de un valor
no esperado son menores que si Int() no corrigiera todos los valores).
Relativo
Number, String, Round, HWnd, Binary, Ceiling, Floor, Ptr
480

Ejemplo
$var = Int(10.793) ;$var es el entero 10

IsAdmin
Verifica que el usuario actual tenga privilegio de administrador.
IsAdmin ( )
Parmetros
Ninguno
Valor de Retorno
Con xitos

Devuelve 1 si el usuario actual tenga privilegio de administrador.

Al Fallar

Devuelve 0 si el usuario carece de privilegios de administrador.

Comentarios
Devuelve 1 bajo Windows Vista solo si es ejecutado con derechos totales de administrador
(ejemplo. #RequireAdmin ha sido utilizado, o este ha sido realmente elevado por UAC)
Relativo
#RequireAdmin
Ejemplo
If IsAdmin() Then MsgBox(0, "", "Derechos de administrados detectados")

IsArray
Chequea si una variable es de tipo arreglo.
IsArray (variable)
Parmetros
variable

La variable/expresin a revisar.

Valor de Retorno
481

Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si no es una variable de arreglo.

Comentarios
Puede ser til para validar parmetros de arreglos/No-arreglos definido para una funcin de
usuario (UDF).
Relativo
IsFloat, IsInt, IsString, IsNumber, IsBool, IsHWnd, IsBinary, IsPtr, VarGetType
Ejemplo
$pos = WinGetPos("[CLASS:Notepad]")
If IsArray($pos) Then
MsgBox(0, "Altura de la ventana", $pos[3])
EndIf

IsBinary
Chequea si una variable o expresin es de tipo binaria.
IsBinary (expresin)
Parmetros
expresin

La variable o expresin a revisar.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si expresin no es de tipo binario.

Comentarios
Ninguno
Relativo
IsArray, IsFloat, IsInt, IsString, IsNumber, IsBool, IsHWnd, Binary, BinaryToString,
StringToBinary, VarGetType
Ejemplo

482

$bin = Binary("0x00204060")
$str = "0x00204060"
msgbox(0, "IsBinary $bin", IsBinary($bin))
msgbox(0, "IsBinary $str", IsBinary($str))

IsBool
Chequea si una variable es de tipo booleano.
IsBool (variable)
Parmetros
variable

La variable/expresin a revisar.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si expresin no es de tipo booleana.

Relativo
IsArray, IsFloat, IsInt, IsNumber, IsString, IsHWnd, IsBinary, IsPtr, VarGetType
Ejemplo
$b = true
If IsBool($b) Then Msgbox(0,"Satisfactorio", "$b es una variable booleana")

IsDeclared
Chequea si una variable ha sido declarada.
IsDeclared ( expresin )
Parmetros
expresin

cadena representando el nombre de la variable para ser chequeada.

483

Valor de Retorno
Con xitos

Devuelve 1 para variables Global o variables declaradas fuera de funcin alguna.

Especial:

-1 para variables locales.

Al Fallar

Devuelve 0 cuando la variable no puede ser hallada.

Comentarios
Si usted necesita usar IsDeclared() para revisar si existe una variable, entonces en muchas
situaciones Assign() puede ser usado para crear/escribir la variable y Eval() puede ser usado
para leer desde la variable.
Relativo
Assign, Eval
Ejemplo
If Not IsDeclared ("a") then
MsgBox(0,"", "$a NO esta declarada")
EndIf

; $a nunca ha sido asignado

$a=1
If IsDeclared ("a") then
MsgBox(0,"", "$a ES declarado" )
EndIf

; pues previous $a=1 asignamiento

IsDllStruct
Chequea si una variable es de tipo DllStruct.
IsDllStruct ( variable )
Parmetros
variable

La variable/expresin a revisar.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si expresin no de tipo DllStruct segn lo devuelve DllStructCreate.

Comentarios
484

Ninguno
Relativo
DllStructCreate, VarGetType
Ejemplo
$struct = DllStructCreate("char[256]")
$x = IsDllStruct($struct)

IsFloat
Chequea si una variable o expresin es de tipo flotante (decimal).
IsFloat (variable)
Parmetros
variable

La variable o expresin a revisar.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si expresin no es de tipo flotante.

Comentarios
Ver ejemplos.
Relativo
IsArray, IsInt, IsString, IsNumber, IsBool, IsHWnd, StringIsFloat, IsBinary, IsPtr, VarGetType
Ejemplo
IsFloat(3.14159) ;devuelve 1
IsFloat(3.000) ;devuelve 0 pues el valor es el entero 3
IsFloat(1/2 - 5) ;devuelve 1
IsFloat(1.5e3) ;devuelve 0 pues 1.5e3 = 1500
IsFloat("12.345") ;devuelve 0 pues es ua cadena

IsHWnd
Chequea si una variable es un puntero y un apuntador vlido de ventana.
485

IsHWnd ( variable )
Parmetros
variable

La variable/expresin a revisar.

Valor de Retorno
Con xitos

Devuelve 1 si la expresin es un puntero Y un apuntador de ventana vlido.

Al Fallar

Devuelve 0 si expresin no es un puntero O no es un apuntador de ventana


vlido.

Relativo
IsArray, IsFloat, IsInt, IsPtr, IsString, IsNumber, IsBool, GUICtrlGetHandle, IsBinary, VarGetType
Ejemplo
Run("[Link]")
Local $hWnd = WinGetHandle("[CLASS:Notepad]")
If IsHWnd($hWnd) Then
MsgBox(4096, "", "Es un HWND vlido")
Else
MsgBox(4096, "", "No es un HWND vlido")
EndIf

IsInt
Chequea si una variable o expresin es de tipo entero.
IsInt ( variable )
Parmetros
variable

La variable/expresin a revisar.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si expresin no es un entero.

486

Comentarios
IsInt(7.5 - 2.5) devuelve 1 (significa true)
Relativo
IsArray, IsFloat, IsString, IsNumber, IsBool, IsHWnd, StringIsInt, IsBinary, IsPtr, VarGetType
Ejemplo
IsInt(-12345)
IsInt(3.0000)
IsInt("5432")
IsInt(7.5 - 4.5)

;devuelve 1
;devuelve 1
;devuelve 0 pues es una cadena
;devuelve 1 pues el valor es el entero 3

IsKeyword
Chequea si una variable es una palabra clave (Por ejemplo, Default).
IsKeyword (variable)
Parmetros
variable

La variable a revisar.

Valor de Retorno
Con xitos

Devuelve 1 si la variable es una palabra clave.

Al Fallar

Devuelve 0 si variable no es una palabra clave.

Relativo
Default, VarGetType

Ejemplo
$a = default
If IsKeyword($a) Then MsgBox(0,"Ok", "Si que lo es!")

IsNumber
Chequea si una variable es de tipo numrico.

487

IsNumber (variable)
Parmetros
variable

La variable/expresin a revisar.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si expresin no es de tipo numrico.

Comentarios
Variant puede ser de dos tipos bases: Cadena y Nmeros. Adicionalmente, un nmero puede
ser entero o fraccional/punto flotante.
Relativo
IsArray, IsFloat, IsInt, IsString, IsBool, IsHWnd, IsBinary, IsPtr
Ejemplo
IsNumber(42)

IsObj
Chequea si una variable o expresin es de tipo objeto.
IsObj (variable)
Parmetros
variable

La variable/expresin a revisar.

Valor de Retorno
Con xitos

Devuelve 1 si expresin es una variable de tipo objeto.

Al Fallar

Devuelve 0 si expresin no es una variable de tipo objeto.

Relativo
ObjGet, ObjCreate, GUICtrlCreateObj, ObjEvent, ObjName, VarGetType
Ejemplo
488

$oShell = ObjCreate("[Link]")
if not IsObj($oShell) then
Msgbox(0,"Error","$oShell no es un Objeto.")
else
Msgbox(0,"Error","Objeto $oShell creado satisfactoriamente.")
endif

IsPtr
Cheque si una variable es de tipo puntero.
IsPtr (variable)
Parmetros
variable

La variable/expresin a revisar.

Valor de Retorno
Con xitos

Devuelve 1 si expresin es de tipo puntero.

Al Fallar

Devuelve 0 si expresin no es de tipo puntero.

Relativo
IsArray, IsFloat, IsHWnd, IsInt, IsString, IsNumber, IsBool, Ptr
Ejemplo
Run("[Link]")
Local $hWnd = WinGetHandle("[CLASS:Notepad]")
If IsPtr($hWnd) Then
MsgBox(4096, "", "Es un Ptr vlido")
Else
MsgBox(4096, "", "No es un Ptr vlido")
EndIf

IsString
Chequea si una variable es de tipo cadena.
IsString (variable)

489

Parmetros
variable

La variable/expresin a revisar.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si expresin no es de tipo cadena.

Relativo
IsArray, IsFloat, IsInt, IsNumber, IsBool, IsHWnd, IsBinary, IsPtr, String, VarGetType
Ejemplo
$x = IsString("foo")

MuscDeclareVars
Si esta opcin es utilizada entonces todas las variables deben ser predeclaradas con
Dim, Local o Global antes de poder ser usadas - evita la oportunidad de usar variables
mal deletreadas causando bugs (errores).
1 = Las variables deben ser predeclaradas
0 = Las variables no necesitan ser predeclaradas (por defecto)

Number
Devuelve la representacin numrica de una expresin.
Number ( expresin )
Parmetros
expresin

Una expresin a convertir en un nmero.

Valor de Retorno
Devuelve un nmero.
Comentarios
490

Una cadena empezando con letras tiene un valor numrico de cero. Una cadena empezando
con dgitos que no son caracteres numricos son cortados.
Relativo
Int, String, Binary, Ceiling, Floor, HWnd, Ptr, Round
Ejemplo
$w = Number(1+2+10) ;devuelve 13
$x = Number("3.14") ;devuelve 3.14
$y = Number("24/7") ;devuelve 24
$z = Number("tmp3") ;devuelve 0

Ptr
Convierte una expresin en una variante de puntero.
Ptr ( expresin )
Parmetros
expresin

Una expresin a convertir en una variante de puntero.

Valor de Retorno
Devuelve el puntero de la expresin dada.

String
Devuelve una representacin de una expresin en cadena de texto.
String (expresin)
Parmetros
expresin

Una expresin a convertir en cadena de texto.

Valor de Retorno
Devuelve una cadena de texto.
Comentarios

491

La mxima extensin de la cadena es de 2147483647 caracteres (pero tenga en cuenta que no


hay una lnea de un script AutoIt que acceda ms de los 4095 caracteres.)
Relativo
Int, Number, IsString, Chr, BinaryToString, ChrW, HWnd, Ptr, StringToBinary
Ejemplo
$var = String(10)
;$var es la cadena de "10"

StringToBinary
Convierte una cadena en datos binarios.
StringToBinary (expresin [, bandera])
Parmetros
expresin

Una expresin a convertir en datos binarios.

bandera

[opcional] Cambia como la cadena es guardada como binario:


bandera = 1 (por defecto), dato binario es ANSI
bandera = 2, dato binario es UTF16 Little Endian
bandera = 3, dato binario es UTF16 Big Endian
bandera = 4, dato binario es UTF8

Valor de Retorno
Devuelve una variante binaria.
Comentarios
Ninguno.
Relativo
Binary, BinaryToString, IsBinary, String
Ejemplo
; ANSI Binario a Cadena
$buffer = StringToBinary("Hola - ??")
MsgBox(4096, "Representacin String()" , $buffer)
$buffer = BinaryToString($buffer)
MsgBox(4096, "Representacin BinaryToString() ANSI" , $buffer)
; Binario UTF16-LE a Cadena
492

$buffer = StringToBinary("Hola - ??", 2)


MsgBox(4096, "Representacin String()" , $buffer)
$buffer = BinaryToString($buffer, 2)
MsgBox(4096, "Representacin BinaryToString() UTF16-LE" , $buffer)
; Binario UTF16-BE a cadena
$buffer = StringToBinary("Hola - ??", 3)
MsgBox(4096, "Representacin String()" , $buffer)
$buffer = BinaryToString($buffer, 3)
MsgBox(4096, "Representacin BinaryToString() UTF16-BE" , $buffer)
; Binario UTF8 a Cadena
$buffer = StringToBinary("Hola - ??", 4)
MsgBox(4096, "Representacin String()" , $buffer)
$buffer = BinaryToString($buffer, 4)
MsgBox(4096, "Representacin BinaryToString() UTF8" , $buffer)

UBound
Devuelve el tamao de un arreglo dimensionado.
UBound (Arreglo [, Dimensin])
Parmetros
Arreglo

La variable de arreglo para ser interrogada.

Dimensin

[opcional] La dimensin del arreglo. Por defecto es 1, para un arreglo


unidimensional. Si este parmetro es 0, el nmero de subscript del arreglo ser
devuelto.

Valor de Retorno
Con xitos

Devuelve el tamao de el arreglo.

Al Fallar

Devuelve 0 y establece @error:


1 = Arreglo dado no es un arreglo.
2 = Dimensin del arreglo no vlida

Comentarios
Recuerde que el valor devuelto por UBound es de uno ms del ndice ltimo del arreglo!
Relativo
493

Dim, ReDim
Ejemplo
Dim $myArray[10][20] ;elemento 0,0 to 9,19
$rows = UBound($myArray)
$cols = UBound($myArray, 2)
$dims = UBound($myArray, 0)
MsgBox(0, "El " & $dims & "-dimensional arreglo tiene", _
$rows & " filas, " & $cols & " columnas")
;Muestra el contenido de $myArray's
$output = ""
For $r = 0 to UBound($myArray,1) - 1
$output = $output & @LF
For $c = 0 to UBound($myArray,2) - 1
$output = $output & $myArray[$r][$c] & " "
Next
Next
MsgBox(4096,"Contenido del arreglo", $output)

494

Referencia de Administracin de Ventana


A continuacin se muestra una lista completa de las funciones de Administracin de Ventana
disponibles en AutoIt. Click en una de ellas para obtener detalles de su descripcin.
Consulte los ficheros de constantes incluidas en esta direccin Ficheros de Constantes GUI
Incluidas si usted necesita usarlo para constantes de controles.

Funcin

Descripcin

CaretCoordMode
(Option)

Establece la forma en que son utilizadas las coordenadas, bien sea


para coordenadas absolutas o relativas a la ventana actual:

ControlClick

Enva un clic de mouse a un determinado control.

ControlCommand

Enva un comando a un control.

ControlDisable

Deshabilita un control.

ControlEnable

Habilita un control.

ControlFocus

Establece el foco de entrada en un control dentro de una ventana.

ControlGetFocus

Devuelve el # de referencia del control que ha tomado el foco dentro


de una ventana.

ControlGetHandle

Devuelve el apuntador interno (handle) de un control.

ControlGetPos

Devuelve el tamao y posicin de un control relativo a la ventana.

ControlGetText

Recupera el texto de un control.

ControlHide

Oculta un control.

ControlListView

Enva un comando a un control ListView32.

ControlMove

Mueve un control dentro de una ventana.

495

ControlSend

Enva una cadena de caracteres a un control.

ControlSetText

Establece texto de un control.

ControlShow

Muestra un control que ha sido ocultado.

ControlTreeView

Enva un comando a un control TreeView32.

StatusbarGetText

Recupera el texto de una barra de estado estndar.

CaretCoordMode
Establece la forma en que son utilizadas las coordenadas, bien sea para coordenadas
absolutas o relativas a la ventana actual:
0 = coordenadas relativas a la ventana actual.
1 = coordenadas absolutas a la pantalla (por defecto).
2 = coordenadas relativas a la ventana cliente de la ventana actual.

ControlClick
Enva un clic de mouse a un determinado control.
ControlClick ("ttulo", "texto", ID del control [, botn [, clics [, x [, y ]]]])
Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

ID del
control

El control para interactuar. Ver Controls.

botn

[opcional] El botn para clic, "izquierda", "derecho", "middle", principal,


"menu", "primario", "secundario". por defecto es "izquierda".

496

clics

[opcional] El nmero de veces que se da clic con el mouse. Por defecto es 1.

[opcional] La posicin x para el clic en el control. Por defecto es center.

[opcional] La posicin y para el clic en el control. Por defecto es center.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0.

Comentarios
Algunos controles no responden a clic a menos que se encuentren dentro de la ventana activa.
Use la funcin WinActivate() para forzar a la ventana a estar activa antes de utilizar
ControlClick().
Usando 2 como el nmero de clics a enviar se logra enviar un mensaje de doble clic a un
control - esto puede ser utilizado para ejecutar programas en un control explorador.
Si esta usando los botones izquierdo y derecho del mouse intercambiados, entonces el
comportamiento de los botones es diferentes. "izquierdo" y "derecho" siempre dan clic sobre
esos botones, aunque estos se hallan intercambiados. El botn "primario" o botn principal
ser el clic principal, aunque los botones se hallan intercambiados. El botn "secundario" o
botn "menu" mostrar el menu contextual, aunque los botones se hallan intercambiados o
no.

Botn

Normal

Intercambiado

""

izquierda

izquierda

"izquierda"

izquierda

izquierda

"middle"

Middle

Middle

"Derecha"

Derecha

Derecha

"primario"

izquierda

Right

"main"

izquierda

Derecha

"secondary"

Derecha

izquierda

497

"menu"

Derecha

izquierda

Relativo
ControlCommand, MouseClick, WinActivate

Ejemplo
ControlClick("[CLASS:Notepad]", "", "MDIClient1")

ControlCommand
Enva un comando a un control.
ControlCommand ("ttulo", "texto", ID del control, "comando" [, "opciones"])
Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

ID del
control

El control para interactuar. Ver Controles.

comando

El comando para enviar al control.

opciones

[opcional] Parmetros adicionales requerido para algunos controles.

Valor de Retorno
Depende del comando segn la tabla ms abajo. En caso de un error(como un comando o
ventana/control invlido), @error=1.
Comando, Opcin

Valor de Retorno

"IsVisible", ""

Devuelve 1 si el Control es visible, 0 de otra manera

"IsEnabled", ""

Devuelve 1 si el control est activado, o sino 0

498

"ShowDropDown", ""

Despliega un ComboBox

"HideDropDown", ""

Contrae lista de un ComboBox

"AddString", 'string'

Agrega una cadena de texto al final en un ListBox o


ComboBox

"DelString", ocurrencia

Elimina una cadena de texto de acuerdo a la ocurrencia


en un ListBox o ComboBox

"FindString", 'string'

Devuelve la ocurrencia referida de la cadena de texto


exacta en un ListBox o ComboBox

"SetCurrentSelection", ocurrencia

Fija una seleccin a una ocurrencia en un ListBox o


ComboBox

"SelectString", 'string'

Fija una seleccin de acuerdo a la cadena de texto en un


ListBox o ComboBox

"IsChecked", ""

Devuelve 1 si un botn est activo, de otra manera 0

"Check", ""

Activa el botn de radio o check

"UnCheck", ""

Deselecciona/desactiva un botn de radio o check

"GetCurrentLine", ""

Devuelve el nmero de lnea donde est el cursor en un


Edit

"GetCurrentCol", ""

Devuelve el nmero de columna donde est el cursor en


un Edit

"GetCurrentSelection", ""

Devuelve el nombre del item seleccionado en un ListBox


o ComboBox

"GetLineCount", ""

Devuelve la cantidad de lneas de un Edit

"GetLine", lnea#

Devuelve el texto segn el # de lnea de un Edit

"GetSelected", ""

Devuelve el texto seleccionado de un Edit

"EditPaste", 'cadena'

Pega el 'cadena'(cadena de texto) de posicin de un Edit

"CurrentTab", ""

Devuelve la ficha activa mostrada en un

499

SystabControl32

"TabRight", ""

Se mueve a la prxima ficha a la derecha de un


SystabControl32

"TabLeft", ""

Se mueve a la prxima ficha a la izquierda de un


SystabControl32

"SendCommandID", Command ID

Simula el mensaje WM_COMMAND. Usualmente usado


para controles ToolbarWindow32 - use la pestaa de la
barra de herramienta de Au3Info para obtener el ID del
Comando.

Comentarios
Algunos controles no responden a un clic a menos que se encuentren dentro de la ventana
activa. Use la funcin WinActivate() para forzar a la ventana a estar activa antes de utilizar
ControlClick().
Ciertos comandos trabajan en Combo y ListBox no trabajan en controles "ComboLBox".
Relativo
ControlClick, ControlDisable, ControlEnable, ControlFocus, ControlGetPos, ControlGetText,
ControlHide, ControlMove, ControlSetText, ControlShow, StatusbarGetText, WinActivate,
WinMenuSelectItem, WinGetClassList, ControlGetFocus, ControlListView, ControlSend,
ControlTreeView
Ejemplo
Run("[Link]")
ControlCommand("[CLASS:Notepad]", "", "Edit1", "GetLineCount", "")

ControlDisable
Deshabilita un control.
ControlDisable ("ttulo", "texto", ID del control)
Parmetros
ttulo

El ttulo de la ventana a acceder.

500

texto

El texto de la ventana a acceder.

ID del
control

El control para interactuar. Ver Controles.

Valor de Retorno
Con xitos

Devuelve 1

Al Fallar

Devuelve 0

Relativo
ControlEnable, ControlHide, ControlCommand
Ejemplo
ControlDisable("[CLASS:Notepad]", "", "MDIClient1")

ControlEnable
Habilita un control.
ControlEnable ("ttulo", "texto", ID del control)
Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

ID del
control

El control para interactuar. Ver Controles.

Valor de Retorno
Con xitos

Devuelve 1

Al Fallar

Devuelve 0

Relativo
ControlDisable, ControlShow, ControlCommand

501

Ejemplo
ControlEnable("[CLASS:Notepad]", "", "MDIClient1")

ControlFocus
Establece el foco de entrada en un control dentro de una ventana.
ControlFocus ("ttulo", "texto", ID del control)
Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

ID del
control

El control para interactuar. Ver Controles.

Valor de Retorno
Con xitos

Devuelve 1

Al Fallar

Devuelve 0

Relativo
ControlGetFocus, ControlCommand, ControlSend
Ejemplo
Run("[Link]")
ControlFocus("[CLASS:Notepad]", "", "Edit1")

ControlGetFocus
Devuelve el # de referencia del control que ha tomado el foco dentro de una ventana.
ControlGetFocus ("ttulo" [, "texto"])
Parmetros

502

ttulo

Ttulo de la ventana a chequear.

texto

[opcional] Texto de la ventana a chequear.

Valor de Retorno
Con xitos

Devuelve el ClassNameNN del control que ha tomado el foco por teclado dentro
de la ventana.

Al Fallar

Devuelve "" (cadena vaca) y establece el valor de @error en 1 si la ventana no


existe.

Relativo
ControlFocus, ControlCommand
Ejemplo
Run("[Link]")
$a = ControlGetFocus("[CLASS:Notepad]")

ControlGetHandle
Devuelve el apuntador interno (handle) de un control.
ControlGetHandle ("ttulo", "texto", ID del control)
Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

ID del
control

El control para interactuar. Ver Controles.

Valor de Retorno
Con xitos

Devuelve el valor del apuntador (HWND).

Al Fallar

Devuelve "" (cadena vaca) y establece el valor de @error en 1 si la ventana no


coincide con el criterio.

503

Comentarios
Esta funcin devuelve un valor HWND/Handle.
Relativo
Ninguno.

Ejemplo
Run("[Link]")
$handle = ControlGetHandle("[CLASS:Notepad]", "", "Edit1")

ControlGetPos
Devuelve el tamao y posicin de un control relativo a la ventana.
ControlGetPos ("ttulo", "texto", ID del control)
Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

ID del
control

El control para interactuar. Ver Controles.

Valor de Retorno
Con xitos

Devuelve un arreglo conteniendo el tamao y la posicin del control relativo a la


ventana cliente:
$arreglo[0] = X posicin
$arreglo[1] = Y posicin
$arreglo[2] = ancho
$arreglo[3] = alto

Al Fallar

Establece @error a 1.

Comentarios
504

El ttulo/texto es referenciado a la ventana padre, de esta forma tenga cuidado con utilizar
"","" lo cual referencia a la ventana activa lo que puede no contener el ID del control
requerido.
Relativo
ControlCommand, ControlMove

Ejemplo
Run("[Link]")
$pos = ControlGetPos("[CLASS:Notepad]", "", "Edit1")
MsgBox(0, "Estado de ventana:", "POS: " & $pos[0] & "," & $pos[1] & " SIZE: " & $pos[2] & "," &
$pos[3] )

ControlGetText
Recupera el texto de un control.
ControlGetText ("ttulo", "texto", ID del control)
Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

ID del
control

El control para interactuar. Ver Controles.

Valor de Retorno
Con xitos

Devuelve texto desde un control.

Al Fallar

Establece @error a 1 y devuelve una cadena vaca "".

Relativo
WinGetText, StatusbarGetText, ControlSetText, ControlCommand
Ejemplo
Run("[Link]")
$var = ControlGetText("[CLASS:Notepad]", "", "Edit1")
505

ControlHide
Oculta un control.
ControlHide ("ttulo", "texto", ID del control)
Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

ID del
control

El control para interactuar. Ver Controles.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si la ventana/control no es encontrado.

Relativo
ControlShow, ControlCommand, ControlDisable, WinSetState
Ejemplo
ControlHide("[CLASS:Notepad]", "", "MDIClient1")

ControlListView
Enva un comando a un control ListView32.
ControlListView ("ttulo", "texto", ID del control, "comando" [, opciones1 [, opciones2]])
Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

506

ID del
control

El control para interactuar. Ver Controles.

comando

El comando para enviar al control (ver ms abajo).

opciones1

[opcional] Parmetros adicionales requeridos por algunos comandos.

opciones2

[opcional] Parmetros adicionales requeridos por algunos comandos.

Valor de Retorno
Depende del comando de la tabla ms abajo. En caso de un error (como un comando o
ventana/control invlido no es encontrado) entonces @error es fijado a 1.
Comando, Opticin1, Opticin2

Operacin

"DeSelect", From [, To]

Deselecciona uno o ms tems.

"FindItem", "cadena a buscar" [,


SubItem]

Devuelve el ndice del tems que contiene la cadena.


Devuelve -1 si la cadena no es encontrada.

"GetItemCount"

Devuelve el nmero de tems listados.

"GetSelected" [, opciones]

Devuelve una cadena conteniendo el ndice de item de


los tems seleccionados. Si opciones=0 (por defecto)
solamente el primer tem seleccionado es devuelto. Si
opciones=1 entonces todos los tems seleccionados son
devueltos delimitados por |, ejemplo: "0|3|4|10". Si no
existen tems seleccionados una cadena vaca "" es
devuelta.

"GetSelectedCount"

Devuelve el nmero de tems que son seleccionados.

"GetSubItemCount"

Devuelve el nmero de subtems.

"GetText", Item, SubItem

Devuelve el texto de un item/subitem.

"IsSelected", Item

Devuelve 1 si el item es seleccionado, de otro modo


devuelve 0.

"Select", From [, To]

Selecciona uno o ms tems.

"SelectAll"

Selecciona todos los tems.

507

"SelectClear"

Limpia la lista de tems seleccionados.

"SelectInvert"

Invierte la seleccin actual.

"ViewChange", "view"

Cambia la vista actual. Las vistas vlidas son "list",


"details", "smallicons", "largeicons".

Todos los tems/subtems son de ndice de base 0. Esto significa que el primer item/subitem en
una lista es 0, el segundo es 1, y as sucesivamente.
En una vista "Details" de un control ListView32, el "item" puede ser tomado como la "fila" y el
"subitem" como la "columna".

Comentarios
Algunos comandos pueden fallar cuando usamos un proceso de AutoIt de 32 bit para leer
desde un proceso de 64 bit De la misma forma los comandos pueden fallar si utilizamos
procesos de AutoIt de 64-bit para leer desde procesos de 32-bit.
Relativo
ControlCommand
Ejemplo
ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "SelectAll")
ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "Deselect", 2, 5)
MsgBox(0, "", ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321", "GetText",
9, 0) )
MsgBox(0, "", ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321",
"FindItem", "14 KB", 1) )
MsgBox(0, "", ControlListView(@ProgramFilesDir & "\AutoIt3", "", "SysListView321",
"GetSelected", 1) )

ControlMove
Mueve un control dentro de una ventana.
ControlMove ("ttulo", "texto", ID del control, x, y [, ancho [, altura]])
Parmetros
ttulo

El ttulo de la ventana a mover.

508

texto

El texto de la ventana a mover.

ID del
control

El control para interactuar. Ver Controles.

Coordenadas X a mover, relativo a la ventana cliente.

Coordenadas Y a mover, relativo a la ventana cliente.

ancho

[opcional] Nuevo ancho de la ventana.

altura

[opcional] Nuevo alto de la ventana.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si la ventana/control no es encontrada.

Comentarios
Si x e y son iguales a Default no ocurre movimiento, simplemente reajuste.
Relativo
ControlCommand, ControlGetPos
Ejemplo
ControlMove("[CLASS:Notepad]", "", "MDIClient1", 0, 0, 200, 200)

ControlSend
Enva una cadena de caracteres a un control.
ControlSend ("ttulo", "texto", ID del control, "cadena" [, flag])
Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

509

ID del
control

El control para interactuar. Ver Controles.

cadena

Cadena de caracteres para enviar al control.

flag

[opcional] Cambia cmo las "teclas" son procesadas:


flag = 0 (por defecto), El texto contiene caracteres especiales como + para
indicar SHIFT y {LEFT} para indicar flecha izquierda.
flag = 1, las teclas son enviadas naturalmente.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si la ventana/control no es encontrado.

Comentarios
ControlSend funciona de manera similar a Send() pero este puede enviar teclas directamente a
una ventana/control, en ves de simplemente a la ventana activa.
ControlSend es solamente poco confiable para comandos de prompts que funcionan de forma
diferente a las ventanas normales(chequea condiciones fsicas de estado ms bien que enviar
mensaje de teclas). Para ventanas normales ControlSend es mucha ms confiable que un
simple send() - y este s enva shift, ctrl, alt etc.
Como mencin en la ayuda de Send el teclado que enva diferentes caracteres cuando en CAPS
LOCK y usando el Shift Key no puede ser simulada. Un ejemplo es el Teclado Czech. Un buen
trabajo es utilizar ControlSetText.
El control puede necesitar primeramente tomar el foco con el comando ControlFocus,
especialmente cuando se refiere al ID del control creado por el script mismo.
Opt("SendKeyDelay",...) altera la duracin de la pausa entre los envos de teclazos.
Opt("SendKeyDownDelay",...) altera la longitud del tiempo en que una tecla es presionada
antes de ser liberada.
Relativo
ControlCommand, Send, ControlSetText, ControlFocus, SendKeyDelay (Option),
SendKeyDownDelay (Option)
Ejemplo
ControlSend("[CLASS:Notepad]", "", "Edit1", "This is a line of text in the notepad window")

510

ControlSetText
Establece texto de un control.
ControlSetText ("ttulo", "texto", ID del control, "nuevo texto" [, flag])
Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

ID del
control

El control para interactuar. Ver Controles.

nuevo texto El nuevo texto para ser establecido en el control.

flag

[opcional] cuando es diferente de 0 (por defecto) forzar a la ventana a redibujarse (actualizarse).

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si la ventana/control no es encontrada.

Relativo
ControlGetText, ControlCommand, ControlSend, SplashTextOn
Ejemplo
WinWait("[CLASS:Notepad]")
ControlSetText("[CLASS:Notepad]", "", "Edit1", "El nuevo texto aqu" )

ControlShow
Muestra un control que ha sido ocultado.
ControlShow ("ttulo", "texto", ID del control)

511

Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

ID del
control

El control para interactuar. Ver Controles.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si la ventana/control no es encontrada.

Relativo
ControlHide, ControlEnable, ControlCommand
Ejemplo
ControlShow("[CLASS:Notepad]", "", "MDIClient1")

ControlTreeView
Enva un comando a un control TreeView32.
ControlTreeView ("ttulo", "texto", ID del control, "comando" [, opciones1 [, opciones2]])
Parmetros
ttulo

El ttulo de la ventana a acceder.

texto

El texto de la ventana a acceder.

ID del
control

El control para interactuar. Ver Controles.

comando

El comando para enviar al control (ver ms abajo).

opciones1

[opcional] Parmetros adicionales requeridos para algunos comandos.

opciones2

[opcional] Parmetros adicionales requeridos para algunos comandos.

512

Valor de Retorno
Depende del comando mostrado en la tabla ms abajo. En caso de un error (como un
comando invlido o la ventana/control no encontrada) entonces @error es fijado a 1.
Comando, Opcin1, Opcin2

Operacin

"Check", "item"

Chequea un tem (si el tem lo soporta).

"Collapse", "item"

Colapsa un tem para ocultar sus hijos.

"Exists", "item"

Devuelve 1 si un tem existe, de otro modo 0.

"Expand", "tem"

Expande un tem para mostrar sus hijos.

"GetItemCount", "tem"

Devuelve el nmero de hijos de un tem seleccionado.

"GetSelected" [, UseIndex]

Devuelve la referencia del item de una seleccin actual


usando la referencia del texto del tem (o la referencia
del ndice si UseIndex es fijado a 1).

"GetText", "tem"

Devuelve el texto de un tem.

"IsChecked"

Devuelve el estado de un tem. 1:chequeado, 0:deschequeado, -1:no es un checkbox (caja de chequeo).

"Select", "tem"

Selecciona un tem.

"Uncheck", "item"

Des-chequea un tem (si el tem lo soporta).

El parmetro "tem" es un parmetro de cadena que es usado para referenciar un item


particular en un treeview usando una combinacin de texto e ndice. Los ndice son de base 0.
Por ejemplo:
Encabezado1
----> Enca1SubItem1
----> Enca1SubItem2
----> Enca1SubItem3
----> ----> Enca1S1SubItem1
Heading2
Heading3

513

Cada "nivel" es separado por un carcter |. Un ndice es precedido por el carcter #. Ejemplos:

tem

Referencia del Item

Encabezado2

"Encabezado2" o "#1"

Enca1SubItem2

"Encabezado1|Enca1SubItem2" o "#0|#1"

Enca1S1SubItem1

"Encabezado1|Enca1SubItem3|Enca1S1SubItem1" o "#0|#2|#0"

Las referencias pueden estar mezcladas "Encabezado1|#1".


Comentarios
Como AutoIt es una aplicacin de 32-bit algunos comandos no estn disponibles cuando
referencia a aplicaciones de 64-bit; un ejemplo es el Explorador bajo Windows 64-bit.
Relativo
ControlCommand
Ejemplo
; Author:

Zedna

#include <GUIConstantsEx.au3>
#include <TreeviewConstants.au3>
#include <WindowsConstants.au3>
$gui = GUICreate("ControlTreeview test", 212, 212)
$treeview = GUICtrlCreateTreeView(6, 6, 200, 160, BitOR($TVS_HASBUTTONS, $TVS_HASLINES,
$TVS_LINESATROOT, $TVS_CHECKBOXES), $WS_EX_CLIENTEDGE)
$h_tree = ControlGetHandle($gui, "", $treeview)
$root = GUICtrlCreateTreeViewItem("Root", $treeview)
$item1 = GUICtrlCreateTreeViewItem("Item 1", $root)
$item2 = GUICtrlCreateTreeViewItem("Item 2", $root)
$item3 = GUICtrlCreateTreeViewItem("Item 3", $root)
$item4 = GUICtrlCreateTreeViewItem("Item 4", $root)
$item41 = GUICtrlCreateTreeViewItem("Item 41", $item4)
$item42 = GUICtrlCreateTreeViewItem("Item 42", $item4)
$item5 = GUICtrlCreateTreeViewItem("Item 5", $root)
GUISetState(@SW_SHOW)
; algunos ejemplos
ControlTreeView ($gui, "", $h_tree, "Expand", "Root")

514

ControlTreeView ($gui, "", $h_tree, "Existe", "Root|Item 4")


ControlTreeView ($gui, "", $h_tree, "Checkeado", "Root|Item 4")
ControlTreeView ($gui, "", $h_tree, "Seleccionado", "Root|Item 4")
ControlTreeView ($gui, "", $h_tree, "Expandido", "Root|Item 4")
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd

StatusbarGetText
Recupera el texto de una barra de estado estndar.
StatusbarGetText ("ttulo" [, "texto" [, parte]])
Parmetros
ttulo

El ttulo de la ventana a revisar.

texto

[opcional] El texto de la ventana a revisar.

parte

[opcional] El nmero de "parte" de la barra de estado a leer - el predefinido es


1. 1 es la primer posible parte y usualmente la nica que contenga mensaje
tiles como "Listo" "Cargando...", etc.

Valor de Retorno
Con xito:

Devuelve el texto ledo.

Al Fallar:

Devuelve "" (cadena vaca) y establece el valor de @error en 1 si no hay texto


que pueda ser ledo.

Comentarios
Esta funcin intenta leer en una barra estndar de estado en una ventana (Control comn de
Microsoft: msctls_statusbar32) Algunos programas usan su propias barras de estado o
versiones especiales del control comn de MS que StatusbarGetText no puede leer. Por
ejemplo, StatusbarText no trabaja en el programa TextPad; sin embargo, en la primera regin
de la barra de estado de TextPad puede ser leda usando ControlGetText("TextPad", "",
"HSStatusBar1").

515

StatusbarGetText puede trabajar en ventanas que estn minimizadas incluso ocultas.


Relativo
ControlGetText, ControlCommand
Ejemplo
AutoItSetOption("WinTitleMatchMode", 2)
$x = StatusbarGetText("Internet Explorer")
MsgBox(0, "Barra de estado de Internet Explorer dice:", $x)

WinActivate
Activa (toma el foco) una ventana.
WinActivate ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana a activar. Ver Para definicin especial de ttulo.

texto

[opcional] El texto de la ventana a activar.

Valor de Retorno
Con xitos

Devuelve el identificador (handle) de la ventana.

Al Fallar

Devuelve 0 si no se encuentra la ventana o no puede ser activada.

Comentarios
Usted puede utilizar la funcin WinActive para revisar si WinActivate ha sido satisfactoria. Si
mltiples ventanas coinciden con el criterio, la ventana activa ms reciente es la activada.
WinActivate funciona en ventanas minimizadas. Sin embargo, una ventana que es "Siempre
visible" podra todava permitir una ventana activada.
@extended contiene informacin adicional acerca de cmo est el proceso de la ventana.
Relativo
WinClose, WinSetState, WinTitleMatchMode (Option), WinKill, WinMove
Ejemplo

516

WinActivate("[CLASS:Notepad]", "")

WinActive
Chequea si una ventana est abierta y ha sido actualmente activada.
WinActive ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana a revisar. Ver Para definicin especial de ttulo.

texto

[opcional] El texto de la ventana a revisar.

Valor de Retorno
Con xitos

Devuelve el identificador (handle) de la ventana si esta activa.

Al Fallar

Devuelve 0 de otro modo.

Relativo
WinExists, WinWait, WinWaitActive, WinWaitClose, WinWaitNotActive, WinTitleMatchMode
(Option)
Ejemplo
If WinActive("[CLASS:Notepad]") Then
MsgBox(0, "", "La ventana est activa")
EndIf

WinClose
Cierra una ventana
WinClose ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana a cerrar. Ver Para definicin especial de ttulo.

517

texto

[opcional] El texto de la ventana a cerrar.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si la ventana no es encontrada.

Comentarios
Esta funcin enva un mensaje de cierre a una ventana, el resultado depende de la ventana
(esta puede preguntar si salvar datos, etc.), para forzar a una ventana a cerrarse, use la funcin
WinKill. Si mltiples ventanas coinciden con el criterio, la ventana activa ms reciente es la
cerrada.
Relativo
WinActivate, WinExists, WinKill, WinSetState, WinTitleMatchMode (Option), ProcessClose,
WinMove
Ejemplo
WinClose("[CLASS:Notepad]", "")

WinDetectHiddenText
Especifica si el texto oculto de la ventana puede ser "visto" para funciones de coincidencia en
ventana.
0 = No detecta texto oculto (por defecto).
1 = Detecta texto oculto.

WinExists
Chequea si una ventana especificada existe.
WinExists ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana a revisar. Ver Para definicin especial de ttulo.

518

texto

[opcional] El texto de la ventana a revisar.

Valor de Retorno
Con xitos

Devuelve 1 si la ventana existe.

Al Fallar

Devuelve 0.

Comentarios
WinExists devolver 1 aun cuando la ventana esta oculta.
Relativo
WinActive, WinWait, WinWaitActive, WinWaitClose, WinWaitNotActive, WinTitleMatchMode
(Option), ProcessExists, WinClose
Ejemplo
If WinExists("[CLASS:Notepad]") Then
MsgBox(0, "", "La ventana existe")
EndIf

WinFlash
Provoca parpadeo de una ventana en la barra de tareas.
WinFlash ("ttulo" [,"texto" [,parpadeo [,espera ]]])
Parmetros
ttulo

El ttulo de la ventana para leer. Ver Para definicin especial de ttulo.

texto

[opcional] El texto de la ventana a leer.

parpadeo

[opcional] cantidad de veces que parpadea la ventana. Por defecto es 4.

espera

[opcional] El tiempo en milisegundos de espera entre cada parpadeo. Por


defecto es 500 ms.

Valor de Retorno
Ninguno
Comentarios
519

Esta funcin efectiva para captar la atencin del usuario!


Relativo
WinSetState
Ejemplo
; Parpadea la ventana 4 veces con una pausa de medio segundo
WinFlash("[CLASS:Notepad]","", 4, 500)

WinGetCaretPos
Devuelve las coordenadas de intercalamiento para la ventana en primer plano.
WinGetCaretPos ( )
Parmetros
Ninguno
Valor de Retorno
Con xitos

Devuelve un arreglo de 2 dimensiones conteniendo la siguientes informacin:


$arreglo[0] = X coordenada
$arreglo[1] = Y coordenada

Al Fallar

Establece @error a 1.

Comentarios
WinGetCaretPos puede no devolver un valor exacto para aplicaciones con Interfaces de
Mltiples Documentos(MDI) si el modo CaretCoordMode es utilizado. Ver ejemplo para una
demostracin. Nota: Algunos aplicaciones reportan coordenadas estticas indistintamente de
su posicin de intercalamiento.
Relativo
CaretCoordMode (Option)
Ejemplo
$a = WinGetCaretPos()
If Not @error Then ToolTip("Primer mtodo de posicionamiento", $a[0], $a[1])
sleep(2000)
$b = _CaretPos()
If Not @error Then ToolTip("Segundo mtodo de posicionamiento", $b[0], $b[1])
sleep(2000)
520

; Mtodo ms confiable para obtener las coordenadas del carro en MDI de editores de texto..
Func _CaretPos()
Local $x_adjust = 5
Local $y_adjust = 40
Opt("CaretCoordMode", 0)
;modo relativo
Local $c = WinGetCaretPos()
;coordenadas del carro relativas
Local $w = WinGetPos("")
;coordenadas de ventana
Local $f = ControlGetFocus("","") ;regin del texto "handle"
Local $e = ControlGetPos("", "", $f) ;coordenadas de la regin del texto
Local $t[2]
If IsArray($c) and IsArray($w) and IsArray($e) Then
$t[0] = $c[0] + $w[0] + $e[0] + $x_adjust
$t[1] = $c[1] + $w[1] + $e[1] + $y_adjust
Return $t ;coordenadas absolutas de la panatalla para el mouse
Else
SetError(1)
EndIf
EndFunc

WinGetClassList
Captura las clases internas de una ventana.
WinGetClassList ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana para leer. Ver Para definicin especial de ttulo.

texto

[opcional] El texto de la ventana a leer.

Valor de Retorno
Con xitos

Devuelve una cadena conteniendo la clase de ventana leda.

Al Fallar

Devuelve "" y fija @error a 1 si la ventana no coincide con el criterio.

Comentarios
Los nombres de Clases son separados por caracteres de retorno de lnea (@LF). La funcin
WinGetClassList funciona en ventanas minimizadas y ocultas. Textos de hasta 64 KB pueden
ser devueltos. Si mltiples ventanas coinciden con el criterio, Las clases son ledas desde la
ventana activa ms reciente.
521

Relativo
WinGetText, ControlCommand
Ejemplo
$text = WinGetClassList("[CLASS:Notepad]", "")
MsgBox(0, "Texto ledo:", $text)

WinGetClientSize
Captura el tamao de una ventana determinada de rea cliente.
WinGetClientSize ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana para leer. Ver Para definicin especial de ttulo.

texto

[opcional] El texto de la ventana a leer.

Valor de Retorno
Con xitos

Devuelve un arreglo de 2 dimenciones conteniendo la siguientes informacin:


$array[0] = Ancho de la ventana de rea cliente
$array[1] = Altura de la ventana de rea cliente

Al Fallar

Devuelve 0 y fija @error un 1 si la ventana no es encontrada.

Comentarios
Si la ventana es minimizada, el ancho y el alto devuelto es cero. Sin embargo, WinGetClientSize
funciona correctamente en ventanas ocultas (no minimazada) . Si la ventana tiene el ttulo
"Program Manager", la funcin devolver el tamao del escritorio. Si mltiple ventanas
coinciden con el criterio, la ventana activa ms reciente es usada.
Relativo
WinGetPos, WinMove
Ejemplo
$size = WinGetClientSize("[active]")
MsgBox(0, "El tamao de la ventana hija activa es (ancho,alto):", $size[0] & " " & $size[1])
522

WinGetHandle
Devuelve el identificador interno de una ventana.
WinGetHandle ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana para leer. Ver Para definicin especial de ttulo.

texto

[opcional] El texto de la ventana a leer.

Valor de Retorno
Con xitos

Devuelve el identificador interno de una ventana.

Al Fallar

Devuelve "" (cadena vaca) y establece @error a 1 si la ventana no coincide con


el criterio.

Comentarios
Esta funcin le permite a usted usar identificadores (handles) para especificar ventanas ms
que solamente el "ttulo" y "texto".
La ventaja es que si usted obtiene el identificador puede acceder a la ventana an cuando su
ttulo haya cambiado.
Relativo
WinSetTitle, GUICreate, WinList
Ejemplo
; Identifica la ventana del notepad que contiene el texto "esta" y obtiene el identificador
(handle) de la misma
; Cambia el WinTitleMatchMode que ahora soporta classnames y handles (identificadores)
AutoItSetOption("WinTitleMatchMode", 4)
; Obtiene el identificador (handle) de la ventana del notepad que contiene "this one"
$handle = WinGetHandle("classname=Notepad", "esta")
If @error Then
MsgBox(4096, "Error", "No se encuentra la ventana correcta")
Else
; Enva algunos textos directamente al control Edit de la ventana

523

ControlSend($handle, "", "Edit1", "AbCdE")


EndIf

WinGetPos
Devuelve la posicin y tamao de una ventana dada.
WinGetPos ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana para leer. Ver Para definicin especial de ttulo.

texto

[opcional] El texto de la ventana a leer.

Valor de Retorno
Con xitos

Devuelve un arreglo de 4 elementos conteniendo las siguientes informaciones:


$arreglo[0] = Posicin X
$arreglo[1] = Posicin Y
$arreglo[2] = Ancho
$arreglo[3] = Alto

Al Fallar

Devuelve 0 y fija @error a 1 si la ventana no es encontrada.

Comentarios
WinGetPos devuelve nmeros negativos como -32000 para ventanas minimizadas, pero
funciona bien con ventanas ocultas (no minimizadas).
Si es usado el ttulo de ventana "Program Manager", la funcin devolver el tamao del
escritorio. Si mltiples ventanas coinciden con el criterio, la ventana activa ms reciente es
usada.
Relativo
WinGetClientSize, WinMove, WinGetState
Ejemplo
$size = WinGetPos("[active]")

524

MsgBox(0, "estado de la ventana activa (x,y,ancho,alto):", $size[0] & " " & $size[1] & " " &
$size[2] & " " & $size[3])

WinGetProcess
Devuelve el ID del proceso (PID) asociado a una ventana.
WinGetProcess ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana para leer. Ver Para definicin especial de ttulo.

texto

[opcional] El texto de la ventana para leer.

Valor de Retorno
Con xitos

Devuelve el nmero ID del proceso (PID).

Al Fallar

Devuelve -1.

Relativo
ProcessWait, ProcessWaitClose, ProcessList
Ejemplo
Run("[Link]")
$pid = WinGetProcess("[CLASS:Notepad]")
MsgBox(4096, "PID es", $pid)

WinGetState
Devuelve el estado de una ventana dada.
WinGetState ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana para leer. Ver Para definicin especial de ttulo.

texto

[opcional] El texto de la ventana para leer.

525

Valor de Retorno
Con xitos

Devuelve un valor indicando el estado de la ventana. Mltiples valores son


adicionados, use BitAND() para examinar la parte que le interesa:
1 = Ventana existe
2 = Ventana es visible
4 = Ventana est habilitada
8 = Ventana activa
16 = Ventana minimizada
32 = Ventana maximizada

Al Fallar

Devuelve 0 y establece @error a 1 si la ventana no es encontrada.

Relativo
BitAND, WinGetPos
Ejemplo
; Revisa si una nueva ventana del Notepad es minimizada
$state = WinGetState("[CLASS:Notepad]", "")
; Si es "minimizada" entonces?
If BitAnd($state, 16) Then
MsgBox(0, "Example", "Ventana minimizada")
EndIf

WinGetText
Devuelve el texto de una ventana.
WinGetText ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana para leer. Ver Para definicin especial de ttulo.

texto

[opcional] El texto de la ventana para leer.

526

Valor de Retorno
Con xitos

Devuelve una cadena conteniendo el texto de la ventana leda.

Al Fallar

Devuelve 0 si el ttulo no coincide.

Comentarios
Hasta 64KB de texto pueden ser devueltos. WinGetText funciona en ventanas minimizadas,
pero solo puede funcionar en ventanas ocultas si AutoItSetOption("WinDetectHiddenText", 1)
Si mltiples ventanas coinciden con el criterio para WinGetText, la informacin de la ventana
ms recientemente abierta es devuelto.
Use WinGetText("[active]") el texto de la ventana activa.
Relativo
WinGetTitle, ControlGetText, WinGetClassList
Ejemplo
$text = WinGetText("[CLASS:Notepad]", "")
MsgBox(0, "Texto ledo:", $text)

WinGetTitle
Devuelve el ttulo completo de la ventana.
WinGetTitle ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana para leer. Ver Para definicin especial de ttulo.

texto

[opcional] El texto de la ventana para leer.

Valor de Retorno
Con xitos

Devuelve una cadena conteniendo el ttulo completo de la ventana.

Al Fallar

Devuelve el nmero 0 si el ttulo no coincide.

Comentarios

527

WinGetTitle("[active]") devuelve el ttulo de la ventana activa. WinGetTitle funciona en


ventanas minimizadas y ocultas. Si mltiples ventanas coinciden con el criterio, la ventana ms
recientemente activa es usada.
Relativo
AutoItWinGetTitle, WinGetText, WinSetTitle, WinTitleMatchMode (Option)
Ejemplo
$title = WinGetTitle("[CLASS:Notepad]", "")
MsgBox(0, "Ttulo completo:", $title)

WinKill
Fuerza una ventana a cerrar.
WinKill ("ttulo" [, "texto"])
Parmetros
ttulo

El ttulo de la ventana a cerrar. Ver Para definicin especial de ttulo.

texto

[opcional] El texto de la ventana para cerrar.

Valor de Retorno
Ninguno. (Siempre devuelve 1 indistintamente de lo que ocurra)
Comentarios
La diferencia entre este funcin y WinClose es que WinKill termina forzadamente la ventana si
esta no se cierra. Consecuentemente, un usuario puede no tener tiempo para interactuar con
la posible ventana de dilogo de guardar los datos. Aunque WinKill puede trabajar en ventanas
minimizadas y ocultas, algunas ventanas (Explorador de Windows) slo pueden ser terminadas
utilizando WinClose.
Relativo
WinActivate, WinClose, WinSetState, ProcessClose
Ejemplo
WinKill("[CLASS:Notepad] ", "")

528

WinList
Devuelve una lista de ventanas.
WinList (["ttulo" [, "texto"]])
Parmetros
ttulo

[opcional] El ttulo de la ventana para leer.

texto

[opcional] El texto de la ventana para leer.

Valor de Retorno
Devuelve un arreglo de ventanas coincidentes e identificadores.
Comentarios
Si el ttulo y el texto no son devueltos entonces se devuelven todas las ventanas de nivel
superior.
El arreglo devuelto es bidimensional y contiene lo siguientes elementos:
$arreglo[0][0] = Nmero de ventanas de devueltas
$arreglo[1][0] = Ttulo de la primera ventana
$arreglo[1][1] = Identificador de la primera ventana(HWND)
$arreglo[2][0] = Ttulo de la segunda ventana
$arreglo[2][1] = Identificador de la segunda ventana(HWND)
...
$arreglo[n][0] = Ttulo de la ensima ventana
$arreglo[n][1] = Identificador de la ensima ventana(HWND)
Relativo
WinGetHandle
Ejemplo
$var = WinList()
529

For $i = 1 to $var[0][0]
; Solo muestra las ventanas visibles que tienen ttulos
If $var[$i][0] <> "" AND IsVisible($var[$i][1]) Then
MsgBox(0, "Detalles", "Ttulos=" & $var[$i][0] & @LF & "Identificador=" & $var[$i][1])
EndIf
Next
Func IsVisible($handle)
If BitAnd( WinGetState($handle), 2 ) Then
Return 1
Else
Return 0
EndIf
EndFunc

WinMenuSelectItem
Invoca el item de un men dentro de una ventana.
WinMenuSelectItem ("ttulo", "texto", "item" [, "item" [, "item" [, "item" [, "item" [, "item"
[, "item"]]]]]])
Parmetros
ttulo

El ttulo de la ventana a leer. Ver Para definicin especial de ttulo.

texto

El texto de la ventana a leer

item

Texto del men item

item

[opcional] Texto del submen item

item

[opcional] Texto del submen item

item

[opcional] Texto del submen item

item

[opcional] Texto del submen item

item

[opcional] Texto del submen item

item

[opcional] Texto del submen item

Valor de Retorno
Con xitos

Devuelve 1.
530

Al Fallar

Devuelve 0 si el menu no es encontrado.

Comentarios
Usted debe notar que los item de men que son guiones bajo (_) actualmente contienen el
caracter & para indicar guin bajo. De esta forma, el men item File requerir tener el texto
"&File", y Convert requerir "Con&vert" Usted puede acceder a un men item de nivel 6 como
mximo; y la ventana puede ser inactiva, minimizada, y/o oculta.
WinMenuSelectItem trabaja solamente con mens estndares. Desafortunadamente, muchos
menus todava son actualmente escritos o "simulan" barras de herramientas para ser mens.
Esta funcin es certera para la mayora de aplicaciones directamente de Microsoft.

Relativo
ControlCommand, Send
Ejemplo
; Esto seleccionar File, Page Setup en notepad
WinMenuSelectItem("[CLASS:Notepad] ", "", "&File", "Page Set&up..." )

WinMinimizeAll
Minimiza todas las ventanas.
WinMinimizeAll ( )
Parmetros
Ninguno.
Valor de Retorno
Ninguno.
Comentarios
Send("#m") es una posible alternativa.
Relativo
WinMinimizeAllUndo, WinSetState
Ejemplo
WinMinimizeAll()

531

WinMinimizeAllUndo
Deshace la operacin de la funcin WinMinimizeAll.
WinMinimizeAllUndo ( )
Parmetros
Ninguno
Valor de Retorno
Ninguno

Comentarios
Send("#+m") es una posible alternativa.
Relativo
WinMinimizeAll, WinSetState
Ejemplo
WinMinimizeAllUndo()

WinMove
Mueve y/o cambia el tamao de una ventana.
WinMove ("ttulo", "texto", x, y [, ancho [, altura[, velocidad]]])
Parmetros
ttulo

El ttulo de la ventana a mover/redimensionar. Ver Definicin de Ttulo especial.

texto

El texto de la ventana a mover/redimensionar.

Movimiento en las coordenadas X.

Movimiento en las coordenadas X.

ancho

[opcional] Nuevo ancho de la ventana.

532

altura

[opcional] Nuevo alto de la ventana.

velocidad

[opcional] la velocidad al mover la ventana en el rango de 1 (rpido) a 100


(lento). Si no es definido se mover al instante.

Valor de Retorno
Con xitos

Devuelve el identificador (handle) de la ventana.

Al Fallar

Devuelve 0 si la ventana no es encontrada.

Comentarios
WinMove no tiene efecto en ventanas minimizadas, pero WinMove funciona en ventanas
ocultas.
Si el alto o el ancho son pequeos (o negativos), entonces la ventana tendr como mnimo 112
x 27 pixeles. Si el alto o el ancho son grandes, la ventana no sobrepasar los lmites de
[12+@DesktopWidth] x [12+@DesktopHeight] pixeles.
Valores negativos son permitidos para las coordenadas X y Y. En efecto, usted puede mover
una ventana fuera de la pantalla; y si el programa de la ventana recuerda la ltima posicin, la
ventana aparecer ubicada en la esquina (pero completamente en pantalla) la prxima vez que
usted ejecute el programa.
Si mltiples ventanas coinciden con el criterio, la ventana ms recientemente activa ser
tomada.
Si los valores de X y Y son iguales a Palabra clave por defecto no ocurre movimiento,
simplemente cambia de tamao.
Cuando se usa la velocidad el movimiento es dado con el nuevo tamao.
Relativo
WinActivate, WinClose, WinGetClientSize, WinGetPos, WinSetState
Ejemplo
WinMove("[CLASS:Notepad]", "", 0, 0, 200, 200)

WinSearchChildren
Permite las rutinas de bsqueda de ventana, busque ventanas dependientes (ventana hija) como
ventanas de nivel sobresaliente (top-level).

533

0 = Slo busca las ventanas de nivel mayor (por defecto)


1 = Busca en todas (nivel mayor y dependientes)

WinSetOnTop
Cambia una ventana colocndole el atributo "Siempre Visible" (Always On Top)
WinSetOnTop ("ttulo", "texto", bandera)
Parmetros
ttulo

El ttulo de la ventana a afectar. Ver Para definicin especial de ttulo

texto

El texto de la ventana por afectar.

bandera

Determina si la ventana debe tener el valor de "Siempre visible" ("TOPMOST")


establecido.
1= establecer una bandera superior, 0 = remover el valor anterior.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si la ventana no es encontrada.

Comentarios
Los programas que adicionan un men contextual con la opcin "Always On Top" no pueden
actualizar esta entrada del men para reflejarlo, AutoIt- induce el cambio al estado TOPMOST
Relativo
WinSetState
Ejemplo
WinSetOnTop("[CLASS:Notepad]", "", 1)

WinSetState
Muestra, Oculta, minimiza, maximiza, o restaura una ventana.

534

WinSetState ("ttulo", "texto", bandera)


Parmetros
ttulo

El ttulo de la ventana a mostrar. Ver Para definicin especial de ttulo

texto

El texto de la ventana para mostrar.

bandera

El modo en que se "mostrar" el programa una vez ejecutado:


@SW_HIDE = Ventana oculta
@SW_SHOW = Muestra una ventana previamente oculta
@SW_MINIMIZE = Ventana minimizada
@SW_MAXIMIZE = Ventana maximizada
@SW_RESTORE = Deshace una operacin de maximizacin o minimizacin
@SW_DISABLE = Deshabilita la ventana
@SW_ENABLE = Habilita la ventana

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si la ventana no es encontrada.

Comentarios
Si mltiples ventanas coinciden con el criterio, la ms recientemente activa es usada.
@SW_MINIMIZE y @SW_MAXIMIZE siempre trabajan en ventanas de dilogo modal.
Relativo
WinActivate, WinClose, ControlHide, WinFlash, WinKill, WinMinimizeAll, WinMinimizeAllUndo,
WinMove, WinSetOnTop
Ejemplo
WinSetState("[CLASS:Notepad]", "", @SW_HIDE)
Sleep(3000)
WinSetState("[CLASS:Notepad]", "", @SW_SHOW)

WinSetTitle
Cambia el ttulo de una ventana.
WinSetTitle ("ttulo", "texto", "Nuevottulo")
535

Parmetros
ttulo

El ttulo de la ventana a cambiar. Ver Para definicin especial de ttulo

texto

El texto de la ventana a cambiar.

Nuevottulo

El nuevo ttulo que tendr la ventana.

Valor de Retorno
Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si la ventana no es encontrada.

Comentarios
Si mltiples ventanas coinciden con el criterio la ms recientemente activa es usada.
Relativo
AutoItWinSetTitle, WinGetTitle, WinTitleMatchMode (Option), WinGetHandle
Ejemplo
WinSetTitle("[CLASS:Notepad] ", "", "My New Notepad")

WinTextMatchMode
Altera el mtodo que es usado para coincidir con el texto de la ventana durante las
operaciones de bsqueda de ventana.
1 = Completo / modo lento (por defecto)
2 = Modo rpido
En modo rpido, AutoIt puede usualmente slo "ver" en el texto de dilogo, texto en botn y
ttulos de algunos controles. En el modo por defecto mucho ms texto puede ser visto (por
instancia el contenido de la ventana de Notepad).
Si tiene problemas de rendimiento cuando realiza muchas bsquedas de ventana, puede que
ayude utilizar el modo rpido.

WinSetTrans

536

Establece el nivel de trasparencia de una ventana. (Windows 2000/XP o superior)


WinSetTrans ("ttulo", "texto", transparencia)
Parmetros
ttulo

El ttulo de la ventana a cambiar. Ver Para definicin especial de ttulo

texto

El texto de la ventana a cambiar.

transparencia

Un nmero en el rango de 0 - 255. Para el menor nmero, la mayor


transparencia. 255 = Solido, 0 = Invisible.

Valor de Retorno
Con xitos

Devuelve valor diferente de cero.

Al Fallar

Devuelve 0, @error ser establecido a 1 si la funcin no es soportada en el SO.

Comentarios
Requiere Windows 2000/XP o superior. La configuracin del color de la pantalla debe ser
mayor o igual a 16-bit.
Relativo
Ninguno.
Ejemplo
Opt("WinTitleMatchMode", 2) ; Subcadenas coincidentes
WinSetTrans("Notepad", "", 170) ; Hacer la ventana del Notepad semi transparente

WinTitleMatchMode
Altera el mtodo que es usado para coincidir con los ttulos de las ventanas.
1 = Coincide con el ttulo desde el inicio (por defecto)
2 = Coincide cualquier cadena en el ttulo
3 = Coincidencia exacta de ttulo
4 = Modo avanzado, ver Ttulos de ventanas y texto (Avanzados)
-1 a -4 = fuerza coincidencia en minsculas de acuerdo con otro tipo de coincidencia.

537

WinWait
Pausa la ejecucin del script hasta que la ventana solicitada exista.
WinWait ("ttulo" [, "texto" [, Tiempo espera]])
Parmetros
ttulo

El ttulo de la ventana a revisar. Ver Para definicin especial de ttulo

texto

[opcional] El texto de la ventana a revisar.

Tiempo
espera

[opcional] Tiempo de espera en segundos.

Valor de Retorno
Con xitos

Devuelve el identificador (handle) de la ventana solicitada.

Al Fallar

Devuelve 0 si el tiempo lmite es alcanzado.

Relativo
WinActive, WinExists, WinWaitActive, WinWaitClose, WinWaitNotActive, WinWaitDelay
(Option), ProcessWait
Ejemplo
;Espera por una ventana "[CLASS:Notepad]" para salir
Run("notepad")
WinWait("[CLASS:Notepad]")
;Espera un mximo de 5 segundos "[CLASS:Notepad]" para salir
WinWait("[CLASS:Notepad]", "", 5)

WinWaitActive
Pausa la ejecucin de un script hasta que la ventana solicitada se activa.
WinWaitActive ("ttulo" [, "texto" [, Tiempo espera])
Parmetros
538

ttulo

El ttulo de la ventana a revisar. Ver Para definicin especial de ttulo

texto

[opcional] El texto de la ventana a revisar.

Tiempo
espera

[opcional] Tiempo espera en segundos.

Valor de Retorno
Con xitos

Devuelve el identificador (handle) de la ventana solicitada.

Al Fallar

Devuelve 0 si el tiempo lmite es alcanzado.

Relativo
WinActive, WinExists, WinWait, WinWaitClose, WinWaitNotActive, WinWaitDelay (Option),
ProcessWait
Ejemplo
;Espera por la ventana "[CLASS:Notepad]" para existir y estar activa
WinWaitActive("[CLASS:Notepad]")
;Epera un mximo de 5 segundos por "[CLASS:Notepad]" para existir y estar activa
WinWaitActive("[CLASS:Notepad]", "", 5)

WinWaitClose
Pausa la ejecucin del script hasta que la ventana solicitada no exista.
WinWaitClose ("ttulo" [, "texto" [, Tiempo espera]])
Parmetros
ttulo

El ttulo de la ventana a revisar. Ver Definicin de ttulo especial

texto

[opcional] El texto de la ventana a revisar.

Tiempo
espera

[opcional] Tiempo espera en segundos.

Valor de Retorno

539

Con xitos

Devuelve 1.

Al Fallar

Devuelve 0 si el tiempo lmite es alcanzado.

Relativo
WinActive, WinExists, WinWait, WinWaitActive, WinWaitNotActive, WinWaitDelay (Option),
ProcessWaitClose
Ejemplo
;Wait for the window "Untitled" to not exist
WinWaitClose("Untitled")
;Wait a maximum of 5 seconds for "Untitled" to not exist
WinWaitClose("Untitled", "", 5)

WinWaitDelay
Altera cmo un script debera hacer una breve pausa despus de una operacin exitosa
relacionada con [Link] en milisegundos a pausar (por defecto=250).

WinWaitNotActive
Pausa la ejecucin de un scripts hasta que la ventana especificada no est activa.
WinWaitNotActive ("ttulo" [, "texto" [, tiempo de expiracin]])
Parmetros
ttulo

El ttulo de la ventana a revisar. Ver Definicin de ttulo especial

texto

[opcional] El texto de la ventana a revisar.

tiempo final [opcional] Tiempo de expiracin en segundos.

Valor de Retorno
Con xitos:

Devuelve 1.

Al Fallar:

Devuelve 0 si ya transcurri el tiempo lmite para esperar el texto.

540

Comentarios
El script busca o compara una ventana coincidente cada 250 milisegundos o algo as.
Relativo
WinActive, WinExists, WinWait, WinWaitActive, WinWaitClose, WinWaitDelay (Option)
Ejemplo
;Wait for the window "Untitled" to not be active
WinWaitNotActive("Untitled")
;Wait a maximum of 5 seconds for "Untitled" to not be active
WinWaitNotActive("Untitled", "", 5)

541

APNDICE
Limitaciones/valores por defectos en AutoIt3

lmites AutoIt3

Valores

Descripcin

MAX_LINESIZE

4095 Tamao mximo de una lnea de script

STRBUFFER

4095 Tamao del buffer de cadena

MAX_ENVSIZE

32767 Tamao mximo de las variable ENV (entorno)

WINTEXTBUFFER

32767

IDLE

10 ms Nmero en ms para espera cuando idling

HOTKEYQUEUESIZE

MAXEXECUTERECURSE

64

384

GetWindowText falla bajo 95 si >65535, WM_GETTEXT


fortuitamente falla si > 32767

Nmero mximo de pulsaciones de teclas que pueden


ser almacenados
Nmero mximo de veces que la funcin Execute() puede
repetirse a s misma

GUI_MAXWINDOWS

1024 Nmero mximo de ventanas simultneas

GUI_MAXCONTROLS

4093 Nmero mximo de controles en una GUI

GUI_MAXCOLOURS

32 Nmero mximo de colores en panel cacheados


Nmero mximo de puntos por pgina de informacin
grfica

GUI_MAXPOINTS

256

COM_MAXEVENT

64

VAR_SUBSCRIPT_MAX

64 Nmero mximo de dimensiones en un arreglo

MAIN_TIMER_DELAY

El tiempo de refrescamiento para la condicin de


750 ms oculto/parpadeo/animacin del cono Tray, es cada
750ms

Nmero mximo de eventos COM que pueden ser


buffereados

542

CMDLINE_MAXPARAMS

63 Nmero mximo de parmetros

CMDLINEPARAM_MAXLEN
TRAY_MAXITEMS

4096 Cada parmetro puede tener algunos caracteres


505 Nmero mximo de tems en el tray men

TRAY_MAXEVENT

32

Nmero mximo de eventos que pueden ser


almacenados

TRAY_TOOLTIPWIDTH

64

Nmero mximo de caracteres mostrados en un tray


tooltip

valores por defecto

Valores

ADLIB delay

250 ms

Descripcin
Espera por defecto en ms entre desencadenadores (
triggers) ADLIB. Puede ser definido por AdlibRegister()
Los siguientes defectos pueden ser cambiados con Opt()

MouseClickDelay

10 ms Tiempo entre clics del mouse

MouseClickDownDelay

10 ms Tiempo de clic mantenido

MouseClickDragDelay

250 ms Espera entre inicio y fin de la operacin drag

TCPTimeout

100 ms Tiempo antes que la funcin TCP sea abortada

Cdigos de Caracteres ASCII


Esta lista resulta til para las funciones Asc y Chr . Tomado del Juego de caracteres ASCII
Caracteres de control (la mayora son imprimibles; los ms usados son resaltados en
amarillo.)
Carcter

Dec

Hex

Oct

Descripcin

NUL

00

000

Carcter Nulo

SOH

01

001

Inicio de cabecera, = interruptor de consola

543

STX

02

002

Inicio de texto, modo de mantenimiento en consola HP

ETX

03

003

Fin de texto

EOT

04

004

Fin de Transmisin, distinto de ETB

ENQ

05

005

Solicitud de informacin, dirigido con ACK; antiguo


control flotante de HP

ACK

06

006

Confirmacin, limpia el carcter ENQ

BEL

07

007

Timbre, seal audible... ( beep por defecto en Windows)

BS

08

010

Retroceso, trabaja en computadora/terminal HP

HT

09

011

Tabulacin horizontal, mueve hacia el prximo tab stop

LF

10

0a

012

Salto de lnea

VT

11

0b

013

Tabulacin Vertical

FF

12

0c

014

Salto de forma, Salto de pgina

CR

13

0d

015

Retorno de carro

SO

14

0e

016

Terminar modo Mayscula, fijar carcter alternado

SI

15

0f

017

Iniciar modo mayscula, fijar resumen de carcter por


defecto

DLE

16

10

020

Escape del enlace de datos

DC1

17

11

021

XON, con XOFF para pausar listado; ":okay to send"

DC2

18

12

022

Control dispositivo 2, control flotante de modo-bloque

DC3

19

13

023

XOFF, con XON es TERM=18 control flotante

DC4

20

14

024

Control dispositivo 4

NAK

21

15

025

Confirmacin negativa

SYN

22

16

026

Sincronizacin de la comunicacin

544

ETB

23

17

027

Fin de bloque de trasmisin, distinto de EOT

CAN

24

18

030

Lnea cancelar, MPE ecos !!!

EM

25

19

031

Fin medio, Interruptor Control-Y

SUB

26

1a

032

Remplazar

ESC

27

1b

033

Escape, el siguiente carcter no se repite

FS

28

1c

034

Separador de archivos

GS

29

1d

035

Separador de grupos

RS

30

1e

036

Separador de registros, terminador de modo-Bloque

US

31

1f

037

Separador de unidades

Caracteres imprimibles (caracteres estndares)


Carcter

Dec

Hex

Oct

Descripcin

32

20

040

Espacio

33

21

041

Signo de exclamacin

"

34

22

042

Signo de Comillas (&quot; in HTML)

35

23

043

Cross hatch (signo de nmero)

36

24

044

Signo de dolar

37

25

045

Signo de porcentaje

&

38

26

046

Ampersand

39

27

047

Comilla simple de cierre (apstrofe)

40

28

050

Parntesis de apertura

41

29

051

Parntesis de cierre

545

42

2a

052

Asterisco (star, multiplicacin

43

2b

053

Suma

44

2c

054

Coma

45

2d

055

Guion, dash, menos

46

2e

056

Punto

47

2f

057

Slant (barra oblicua, divisin)

48

30

060

Cero

49

31

061

Uno

50

32

062

Dos

51

33

063

Tres

52

34

064

Cuatro

53

35

065

Cinco

54

36

066

Seis

55

37

067

Siete

56

38

070

Ocho

57

39

071

Nueve

58

3a

072

Doble puntos

59

3b

073

Punto y coma

<

60

3c

074

Signo de menor que

61

3d

075

Signo de Igual

>

62

3e

076

Signo de mayor que

63

3f

077

Signo de interrogacin

546

64

40

100

Signo de arroba

65

41

101

Mayscula A

66

42

102

Mayscula B

67

43

103

Mayscula C

68

44

104

Mayscula D

69

45

105

Mayscula E

70

46

106

Mayscula F

71

47

107

Mayscula G

72

48

110

Mayscula H

73

49

111

Mayscula I

74

4a

112

Mayscula J

75

4b

113

Mayscula K

76

4c

114

Mayscula L

77

4d

115

Mayscula M

78

4e

116

Mayscula N

79

4f

117

Mayscula O

80

50

120

Mayscula P

81

51

121

Mayscula Q

82

52

122

Mayscula R

83

53

123

Mayscula S

84

54

124

Mayscula T

85

55

125

Mayscula U

547

86

56

126

Mayscula V

87

57

127

Mayscula W

88

58

130

Mayscula X

89

59

131

Mayscula Y

90

5a

132

Mayscula Z

91

5b

133

Llave de cierre

92

5c

134

slash inverso (Backslash)

93

5d

135

Llave de cierre inversa

94

5e

136

Signo de intercalacin (acento circunflejo)

95

5f

137

Underscore (raya)

96

60

140

Comilla simples de apertura

97

61

141

Minscula a

98

62

142

Minscula b

99

63

143

Minscula c

100

64

144

Minscula d

101

65

145

Minscula e

102

66

146

Minscula f

103

67

147

Minscula g

104

68

150

Minscula h

105

69

151

Minscula i

106

6a

152

Minscula j

107

6b

153

Minscula k

548

108

6c

154

Minscula l

109

6d

155

Minscula m

110

6e

156

Minscula n

111

6f

157

Minscula o

112

70

160

Minscula p

113

71

161

Minscula q

114

72

162

Minscula r

115

73

163

Minscula s

116

74

164

Minscula t

117

75

165

Minscula u

118

76

166

Minscula v

119

77

167

Minscula w

120

78

170

Minscula x

121

79

171

Minscula y

122

7a

172

Minscula z

123

7b

173

Corchete de apertura

124

7c

174

Lnea vertical

125

7d

175

Corchete de cierre

126

7e

176

Tilde (aproximacin)

127

7f

177

Borrar (rubout), cross-hatch box

Juego de caracteres extendidos (ANSI)

549

Carcter

Dec

Hex

Oct

Descripcin

128

80

200

129

81

201

130

82

202

131

83

203

132

84

204

133

85

205

134

86

206

135

87

207

136

88

210

137

89

211

138

8A

212

139

8B

213

140

8C

214

141

8D

215

142

8E

216

143

8F

217

Nota: no es mostrado en este archivo HTML compilado

144

90

220

Nota: no es mostrado en este archivo HTML compilado

145

91

221

146

92

222

147

93

223

148

94

224

Nota: no es mostrado en este archivo HTML compilado

Nota: no es mostrado en este archivo HTML compilado

550

149

95

225

150

96

226

151

97

227

152

98

230

153

99

231

154

9A

232

155

9B

233

156

9C

234

157

9D

235

158

9E

236

159

9F

237

160

A0

240

161

A1

241

162

A2

242

163

A3

243

164

A4

244

165

A5

245

166

A6

246

167

A7

247

168

A8

250

169

A9

251

170

AA

252

Nota: no es mostrado en este archivo HTML compilado

551

171

AB

253

172

AC

254

173

AD

255

174

AE

256

175

AF

257

176

B0

260

177

B1

261

178

B2

262

179

B3

263

180

B4

264

181

B5

265

182

B6

266

183

B7

267

184

B8

270

185

B9

271

186

BA

272

187

BB

273

188

BC

274

189

BD

275

190

BE

276

191

BF

277

192

C0

300

Nota: no es mostrado en este archivo HTML compilado

552

193

C1

301

194

C2

302

195

C3

303

196

C4

304

197

C5

305

198

C6

306

199

C7

307

200

C8

310

201

C9

311

202

CA

312

203

CB

313

204

CC

314

205

CD

315

206

CE

316

207

CF

317

208

D0

320

209

D1

321

210

D2

322

211

D3

323

212

D4

324

213

D5

325

214

D6

326

553

215

D7

327

216

D8

330

217

D9

331

218

DA

332

219

DB

333

220

DC

334

221

DD

335

222

DE

336

223

DF

337

224

E0

340

225

E1

341

226

E2

342

227

E3

343

228

E4

344

229

E5

345

230

E6

346

231

E7

347

232

E8

350

233

E9

351

234

EA

352

235

EB

353

236

EC

354

554

237

ED

355

238

EE

356

239

EF

357

240

F0

360

241

F1

361

242

F2

362

243

F3

363

244

F4

364

245

F5

365

246

F6

366

247

F7

367

248

F8

370

249

F9

371

250

FA

372

251

FB

373

252

FC

374

253

FD

375

254

FE

376

255

FF

377

555

Listado de CLSID
Para su uso con FileOpenDialog, FileSaveDialog, o FileSelectFolder.
Listado Obtenido de Gua del Registro para Windows en WinGuides Network.
Nota: No todos los valores funcionan como parmetro para las funciones de AutoIt.
Ejemplo: FileSelectFolder ("Escoger carpeta.", "::{00000000-1080-F9E5-63114162E05A6BEE}", 1)
Directorio

Valor para el parmetro de directorio y ficheros

Herramientas Administrativas
(Administrative Tools)

"::{D20EA4E1-3957-11d2-A40B-0C5020524153}"

Briefcase

"::{85BBD92O-42A0-1O69-A2E4-08002B30309D}"

Panel de Control (Control Panel)

"::{21EC2O2O-3AEA-1O69-A2DD-08002b30309d}"

Fuentes (Fonts)

"::{D20EA4E1-3957-11d2-A40B-0C5020524152}"

Historial (History)

"::{FF393560-C2A7-11CF-BFF4-444553540000}"

Inbox

"::{00020D75-0000-0000-C000-000000000046}"

Red de Microsoft (Microsoft Network)

"::{00028B00-0000-0000-C000-000000000046}"

Mi Computer (My Computer)

"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"

Mis Documentos (My Documents)

"::{450D8FBA-AD25-11D0-98A8-0800361B1103}"

Mis Sitios de Red (My Network Places)

"::{208D2C60-3AEA-1069-A2D7-08002B30309D}"

Network Computers

"::{1f4de370-d627-11d1-ba4f-00a0c91eedba}"

Network Connections

"::{7007ACC7-3202-11D1-AAD2-00805FC1270E}"

Impresoras y Faxes (Printers and Faxes)

"::{2227A280-3AEA-1069-A2DE-08002B30309D}"

Archivos de Programas (Programs Folder) "::{7be9d83c-a729-4d97-b5a7-1b7313c39e0a}"


Papelera de Reciclaje (Recycle Bin)

"::{645FF040-5081-101B-9F08-00AA002F954E}"

Escner y Cmaras (Scanner and

"::{E211B736-43FD-11D1-9EFB-0000F8757FCD}"

556

Cameras)
Tareas Programadas (Schedule Tasks)

"::{D6277990-4C6A-11CF-8D87-00AA0060F5BF}"

Carpeta de Men Inicio (Start Menu


Folder)

"::{48e7caab-b918-4e58-a94d-505519c795dc}"

Ficheros Temporales de Internet


(Temporary Internet)

"::{7BD29E00-76C1-11CF-9DD0-00A0C9034933}"

Carpeta de Webs (Web Folders)

"::{BDEADF00-C265-11d0-BCED-00A0C90AB50F}"

Estilos de Controles en GUI


Esta pgina contiene una lista de los estilos corrientes y extendidos que pueden ser usados en
ventanas, y tambin estilos especficos aplicables a controles. Esos estilos se implementan
pasando los parmetros "style" y/o "exStyle" en muchas funciones GUI. Para utilizar los valores
de referencia a las variables, usted debe agregar la lnea #include <GUIConstants.au3> en su
Script.

Nota: Estos "valores" son proporcionados simplemente como referencia, es


recomendable que siempre utilice el "nombre" del estilo para lograr que sus scripts se
mantengan legibles.
Estilos Comunes

Valor

Descripcin
#include <WindowsConstants.au3>

Predefinido/forzado al crear
la interfaz grfica del
usuario.

$GUI_SS_DEFAULT_GUI ver la funcin GUICreate

$WS_BORDER

0x00800000 Crea una ventana con un pequeo borde fino

$WS_POPUP

0x80000000

Crea una ventana popup. Este estilo no puede


utilizarse junto con el estilo WS_CHILD

$WS_CAPTION

0x00C00000

Crea una ventana que tiene una barra de ttulo


(incluye el estilo WS_BORDER)

$WS_CLIPCHILDREN

Excluye el rea ocupada por "ventanas hijo"


0x02000000 cuando un trazo ocurre dentro de la "ventana
padre". Este estilo es aplicado cuando se crea una

557

"ventana padre"

$WS_CLIPSIBLINGS

Sujeta "ventanas hijo" relativas a cualquier otra;


es decir, cuando una "ventana hijo" en particular
recibe un mensaje WM_PAINT, el estilo
WS_CLIPSIBLINGS mantiene todas las otras
"ventanas hijo" superpuestas fuera de la regin de
0x04000000
la "ventana hijo" que va a ser actualizada. Si
WS_CLIPSIBLINGS no se especifica y una "ventana
hijo" solapa otra, de ser posible, cuando el trazo
es dentro del rea del cliente, traza en el interior
del rea del cliente en una "ventana hijo" vecina.

$WS_DISABLED

0x08000000

Crea una ventana que est inicialmente


deshabilitada

$WS_DLGFRAME

0x00400000

Crea una ventana que tiene un estilo de borde


utilizado tpicamente en cuadros de dilogo

$WS_HSCROLL

0x00100000

Crea una ventana que tiene una barra de


desplazamiento horizontal

$WS_MAXIMIZE

0x01000000

Crea una ventana que se encuentra inicialmente


maximizada

$WS_MAXIMIZEBOX

Crea una ventana que posee un botn para


maximizar. No puede combinarse con el estilo
0x00010000
WS_EX_CONTEXTHELP. El estilo WS_SYSMENU
debe especificarse tambin

$WS_MINIMIZE

0x20000000

$WS_MINIMIZEBOX

Crea una ventana que tiene un botn para


minimizar. No puede combinarse con el estilo
0x00020000
WS_EX_CONTEXTHELP. El estilo WS_SYSMENU
debe especificarse tambin

$WS_OVERLAPPED

Crea una ventana superpuesta. Tiene una barra de


0x00000000 ttulo y un borde. Lo mismo que el estilo
WS_TILED.

Crea una ventana que se encuentra inicialmente


minimizada

$WS_OVERLAPPEDWINDOW 0x00CF0000 Crea una ventana superpuesta con los estilos


WS_OVERLAPPED, WS_CAPTION, WS_SYSMENU,
558

WS_THICKFRAME, WS_MINIMIZEBOX, y
WS_MAXIMIZEBOX. Igual que el estilo
WS_TILEDWINDOW

$WS_POPUPWINDOW

Crea una ventana popup con los estilos


WS_BORDER, WS_POPUP, y WS_SYSMENU. Los
0x80880000 estilos WS_CAPTION y WS_POPUPWINDOW
deben ser combinados para hacer que el men de
la ventana est visible

$WS_SIZEBOX

Crea una ventana que tiene un borde para


0x00040000 dimensionarla. Lo mismo que con el estilo
WS_THICKFRAME

$WS_SYSMENU

Crea una ventana que tiene un men de ventana


0x00080000 sobre la barra de ttulo. El estilo WS_CAPTION
debe especificarse tambin

$WS_THICKFRAME

Crea una ventana que tiene un borde para


0x00040000 dimensionarla. Lo mismo que con el estilo
WS_SIZEBOX

$WS_VSCROLL

0x00200000

$WS_VISIBLE

0x10000000 Crea una ventana que inicialmente es visible

$WS_CHILD

Crea una "ventana hijo". Una ventana de este


0x40000000 estilo no puede tener una barra de men. No
puede ser combinada con el estilo WS_POPUP

$WS_GROUP

Especifica cual es el primer control de un grupo de


controles. El grupo consistir del primer control,
0x00020000
adelantando a prximos controles definidos
despus de l, con el estilo WS_GROUP

$WS_TABSTOP

Convierte al control en una detencin Tab, lo cual


posibilita al usuario seleccionarlo mediante
0x00010000
tabulacin entre otros controles de un cuadro de
dilogo

$DS_MODALFRAME

Crea un cuadro de dilogo modal en un marco, el


0x00000080 cual puede combinarse con una barra de ttulo y
un men de ventana, especificando los estilos

Crea una ventana que tiene una barra de


desplazamiento vertical

559

WS_CAPTION y WS_SYSMENU

$DS_SETFOREGROUND

Este estilo es til para cuadros de dilogo modal


que requieren una atencin inmediata de parte
0x00000200
del usuario indiferente, si la propia ventana de la
aplicacin est fuera del primer plano

$DS_CONTEXTHELP

Aade un signo de pregunta en la barra de ttulo


del cuadro de dilogo. No puede ser usado con los
0x00002000 estilos WS_MAXIMIZEBOX o WS_MINIMIZEBOX.
Lo mismo con el estilo extendido
WS_EX_CONTEXTHELP

Estilos Extendidos Comunes

Valor

Descripcin

#include <WindowsConstants.au3>

$WS_EX_ACCEPTFILES

Habilita un control editor o de ingreso en la


ventana GUI creada, a recibir nombres de
archivo va arrastrar y soltar. El control debe
0x00000010
tener tambin el estado
$GUI_DROPACCEPTED seleccionado mediante
GUICtrlSetState

$WS_EX_APPWINDOW

0x00040000

$WS_EX_COMPOSITED

Windows XP o superior: dibuja todos los


0x02000000 descendientes de una ventana desde la parte
inferior a la superior usando un doble buffer.

$WS_EX_CLIENTEDGE

0x00000200

$WS_EX_CONTEXTHELP

Agrega un signo de interrogacin en la barra


de ttulo de la ventana. No puede ser
0x00000400
combinado con WS_MAXIMIZEBOX o
WS_MINIMIZEBOX

$WS_EX_DLGMODALFRAME

0x00000001 Crea una ventana que tiene un borde doble; la


ventana puede, opcionalmente, crearse con

Fuerza una ventana visible al nivel superior


sobre la barra de tareas

Especifica que los lmites para el borde de la


ventana tendrn el aspecto de hundidos

560

una barra de ttulo al especificar el estilo


WS_CAPTION en el parmetro dwStyle

$WS_EX_MDICHILD

Crea una "ventana hijo" que se mover con la


ventana padre. (simulacin de una ventana
0x00000040
MDI con maximizar/minimizar no son
simuladas)

$WS_EX_OVERLAPPEDWINDOW 0x00000300

Combina los estilos WS_EX_CLIENTEDGE y


WS_EX_WINDOWEDGE

$WS_EX_STATICEDGE

Crea una ventana con un estilo de borde


0x00020000 tridimensional, proyectado para utilizarse con
tems que no aceptan ingreso desde el usuario

$WS_EX_TOPMOST

Especifica que una ventana creada con este


estilo deber estar colocada encima de todas
0x00000008 las dems que no tengan esta caracterstica y
mantenerse en la misma condicin, aun
cuando la ventana est inactiva

$WS_EX_TRANSPARENT

La ventana aparece transparente porque los


0x00000020 segmentos en las ventanas hermanas
subyacentes ya han sido rellenados

$WS_EX_TOOLWINDOW

Crea una ventana de herramienta; lo que


significa que es una ventana pensada para
utilizarse como barra de herramienta flotante.
Una ventana de herramienta tiene una barra
de ttulo que es ms estrecha que una barra
de ttulo normal, y el ttulo de la ventana
figura con una fuente algo ms pequea. Una
0x00000080 ventana de herramienta no aparecer en la
barra de tareas o en el cuadro de dilogo que
se muestra cuando el usuario presiona la
combinacin ALT+TAB. Si una ventana de
herramientas incluye un men de sistema, el
cono no ser emplazado en la barra de ttulo.
Sin embargo, puede mostrarlo utilizando el
mtodo ALT+SPACE

$WS_EX_WINDOWEDGE

0x00000100

Establece que la ventana tiene un borde cuyo


lmite aparece elevado

561

Crea una ventana de capas. Tenga en cuenta


que no puede ser utilizada con ventanas hijo

$WS_EX_LAYERED

0x00080000

$GUI_WS_EX_PARENTDRAG

Permite a un control de etiqueta o imagen ser


0x00100000 empleado como la barra de ttulo para
arrastrar al conjunto de la ventana padre

Estilos de Caja de
Chequeo (Checkbox)

Valor

Descripcin

#include <ButtonConstants.au3>
Predefinido/forzado

Ver funcin GUICtrlCreateCheckbox

$BS_3STATE

0x0005

Crea una caja de chequeo (check box) que puede


ser inhabilitada as como seleccionada o limpiada. Use el
estado 'no disponible' para mostrar cual estado de la
caja de chequeo no est determinado

0x0006

Crea una caja de chequeo de tres estados, la cual puede


alternar entre los estados: marcado, chequeado y
deseleccionado cada vez que el usuario clickea sobre el
control

0x0003

Crea una caja de chequeo en la que el estado de chequeo


alterna entre seleccionado y deseleccionado cada vez
que el usuario clickea sobre el control

$BS_CHECKBOX

0x0002

Crea una caja de chequeo pequea y 'limpia' con la


etiqueta alineada a la derecha. Para alinear el texto a la
izquierda, combine esta bandera (flag) con el estilo
BS_RIGHTBUTTON

$BS_LEFT

0x0100

Alineacin a la izquierda del texto contenido dentro de


una caja de chequeo

0x1000

Crea un botn (como una caja de chequeo, caja de


chequeo de tres estados, o un botn circular (radio
button) semejante a un botn de pulsado. El botn es
oprimido cuando la caja de chequeo est marcada y

$BS_AUTO3STATE

$BS_AUTOCHECKBOX

$BS_PUSHLIKE

562

liberado cuando es desmarcada

$BS_RIGHT

0x0200

Alineacin a la derecha del texto contenido dentro de


una caja de chequeo

$BS_RIGHTBUTTON

0x0020

Posiciona una caja de chequeo a la derecha del


rectngulo de un botn

0x0007

Crea un rectngulo en el cual otros botones puedan estar


agrupados. Cualquier texto asociado con este estilo es
mostrado en la esquina superior izquierda del rectngulo

$BS_AUTORADIOBUTTON 0x0009

Igual que un botn circular, excepto cuando el usuario lo


selecciona, el botn se destaca automticamente y quita
la seleccin de cualquier otro botn circular con el mismo
estilo dentro del mismo grupo

$BS_GROUPBOX

Estilos de Botn

Valor

Descripcin

#include <ButtonConstants.au3>
Ver funciones GUICtrlCreateButton, GUICtrlCreateCheckbox,
GUICtrlCreateRadio

Predefinido/forzado

$BS_BOTTOM

0x0800

Coloca el texto en el fondo del rectngulo del botn.

$BS_CENTER

0x0300

Centra horizontalmente el texto dentro del rectngulo del


botn.

$BS_DEFPUSHBUTTON 0x0001

Muestra un borde oscuro alrededor del rectngulo del


botn. Si el botn est en una caja de dilogo (dialog box), el
usuario puede seleccionar el botn oprimiendo la tecla
ENTER, aunque el botn no tenga el foco. Este estilo es muy
til para permitir al usuario seleccionar rpidamente la
opcin ms probable, o por defecto

$BS_MULTILINE

Habilita la escritura en mltiples lneas del texto dentro del


rectngulo del botn en caso de que el texto sea demasiado
largo

0x2000

563

$BS_TOP

0x0400

Coloca el texto en la parte superior del rectngulo del botn

$BS_VCENTER

0x0C00

Centra verticalmente el texto dentro del rectngulo del


botn

$BS_ICON

0x0040

Especifica que el botn tendr un icono

$BS_BITMAP

0x0080

Especifica que el botn mostrar una imagen.

$BS_FLAT

0x8000

Especifica que el botn es bidimensional; no utiliza el efecto


de sombreado para crear una botn tridimensional

0x4000

Capacita a un botn para enviar mensajes de notificacin


BN_KILLFOCUS y BN_SETFOCUS a la ventana padre. Note
que los botones envan el mensaje de notificacin
BN_CLICKED tengan o no este estilo. Para obtener el
mensaje de notificacin BN_DBLCLK, el botn debe tener un
estilo BS_RADIOBUTTON o BS_OWNERDRAW.

$BS_NOTIFY

Estilos Cajas de seleccin


(Combo)

Valor

Descripcin

#include <ComboConstants.au3>
Predefinido/forzado

$GUI_SS_DEFAULT_COMBO Ver
funcin GUICtrlCreateCombo.

$CBS_AUTOHSCROLL

0x0040

Automticamente desplaza el texto a la derecha cuando


el usuario teclea un carcter al final de la lnea. Si este
estilo no es establecido, solo se permite el texto dentro
del lmite del rectngulo del control

$CBS_DISABLENOSCROLL

0x0800

Muestra una barra de desplazamiento (scroll bar)


deshabilitada en la caja de texto cuando la caja no
contiene ningn tem para desplazar. Sin este estilo, la
barra de desplazamiento es ocultada cuando la caja de
texto no contiene ningn artculo

$CBS_DROPDOWN

0x0002

Muestra la caja de texto por defecto. El usuario puede


ver el contenido de la caja de texto a travs de un

564

pequeo icono en la esquina derecha del control

$CBS_DROPDOWNLIST

0x0003

Muestra un campo de texto esttico que muestra el


tem actual seleccionado en el control

$CBS_LOWERCASE

0x4000

Convierte a minscula cualquier texto en mayscula


dentro del control

$CBS_NOINTEGRALHEIGHT 0x0400

Especifica que un combo box tendr exactamente las


mismas dimensiones establecidas por la aplicacin
cuando es creado. Usualmente, Windows CE
dimensiona un combo box para no mostrar tem
parciales

$CBS_OEMCONVERT

0x0080

Convierte el texto tecleado en el edit de un combo box


del juego de caracteres de Windows CE para el juego
de caracteres OEM solamente. Este estilo es muy til
cuando el combo box contiene nombre de ficheros.
Esto es aplicable solo a combo boxes creados con el
estilo CBS_DROPDOWN.

$CBS_SIMPLE

0x0001

Muestra la caja de texto en todo momento. La actual


seleccin del combo box es mostrada en esta caja de
texto

$CBS_SORT

0x0100

Ordena alfabticamente las cadenas de texto


introducidas en el combo box

$CBS_UPPERCASE

0x2000

Convierte a mayscula cualquier texto en minscula


dentro del control.

Estilos de Lista
(List)

Valor

Descripcin

#include <ListboxConstants.au3>
$GUI_SS_DEFAULT_LIST ver
funcin GUICtrlCreateList .

Predefinido/forzado

$LBS_DISABLENOSCROLL

0x1000

Muestra una barra de desplazamiento (scroll bar)


deshabilitada en la caja de lista cuando la caja no
565

contiene ningn tem para desplazar. Sin este estilo, la


barra de desplazamiento es ocultada cuando la caja de
lista no contiene ningn tem

$LBS_NOINTEGRALHEIGHT 0x0100

Especifica que una caja de lista tendr exactamente


las misma dimensiones establecidas por la aplicacin
cuando es creada

$LBS_NOSEL

0x4000

Especifica que el usuario puede ver los tem listados


pero no seleccionarlos

$LBS_NOTIFY

0x0001

Notifica a la ventana padre cuando se hace click o


doble click sobre una cadena de texto en la caja de
lista

$LBS_SORT

0x0002

Ordena alfabticamente las cadena de texto en la caja


de lista

$LBS_STANDARD

Ordena las cadenas de texto alfabticamente en la


caja de lista. La ventana padre recibe un mensaje de
entrada (input message)cuando el usuario clickea o
0xA00003
hace doble click en una cadena de texto. La caja de
lista es bordeada totalmente. (LBS_NOTIFY |
LBS_SORT | WS_VSCROLL | WS_BORDER)

$LBS_USETABSTOPS

Estilos
Editor/Ingreso

0x0080

Valor

Permite a la caja de lista reconocer y expandir


caracteres tab cuando es entrada una cadena de
texto. Por defecto las posiciones tab son de 32
unidades de caja. Una unidad de caja de dilogo es
igual a un cuarto de la unidad base del ancho de la
caja de dilogo actual

Descripcin

#include <EditConstants.au3>
Predefinido/forzado

$GUI_SS_DEFAULT_EDIT, $GUI_SS_DEFAULT_INPUT ver


GUICtrlCreateEdit o la funcin GUICtrlCreateInput

566

Automticamente desplaza el texto a la derecha por 10


caracteres cuando el usuario clickea un carcter al final de la
$ES_AUTOHSCROLL 0x0080 lnea. Cuando el usuario presiona la tecla ENTER, el control de
desplazamiento ubica el texto en la lnea inmediata inferior de
la actual

$ES_AUTOVSCROLL 0x0040

Desplaza el texto para una nueva lnea cuando es oprimida la


tecla ENTER o llega al final de la lnea

$ES_CENTER

0x0001 Centra el texto en un control con multilnea

$ES_LOWERCASE

0x0010

$ES_NOHIDESEL

Niega el comportamiento por defecto de un control de edicin.


Por defecto el control de edicin oculta el texto seleccionado
cuando el control pierde el foco e invierte la seleccin cuando el
0x0100
control de edicin recupera el foco de entrada. Si usted utiliza
ES_NOHIDESEL, la seleccin del texto es invertida, aunque el
control no tenga el foco

$ES_NUMBER

0x2000

Convierte todos los caracteres a minscula cuando estos son


tecleados al control.

Acepta solo dgitos numricos para ser tecleados dentro de un


control

$ES_OEMCONVERT 0x0400

Estilo muy til cuando se muestra nombres de ficheros en el


control

$ES_MULTILINE

0x0004

Designa un control multilnea. Por defecto el control de texto


no incorpora este estilo

$ES_PASSWORD

0x0020

Muestra asteriscos (*) por cada carcter tecleado dentro del


control

$ES_READONLY

0x0800 Previene que el usuario pueda editar el contenido de un control

$ES_RIGHT

0x0002 Alineacin a la derecha del texto de un control

$ES_UPPERCASE

0x0008

Convierte todos los caracteres a minscula cuando estos son


tecleados al control.

Especifica que puede usarse el retorno de lnea cuando el


$ES_WANTRETURN 0x1000 usuario oprime la tecla ENTER mientras teclea texto en un
control multilnea dentro de una caja de dilogo. Si no se
especifica este estilo, presionando la tecla ENTER no provocar
567

un retorno de lnea, ser semejante a presionar un botn. Este


estilo no tiene efecto en controles que no son multilnea

Estilos Barra de
Progreso

Valor

Descripcin

#include <ProgressConstants.au3>
$PBS_SMOOTH

0x01

Muestra el estado del progreso en una barra de desplazamiento


lisa, en lugar de la barra segmentada que es la predefinida

$PBS_VERTICAL

0x04

Muestra el estado del progreso verticalmente, en sentido inferior


al superior

Estilos Up-down

Valor

Descripcin

#include <UpdownConstants.au3>
Predefinido/forzado

$GUI_SS_DEFAULT_UPDOWN ver la funcin


GUICtrlCreateUpdown.

$UDS_ALIGNLEFT

0x08

Posiciona el control up-down consecutivo al margen izquierdo


de la ventana acompaada. Esta se desplaza a la derecha y el
ancho es reducido en orden de reacomodarse al tamao del
control up-down

$UDS_ALIGNRIGHT

0x04

Posiciona el control up-down consecutivo al margen derecho


de la ventana acompaada. El ancho es reducido en orden de
reacomodarse al tamao del control up-down

$UDS_ARROWKEYS

0x20

El control up-down procesa los comandos desde las teclas


direccionales FLECHA ARRIBA y FLECHA ABAJO del teclado

$UDS_HORZ

0x40

Las flechas direccionales del control up-down estarn


colocadas en el eje izquierda/derecha en lugar de arriba y
abajo

568

$UDS_NOTHOUSANDS 0x80

Impide la insercin de puntos separadores por cada tres


posiciones decimales

$UDS_WRAP

Establece que si el valor contenido es incrementado o restado


ms all de los valores mximo y mnimo, retomar al valor
inicial/final segn sea el caso

Estilos de
Etiqueta/Esttico

0x01

Valor

Descripcin

#include <StaticConstants.au3>
Predefinido/forzado

$GUI_SS_DEFAULT_LABEL, $GUI_SS_DEFAULT_ICON,
$GUI_SS_DEFAULT_PIC. Ver funciones
GUICtrlCreateLabel, GUICtrlCreateIcon, GUICtrlCreatePic

$SS_BLACKFRAME

0x07

Especifica una casilla con un cuadro trazado en el mismo


color que el marco de la ventana. Este color es negro en
el esquema predefinido

0x04

Especifica un rectngulo relleno con el color actual del


marco de la ventana. Este color es negro en el esquema
predefinido

0x01

Especifica un rectngulo simple y centra el valor del texto


errneo en el rectngulo. El control automticamente
recorta las palabras que se extienden pasando el final de
cada lnea y las coloca al comienzo de la prxima lnea
centrada

0x0200

Especifica que el punto medio de un control esttico con


el estilo SS_BITMAP permanecer inmvil aun cuando el
control sea redimensionado. Los cuatro lados son
ajustados a reposicionar el nuevo mapa de bits. Si el
mapa de bits es ms pequeo que el rea de cliente del
control, el resto del rea del cliente es ocupada con el
color del pixel en la esquina superior izquierda del mapa
de bits. Puede utilizarse con un control esttico que
contenga solamente una lnea de texto.
Microsoft Windows XP: Este estilo ya no contempla el
resultante de las porciones desocupadas del control con

$SS_BLACKRECT

$SS_CENTER

$SS_CENTERIMAGE

569

el relleno de color del pxel de la esquina superior


izquierda del mapa de bits o cono. Las porciones sin
ocupar en el control permanecern entonces con el color
de relleno del fondo

$SS_ETCHEDFRAME

0x12

Traza el marco del control esttico usando el estilo de


borde EDGE_ETCHED

$SS_ETCHEDHORZ

0x10

Traza el lmite superior e inferior del control esttico


utilizando el estilo de borde EDGE_ETCHED

$SS_ETCHEDVERT

0x11

Traza el lmite izquierdo y derecho del control esttico


utilizando el estilo de borde EDGE_ETCHED

0x08

Establece un casillero con el marco trazado en el mismo


color que el relleno de fondo de la pantalla (escritorio).
Este color es gris en el esquema de color predefinido

0x05

Especifica un rectngulo relleno con el color del fondo de


la pantalla actual. Este color es gris en el esquema de
color predefinido

0x0000

Especifica un rectngulo simple y alinea a la izquierda el


texto en el rectngulo. El texto es formateado antes de
ser mostrado. Las palabras que excedan el largo de la
lnea son colocadas automticamente al comienzo de la
siguiente. Si son ms las lneas que las que entran en el
alto del control, las palabras que excedan del largo de la
ltima lnea visible sern truncadas

$SS_GRAYFRAME

$SS_GRAYRECT

$SS_LEFT

$SS_LEFTNOWORDWRAP 0x0C

Especifica un rectngulo y alinea el texto interno a la


izquierda. Las tabulaciones son expandidas pero las
palabras no son pasadas a la siguiente lnea. Aquellas que
excedan el largo de cada lnea sern truncadas

$SS_NOPREFIX

Previene la interpretacin de cualquier carcter (&) en el


texto del control como un prefijo de acceso abreviado al
mismo.
Una aplicacin puede combinar el estilo SS_NOPREFIX
con otros, utilizando el operador de dgito binario
selectivo OR (|). Esto puede resultar til cuando nombres
de archivos u otras cadenas que puedan contener un
signo (&) deban ser mostrados con un control de etiqueta

0x80

570

en un cuadro de dialogo

$SS_NOTIFY

0x0100

Enva a la ventana padre la notificacin STN_CLICKED


cuando el usuario hace click sobre el control

$SS_RIGHT

0x0002

Establece el texto a la derecha en el interior del


rectngulo especificado

0x0400

La esquina inferior derecha del control esttico con el


estilo SS_BITMAP o SS_ICON permanecer fija cuando el
control es redimensionado. Solamente los lados superior
e izquierdo sern ajustados a fin de acomodar el nuevo
mapa de bits o cono

$SS_SIMPLE

0x0B

Especifica un rectngulo simple y muestra una lnea nica


de texto que permanece alineada a la izquierda. La lnea
de texto no podr ser ordenada o alterada de manera
alguna. Adems, si el control es desactivado, el texto en
su interior no ser colocado en el color gris tpico.

$SS_SUNKEN

0x1000

Traza un borde con aspecto de semi-profundidad


alrededor del control esttico.

0x09

Establece una casilla con el marco trazado en el color de


fondo de la ventana. Este color es blanco en el esquema
predefinido.

0x06

El rectngulo es ocupado con el color de fondo actual de


la ventana. Este color es blanco en el esquema
predefinido.

$SS_RIGHTJUST

$SS_WHITEFRAME

$SS_WHITERECT

Estilo de Pestaa (Tab)

Valor

Descripcin

#include <TabConstants.au3>
Predefinido/forzado

$TCS_SCROLLOPPOSITE

Ver funcin GUICtrlCreateTab .

0x0001

Barras de desplazamiento innecesarias en el lado


opuesto a la pestaa seleccionada

571

0x0002

Las pestaas aparecen al fondo del control. Este


valor es igual a TCS_RIGHT. Este estilo no es
soportado si usted usa [Link] versin 6

$TCS_RIGHT

0x0002

Las pestaas aparecen verticalmente al lado


derecho del control que usen el estilo
TCS_VERTICAL. Este valor es igual a TCS_BOTTOM.
Este estilo no es soportado si se emplean estilos
visuales

$TCS_MULTISELECT

0x0004

Mltiples pestaas pueden ser seleccionadas


usando la tecla CTRL. Este estilo debe ser usado
con el estilo TCS_BUTTONS

0x0008

Las pestaas seleccionadas aparecen como


marcadas hacia dentro con relacin a aquellas que
no lo estn. Este estilo solo afecta a los controles
de pestaa con el estilo TCS_BUTTONS

0x0010

Los iconos aparecen alineados al borde izquierdo


de cada pestaa con ancho fijo. Este estilo solo
puede ser usado con el estilo TCS_FIXEDWIDTH

$TCS_BOTTOM

$TCS_FLATBUTTONS

$TCS_FORCEICONLEFT

$TCS_FORCELABELLEFT

0x0020

Las etiquetas son alineadas al borde izquierdo de


cada pestaa con ancho fijo; esto es, la etiqueta es
exhibida inmediatamente a la derecha del icono
en lugar de estar centrada.

Este estilo solo puede usarse con el estilo


TCS_FIXEDWIDTH, y este implica el estilo
TCS_FORCEICONLEFT
$TCS_HOTTRACK

$TCS_VERTICAL

0x0040

Los tems bajo el cursor son automticamente


resaltados

0x0080

Las pestaas aparecen por el lado izquierdo del


control, con el texto de la pestaa exhibido
verticalmente. Este estilo es vlido slo cuando es
usado con el estilo TCS _ MULTILINE. Para hacer
que las pestaas aparezcan al lado derecho del
control, tambin use el estilo TCS_RIGHT. Este
estilo no es soportado si usted usa la versin
[Link] versin 6

572

$TCS_TABS

0x0000

Las pestaas aparecen cono pestaas, y un borde


se dibuja alrededor del rea de despliegue. Este
estilo es por defecto

$TCS_BUTTONS

0x0100

Las pestaas aparecen como botones, sin un


borde dibujado alrededor del rea de despliegue

0x0000

Solo una fila de pestaas es mostrada. El usuario


debe desplazarse para ver ms pestaas, si es
necesario. Este estilo es por defecto

0x0200

Mltiples filas de pestaas es mostrada , de ser


necesario, de esta forma todas las pestaas con
visibles

$TCS_SINGLELINE

$TCS_MULTILINE

$TCS_RIGHTJUSTIFY

0x0000

El ancho de cada pestaa es incrementada, si es


necesario, a fin de que cada fila de pestaas llena
la anchura entera del control pestaa.

Este estilo de Windows es ignorado a menos


que el estilo TCS_MULTILINE sea especificado
$TCS_FIXEDWIDTH

0x0400

Todas las pestaas tienen el mismo ancho. Este


estilo no puede ser combinado con el estilo
TCS_RIGHTJUSTIFY

$TCS_RAGGEDRIGHT

0x0800

Las filas de pestaas no se alargan para cubrir todo


el control. Este estilo es por defecto

$TCS_FOCUSONBUTTONDOWN 0x1000

El control de pestaa recibe el foco cuando es


clickeado

$TCS_OWNERDRAWFIXED

0x2000

La ventana padre es responsable de redibujar las


pestaas

$TCS_TOOLTIPS

0x4000

El control de pestaa coloca un control tooltip


asociado a la misma

$TCS_FOCUSNEVER

0x8000

El control de pestaa no recibe el foco cuando es


clickeada

573

Estilos de Clip Avi

Valor

Descripcin

#include <AVIConstants.au3>
Predefinido/forzado

$GUI_SS_DEFAULT_AVI ver funcin GUICtrlCreateAvi.

$ACS_AUTOPLAY

0x04

Comienza la reproduccin de la animacin tan pronto


como el clip AVI es abierto

$ACS_CENTER

0x01

Centra la animacin en la ventana del control de


animacin

0x02

Le permite capturar el color de fondo de la ventana


subyacente a la animacin, simulando un efecto de
transparencia. (Valor predefinido)

$ACS_NONTRANSPARENT 0x10

Substituye el estilo predefinido ACS_TRANSPARENT

$ACS_TRANSPARENT

Estilos Fecha

Valor

Descripcin

#include <DateTimeConstants.au3>
Predefinido/forzado

$GUI_SS_DEFAULT_DATE ver
funcin GUICtrlCreateDate

$DTS_UPDOWN

0x01

Ubica un control UpDown a la derecha del control DTP


para modificar los valores de tiempo. Este estilo puede
ser usado en lugar de la lista desplegable en calendario
mensual, como estilo por defecto

$DTS_SHOWNONE

0x02

Habilita el control para aceptar valores de no fecha


como un estado de seleccin vlida

$DTS_LONGDATEFORMAT 0x04

Muestra la fecha en formato extendido. El formato por


defecto para este estilo es definido
por LOCALE_SLONGDATEFORMAT, que produce como
resultado: Viernes, abril 19, 1998.

$DTS_TIMEFORMAT

Muestra la hora. El formato por defecto para este estilo


es definido por LOCALE_STIMEFORMAT, que produce
como resultado:

0x09

574

5:31:42 PM.

$DTS_RIGHTALIGN

El calendario mensual es alineado a la derecha con rl


control en lugar de alinearse a la izquierda por defecto

0x20

Muestra la fecha en formato corto. El formato por


defecto para este estilo es definido por
LOCALE_SSHORTDATE, que produce como resultado:
"4/19/96"

$DTS_SHORTDATEFORMAT 0x00

Estilos MesCalendario

Valor

Descripcin

#include <DateTimeConstants.au3>
Predefinido/forzado

$MCS_NOTODAY

Ver funcin GUICtrlCreateMonthCal.

0x10

El control mes-calendario mostrar la fecha "hoy" al final del


control

$MCS_NOTODAYCIRCLE 0x08

El control mes-calendario no tendr un crculo rodeando la


fecha de "hoy"

$MCS_WEEKNUMBERS 0x04

El control mes-calendario mostrar el nmero de semanas


(1-52) a la izquierda de cada columna de das. La semana 1
es establecida como la primer semana que contiene al
menos cuatro das

Estilos control de rbol


TreeView

Valor

Descripcin

#include <TreeviewConstants.au3>
$GUI_SS_DEFAULT_TREEVIEW ver
GUICtrlCreateTreeView

Predefinido/forzado

$TVS_HASBUTTONS

0x0001

Muestra un botn 'ms' (+) y 'menos' (-) en la cabecera


de tems padres. Un click sobre estos botones expande o
contrae la lista de tems hijos. Para enlazar la lista al
575

inicio principal del rbol usar: TVS_LINESATROOT , el cual


tambin debe ser especificado

$TVS_HASLINES

0x0002

Uso de lneas para sealar el nivel jerrquico de la lista


de tems

$TVS_LINESATROOT

0x0004

Uso de lneas para enlazar las cabeceras de la lista. Este


valor es ignorado si TVS_HASLINES no es especificado

$TVS_DISABLEDRAGDROP 0x0010

Previene el control de rbol para recibir notificacin de


mensajes TVN_BEGINDRAG

$TVS_SHOWSELALWAYS

0x0020

Posibilita que un tems no deje se estar seleccionado aun


cuando el control pierda el foco

$TVS_RTLREADING

0x0040

Las ventanas normales muestran el texto de izquierda a


derecha (LTR). Windows puede usar una mscara para
mostrar lenguajes como el Hebreo o el Arbico que leen
de derecha a izquierda (RTL). Normalmente , el control
de rbol mostrar el texto de acuerdo con el formato de
la ventana. Si TVS_RTLREADING es establecido, el
control de rbol lee en la direccin opuesta propuesta
por el formato de la ventana

$TVS_NOTOOLTIPS

0x0080

El control de rbol no soporta mensajes flotantes


(tooltips)

$TVS_CHECKBOXES

0x0100

Habilita cajas de chequeo para los tems en el control


tree-view control. Uno cotrol tree-view es creado con
este estilo, este estilo no puede ser removido. en su
lugar, usted puede destruir el control y crearlo de nuevo
en el mismo lugar.

$TVS_TRACKSELECT

0x0200

Habilita el subrayado de los tems seleccionados

0x0400

Cuando este estilo es habilitado, los cambios de


seleccin en el control de rbol posibilitan que los tems
seleccionados se expandan mientras que los tems
deseleccionados se contraigan simultneamente. Si el
mouse es usado para Simple-click el tems es
seleccionado y expandido. Si el usuario oprime la tecla
CTRL mientras el tem mientras selecciona un tems, este
se desmarca pero no se contrae la rama

$TVS_SINGLEEXPAND

576

0x1000

Habilita la seleccin en todas las filas del control de


rbol. La fila completa de los tems seleccionados es
marcada, u cualquier click sobre un tem de la fila causa
que este sea seleccionado. Este estilo no puede ser
usado en conjuncin con el estilo TVS_HASLINES

$TVS_NOSCROLL

0x2000

Deshabilita el desplazamiento horizontal en el control. El


control no muestra ninguna barra de desplazamiento
horizontal

$TVS_NONEVENHEIGHT

0x4000

La altura de los tems puede ser establecida con el


mensaje TVM_SETITEMHEIGHT . Por defecto, la altura de
los tems es comn

$TVS_FULLROWSELECT

Estilos Slider

Valor

Descripcin

#include <SliderConstants.au3>
Predefinido/forzado

$GUI_SS_DEFAULT_SLIDER Ver funcin GUICtrlCreateSlider.

$TBS_AUTOTICKS

Agrega marcas de sealizacin cuando se establece el rango


0x0001 sobre la barra de desplazamiento utilizando el mensaje
TBM_SETRANGE

$TBS_BOTH

0x0008 Coloca marcas en ambos lados de la barra de desplazamiento

$TBS_BOTTOM

0x0000

Coloca marcas en la parte inferior de una barra de


desplazamiento horizontal

$TBS_HORZ

0x0000

Establece la barra de desplazamiento en posicin horizontal.


Este es el estilo predefinido

$TBS_VERT

0x0002

Establece que la barra de desplazamiento se ubicar en posicin


vertical

$TBS_NOTHUMB

0x0080

Especifica que la barra de desplazamiento no tiene control para


deslizamiento

$TBS_NOTICKS

0x0010

Especifica que no se colocarn marcas en la barra de


desplazamiento

577

$TBS_LEFT

0x0004

Coloca marcas en el lado izquierdo de una barra de


desplazamiento vertical

$TBS_RIGHT

0x0000

Coloca marcas en el lado derecho de una barra de


desplazamiento vertical

$TBS_TOP

0x0004

Coloca marcas en la parte superior de una barra de


desplazamiento horizontal

Estilos ListView

Valor

Descripcin

#include <ListviewConstants.au3>
$GUI_SS_DEFAULT_LISTVIEW ver
funcin GUICtrlCreateListView .

Predefinido/forzado

$LVS_ICON

0x0000

Este estilo especifica vista en iconos

$LVS_REPORT

0x0001

Este estilo especifica vista en reporte

$LVS_SMALLICON

0x0002

Este estilo especifica vista en iconos pequeos

$LVS_LIST

0x0003

Este estilo especifica vista en lista

$LVS_EDITLABELS

0x0200

Los tem de texto pueden ser editados manualmente

$LVS_NOCOLUMNHEADER 0x4000

Las cabeceras de columnas no muestran una vista de


reporte. Por defecto, las cabeceras de las columnas
(ttulos) muestran una vista de reporte

$LVS_NOSORTHEADER

0x8000

Las cabeceras de columnas no son tratadas como


botones. Este estilo puede ser usado si se quiere que al
clickear una cabecera de columna no muestra ninguna
accin, como ordenar la lista

$LVS_SINGLESEL

0x0004

Solo un tem puede ser seleccionado a la vez

$LVS_SHOWSELALWAYS

0x0008

La seleccin, si la hay, se muestra siempre, aunque el


control no reciba el foco

578

$LVS_SORTASCENDING

0x0010

El ndice de tems es ordenado basado en el texto del


tem de modo ascendente

$LVS_SORTDESCENDING

0x0020

El ndice de tems es ordenado basado en el texto del


tem de modo descendente

Estilos Extendidos ListView

Valor

Descripcin

#include <ListviewConstants.au3>
$LVS_EX_FULLROWSELECT

0x00000020

Cuando un tem es seleccionado, el tem y todos


sus subitems sern marcados tambin

$LVS_EX_GRIDLINES

0x00000001

Muestra lneas de tabulacin alrededor de los


tems y subitems.

$LVS_EX_HEADERDRAGDROP 0x00000010

Habilita ordenamiento de modo "arrastra y


suelta" las columnas en un control de lista

$LVS_EX_TRACKSELECT

Habilita la seleccin de tem-hipervnculos en un


control de lista. La seleccin de Itemhipervinculos significa que el tems se marcar
0x00000008
automticamente despus de haber colocado
sobre el mismo el cursor por un tiempo
determinado

$LVS_EX_CHECKBOXES

0x00000004

$LVS_EX_BORDERSELECT

Si este estilo es usado, cuando el tem es


0x00008000 seleccionado los colores del borde cambian para
delimitarlo

$LVS_EX_DOUBLEBUFFER

0x00010000

$LVS_EX_FLATSB

0x00000100

Habilita cajas de chequeos en los tems de un


control de lista.

Habilita una barra de desplazamiento plana en el


control de lista

$LVS_EX_MULTIWORKAREAS 0x00002000

579

$LVS_EX_SNAPTOGRID

0x00080000

$LVS_EX_SUBITEMIMAGES

0x00000002

Permite que se muestren imagen en lugar de


subitems

@OSLang codes
Possible return values (strings) of @OSLang
List was generated from Windows 2000 - List of Locale IDs and Language Groups
Note: Codes that contain letters could possible have the letters in uppercase.
Code

Meaning

0436

Afrikaans

041c

Albanian

0401

Arabic_Saudi_Arabia

0801

Arabic_Iraq

0c01

Arabic_Egypt

1001

Arabic_Libya

1401

Arabic_Algeria

1801

Arabic_Morocco

1c01

Arabic_Tunisia

2001

Arabic_Oman

2401

Arabic_Yemen

2801

Arabic_Syria

2c01

Arabic_Jordan

3001

Arabic_Lebanon

580

3401

Arabic_Kuwait

3801

Arabic_UAE

3c01

Arabic_Bahrain

4001

Arabic_Qatar

042b

Armenian

042c

Azeri_Latin

082c

Azeri_Cyrillic

042d

Basque

0423

Belarusian

0402

Bulgarian

0403

Catalan

0404

Chinese_Taiwan

0804

Chinese_PRC

0c04

Chinese_Hong_Kong

1004

Chinese_Singapore

1404

Chinese_Macau

041a

Croatian

0405

Czech

0406

Danish

0413

Dutch_Standard

0813

Dutch_Belgian

0409

English_United_States

581

0809

English_United_Kingdom

0c09

English_Australian

1009

English_Canadian

1409

English_New_Zealand

1809

English_Irish

1c09

English_South_Africa

2009

English_Jamaica

2409

English_Caribbean

2809

English_Belize

2c09

English_Trinidad

3009

English_Zimbabwe

3409

English_Philippines

0425

Estonian

0438

Faeroese

0429

Farsi

040b

Finnish

040c

French_Standard

080c

French_Belgian

0c0c

French_Canadian

100c

French_Swiss

140c

French_Luxembourg

180c

French_Monaco

582

0437

Georgian

0407

German_Standard

0807

German_Swiss

0c07

German_Austrian

1007

German_Luxembourg

1407

German_Liechtenstei

408

Greek

040d

Hebrew

0439

Hindi

040e

Hungarian

040f

Icelandic

0421

Indonesian

0410

Italian_Standard

0810

Italian_Swiss

0411

Japanese

043f

Kazakh

0457

Konkani

0412

Korean

0426

Latvian

0427

Lithuanian

042f

Macedonian

043e

Malay_Malaysia

583

083e

Malay_Brunei_Darussalam

044e

Marathi

0414

Norwegian_Bokmal

0814

Norwegian_Nynorsk

0415

Polish

0416

Portuguese_Brazilian

0816

Portuguese_Standard

0418

Romanian

0419

Russian

044f

Sanskrit

081a

Serbian_Latin

0c1a

Serbian_Cyrillic

041b

Slovak

0424

Slovenian

040a

Spanish_Traditional_Sort

080a

Spanish_Mexican

0c0a

Spanish_Modern_Sort

100a

Spanish_Guatemala

140a

Spanish_Costa_Rica

180a

Spanish_Panama

1c0a

Spanish_Dominican_Republic

200a

Spanish_Venezuela

584

240a

Spanish_Colombia

280a

Spanish_Peru

2c0a

Spanish_Argentina

300a

Spanish_Ecuador

340a

Spanish_Chile

380a

Spanish_Uruguay

3c0a

Spanish_Paraguay

400a

Spanish_Bolivia

440a

Spanish_El_Salvador

480a

Spanish_Honduras

4c0a

Spanish_Nicaragua

500a

Spanish_Puerto_Rico

0441

Swahili

041d

Swedish

081d

Swedish_Finland

0449

Tamil

0444

Tatar

041e

Thai

041f

Turkish

0422

Ukrainian

0420

Urdu

0443

Uzbek_Latin

585

0843

Uzbek_Cyrillic

042a

Vietnamese

Example
MsgBox(0, "Your OS Language:", _Language())
Func _Language()
Select
Case StringInStr("0413 0813", @OSLang)
Return "Dutch"
Case StringInStr("0409 0809 0c09 1009 1409 1809 1c09 2009 2409 2809 2c09 3009
3409", @OSLang)
Return "English"
Case StringInStr("040c 080c 0c0c 100c 140c 180c", @OSLang)
Return "French"
Case StringInStr("0407 0807 0c07 1007 1407", @OSLang)
Return "German"
Case StringInStr("0410 0810", @OSLang)
Return "Italian"
Case StringInStr("0414 0814", @OSLang)
Return "Norwegian"
Case StringInStr("0415", @OSLang)
Return "Polish"
Case StringInStr("0416 0816", @OSLang)
Return "Portuguese"
Case StringInStr("040a 080a 0c0a 100a 140a 180a 1c0a 200a 240a 280a 2c0a 300a
340a 380a 3c0a 400a 440a 480a 4c0a 500a", @OSLang)
Return "Spanish"
Case StringInStr("041d 081d", @OSLang)
Return "Swedish"
Case Else
Return "Other (can't determine with @OSLang directly)"
EndSelect
EndFunc

Fuentes estndares de Windows


Lista basada en Fuentes Estndares de Windows.
Las fuentes recomendadas son resaltadas en amarillo.

586

NOMBRE DE FUENTE

Win2000

WinXP

VISTA

Win7

Arial

Arial Black

Book Antiqua
Calibri

Cambria

Candara

Consolas

Constantia

Corbel

Comic Sans MS

Courier

Courier New

Estrangelo Edessa

Franklin Gothic Medium

Gautami

Gabriola
Georgia

x
x

Georgia Italic Impact


Impact

x
x

Latha
Lucida Console

587

Lucida Sans Console

Lucida Sans Unicode

Marlett

Modern

Modern MS Sans Serif

MS Sans Serif

MS Serif

MV Boli
Nyala
Palatino Linotype

Roman

Script

Sego Print

Sego Script

Sego UI

Small Fonts

Symbol

Tahoma

Tempus Sans ITC

Times New Roman

Trebuchet

Tunga

588

Verdana

Webdings

Westminster

Wingdings

WST_Czech

WST_Engl

WST_Fren

WST_Germ

WST_Ital

WST_Span

WST_Swed

Cdigos de Mensajes de Windows


Ordenado por nombre
Mensaje

Ordenado por cdigo


Cdigo

Cdigo

Mensaje

WM_ACTIVATE

0x0006

0x0000

WM_NULL

WM_ACTIVATEAPP

0x001C

0x0001

WM_CREATE

WM_AFXFIRST

0x0360

0x0002

WM_DESTROY

WM_AFXLAST

0x037F

0x0003

WM_MOVE

WM_APP

0x8000

0x0005

WM_SIZE

WM_APPCOMMAND

0x0319

0x0006

WM_ACTIVATE

WM_ASKCBFORMATNAME

0x030C

0x0007

WM_SETFOCUS

589

WM_CANCELJOURNAL

0x004B

0x0008

WM_KILLFOCUS

WM_CANCELMODE

0x001F

0x000A

WM_ENABLE

WM_CAPTURECHANGED

0x0215

0x000B

WM_SETREDRAW

WM_CHANGECBCHAIN

0x030D

0x000C

WM_SETTEXT

WM_CHANGEUISTATE

0x0127

0x000D

WM_GETTEXT

WM_CHAR

0x0102

0x000E

WM_GETTEXTLENGTH

WM_CHARTOITEM

0x002F

0x000F

WM_PAINT

WM_CHILDACTIVATE

0x0022

0x0010

WM_CLOSE

WM_CLEAR

0x0303

0x0011

WM_QUERYENDSESSION

WM_CLOSE

0x0010

0x0013

WM_QUERYOPEN

WM_COMMAND

0x0111

0x0016

WM_ENDSESSION

WM_COMMNOTIFY

0x0044

0x0012

WM_QUIT

WM_COMPACTING

0x0041

0x0014

WM_ERASEBKGND

WM_COMPAREITEM

0x0039

0x0015

WM_SYSCOLORCHANGE

WM_CONTEXTMENU

0x007B

0x0018

WM_SHOWWINDOW

WM_COPY

0x0301

0x001A

WM_WININICHANGE

WM_COPYDATA

0x004A

0x001A

WM_SETTINGCHANGE

WM_CREATE

0x0001

0x001B

WM_DEVMODECHANGE

WM_CTLCOLORBTN

0x0135

0x001C

WM_ACTIVATEAPP

WM_CTLCOLORDLG

0x0136

0x001D

WM_FONTCHANGE

WM_CTLCOLOREDIT

0x0133

0x001E

WM_TIMECHANGE

WM_CTLCOLORLISTBOX

0x0134

0x001F

WM_CANCELMODE

590

WM_CTLCOLORMSGBOX

0x0132

0x0020

WM_SETCURSOR

WM_CTLCOLORSCROLLBAR

0x0137

0x0021

WM_MOUSEACTIVATE

WM_CTLCOLORSTATIC

0x0138

0x0022

WM_CHILDACTIVATE

WM_CUT

0x0300

0x0023

WM_QUEUESYNC

WM_DEADCHAR

0x0103

0x0024

WM_GETMINMAXINFO

WM_DELETEITEM

0x002D

0x0026

WM_PAINTICON

WM_DESTROY

0x0002

0x0027

WM_ICONERASEBKGND

WM_DESTROYCLIPBOARD

0x0307

0x0028

WM_NEXTDLGCTL

WM_DEVICECHANGE

0x0219

0x002A

WM_SPOOLERSTATUS

WM_DEVMODECHANGE

0x001B

0x002B

WM_DRAWITEM

WM_DISPLAYCHANGE

0x007E

0x002C

WM_MEASUREITEM

WM_DRAWCLIPBOARD

0x0308

0x002D

WM_DELETEITEM

WM_DRAWITEM

0x002B

0x002E

WM_VKEYTOITEM

WM_DROPFILES

0x0233

0x002F

WM_CHARTOITEM

WM_ENABLE

0x000A

0x0030

WM_SETFONT

WM_ENDSESSION

0x0016

0x0031

WM_GETFONT

WM_ENTERIDLE

0x0121

0x0032

WM_SETHOTKEY

WM_ENTERMENULOOP

0x0211

0x0033

WM_GETHOTKEY

WM_ENTERSIZEMOVE

0x0231

0x0037

WM_QUERYDRAGICON

WM_ERASEBKGND

0x0014

0x0039

WM_COMPAREITEM

WM_EXITMENULOOP

0x0212

0x003D

WM_GETOBJECT

WM_EXITSIZEMOVE

0x0232

0x0041

WM_COMPACTING

591

WM_FONTCHANGE

0x001D

0x0044

WM_COMMNOTIFY

WM_GETDLGCODE

0x0087

0x0046

WM_WINDOWPOSCHANGING

WM_GETFONT

0x0031

0x0047

WM_WINDOWPOSCHANGED

WM_GETHOTKEY

0x0033

0x0048

WM_POWER

WM_GETICON

0x007F

0x004A

WM_COPYDATA

WM_GETMINMAXINFO

0x0024

0x004B

WM_CANCELJOURNAL

WM_GETOBJECT

0x003D

0x004E

WM_NOTIFY

WM_GETTEXT

0x000D

0x0050

WM_INPUTLANGCHANGEREQUEST

WM_GETTEXTLENGTH

0x000E

0x0051

WM_INPUTLANGCHANGE

WM_HANDHELDFIRST

0x0358

0x0052

WM_TCARD

WM_HANDHELDLAST

0x035F

0x0053

WM_HELP

WM_HELP

0x0053

0x0054

WM_USERCHANGED

WM_HOTKEY

0x0312

0x0055

WM_NOTIFYFORMAT

WM_HSCROLL

0x0114

0x007B

WM_CONTEXTMENU

WM_HSCROLLCLIPBOARD

0x030E

0x007C

WM_STYLECHANGING

WM_ICONERASEBKGND

0x0027

0x007D

WM_STYLECHANGED

WM_IME_CHAR

0x0286

0x007E

WM_DISPLAYCHANGE

WM_IME_COMPOSITION

0x010F

0x007F

WM_GETICON

WM_IME_COMPOSITIONFULL

0x0284

0x0080

WM_SETICON

WM_IME_CONTROL

0x0283

0x0081

WM_NCCREATE

WM_IME_ENDCOMPOSITION

0x010E

0x0082

WM_NCDESTROY

WM_IME_KEYDOWN

0x0290

0x0083

WM_NCCALCSIZE

592

WM_IME_KEYLAST

0x010F

0x0084

WM_NCHITTEST

WM_IME_KEYUP

0x0291

0x0085

WM_NCPAINT

WM_IME_NOTIFY

0x0282

0x0086

WM_NCACTIVATE

WM_IME_REQUEST

0x0288

0x0087

WM_GETDLGCODE

WM_IME_SELECT

0x0285

0x0088

WM_SYNCPAINT

WM_IME_SETCONTEXT

0x0281

0x00A0

WM_NCMOUSEMOVE

WM_IME_STARTCOMPOSITION

0x010D

0x00A1

WM_NCLBUTTONDOWN

WM_INITDIALOG

0x0110

0x00A2

WM_NCLBUTTONUP

WM_INITMENU

0x0116

0x00A3

WM_NCLBUTTONDBLCLK

WM_INITMENUPOPUP

0x0117

0x00A4

WM_NCRBUTTONDOWN

WM_INPUT

0x00FF

0x00A5

WM_NCRBUTTONUP

WM_INPUTLANGCHANGE

0x0051

0x00A6

WM_NCRBUTTONDBLCLK

WM_INPUTLANGCHANGEREQUEST 0x0050

0x00A7

WM_NCMBUTTONDOWN

WM_KEYDOWN

0x0100

0x00A8

WM_NCMBUTTONUP

WM_KEYFIRST

0x0100

0x00A9

WM_NCMBUTTONDBLCLK

WM_KEYLAST

0x0108

0x00AB

WM_NCXBUTTONDOWN

WM_KEYLAST

0x0109

0x00AC

WM_NCXBUTTONUP

WM_KEYUP

0x0101

0x00AD

WM_NCXBUTTONDBLCLK

WM_KILLFOCUS

0x0008

0x00FF

WM_INPUT

WM_LBUTTONDBLCLK

0x0203

0x0100

WM_KEYFIRST

WM_LBUTTONDOWN

0x0201

0x0100

WM_KEYDOWN

WM_LBUTTONUP

0x0202

0x0101

WM_KEYUP

593

WM_MBUTTONDBLCLK

0x0209

0x0102

WM_CHAR

WM_MBUTTONDOWN

0x0207

0x0103

WM_DEADCHAR

WM_MBUTTONUP

0x0208

0x0104

WM_SYSKEYDOWN

WM_MDIACTIVATE

0x0222

0x0105

WM_SYSKEYUP

WM_MDICASCADE

0x0227

0x0106

WM_SYSCHAR

WM_MDICREATE

0x0220

0x0107

WM_SYSDEADCHAR

WM_MDIDESTROY

0x0221

0x0109

WM_UNICHAR

WM_MDIGETACTIVE

0x0229

0x0109

WM_KEYLAST

WM_MDIICONARRANGE

0x0228

0x0108

WM_KEYLAST

WM_MDIMAXIMIZE

0x0225

0x010D

WM_IME_STARTCOMPOSITION

WM_MDINEXT

0x0224

0x010E

WM_IME_ENDCOMPOSITION

WM_MDIREFRESHMENU

0x0234

0x010F

WM_IME_COMPOSITION

WM_MDIRESTORE

0x0223

0x010F

WM_IME_KEYLAST

WM_MDISETMENU

0x0230

0x0110

WM_INITDIALOG

WM_MDITILE

0x0226

0x0111

WM_COMMAND

WM_MEASUREITEM

0x002C

0x0112

WM_SYSCOMMAND

WM_MENUCHAR

0x0120

0x0113

WM_TIMER

WM_MENUCOMMAND

0x0126

0x0114

WM_HSCROLL

WM_MENUDRAG

0x0123

0x0115

WM_VSCROLL

WM_MENUGETOBJECT

0x0124

0x0116

WM_INITMENU

WM_MENURBUTTONUP

0x0122

0x0117

WM_INITMENUPOPUP

WM_MENUSELECT

0x011F

0x011F

WM_MENUSELECT

594

WM_MOUSEACTIVATE

0x0021

0x0120

WM_MENUCHAR

WM_MOUSEFIRST

0x0200

0x0121

WM_ENTERIDLE

WM_MOUSEHOVER

0x02A1

0x0122

WM_MENURBUTTONUP

WM_MOUSELAST(2K,XP,2k3)

0x020D

0x0123

WM_MENUDRAG

WM_MOUSELAST(95)

0x0209

0x0124

WM_MENUGETOBJECT

WM_MOUSELAST(NT4,98)

0x020A

0x0125

WM_UNINITMENUPOPUP

WM_MOUSELEAVE

0x02A3

0x0126

WM_MENUCOMMAND

WM_MOUSEMOVE

0x0200

0x0127

WM_CHANGEUISTATE

WM_MOUSEWHEEL

0x020A

0x0128

WM_UPDATEUISTATE

WM_MOVE

0x0003

0x0129

WM_QUERYUISTATE

WM_MOVING

0x0216

0x0132

WM_CTLCOLORMSGBOX

WM_NCACTIVATE

0x0086

0x0133

WM_CTLCOLOREDIT

WM_NCCALCSIZE

0x0083

0x0134

WM_CTLCOLORLISTBOX

WM_NCCREATE

0x0081

0x0135

WM_CTLCOLORBTN

WM_NCDESTROY

0x0082

0x0136

WM_CTLCOLORDLG

WM_NCHITTEST

0x0084

0x0137

WM_CTLCOLORSCROLLBAR

WM_NCLBUTTONDBLCLK

0x00A3

0x0138

WM_CTLCOLORSTATIC

WM_NCLBUTTONDOWN

0x00A1

0x0200

WM_MOUSEFIRST

WM_NCLBUTTONUP

0x00A2

0x0200

WM_MOUSEMOVE

WM_NCMBUTTONDBLCLK

0x00A9

0x0201

WM_LBUTTONDOWN

WM_NCMBUTTONDOWN

0x00A7

0x0202

WM_LBUTTONUP

WM_NCMBUTTONUP

0x00A8

0x0203

WM_LBUTTONDBLCLK

595

WM_NCMOUSEHOVER

0x02A0

0x0204

WM_RBUTTONDOWN

WM_NCMOUSELEAVE

0x02A2

0x0205

WM_RBUTTONUP

WM_NCMOUSEMOVE

0x00A0

0x0206

WM_RBUTTONDBLCLK

WM_NCPAINT

0x0085

0x0207

WM_MBUTTONDOWN

WM_NCRBUTTONDBLCLK

0x00A6

0x0208

WM_MBUTTONUP

WM_NCRBUTTONDOWN

0x00A4

0x0209

WM_MBUTTONDBLCLK

WM_NCRBUTTONUP

0x00A5

0x0209

WM_MOUSELAST(95)

WM_NCXBUTTONDBLCLK

0x00AD

0x020A

WM_MOUSEWHEEL

WM_NCXBUTTONDOWN

0x00AB

0x020A

WM_MOUSELAST(NT4,98)

WM_NCXBUTTONUP

0x00AC

0x020B

WM_XBUTTONDOWN

WM_NEXTDLGCTL

0x0028

0x020C

WM_XBUTTONUP

WM_NEXTMENU

0x0213

0x020D

WM_XBUTTONDBLCLK

WM_NOTIFY

0x004E

0x020D

WM_MOUSELAST(2K,XP,2k3)

WM_NOTIFYFORMAT

0x0055

0x0210

WM_PARENTNOTIFY

WM_NULL

0x0000

0x0211

WM_ENTERMENULOOP

WM_PAINT

0x000F

0x0212

WM_EXITMENULOOP

WM_PAINTCLIPBOARD

0x0309

0x0213

WM_NEXTMENU

WM_PAINTICON

0x0026

0x0214

WM_SIZING

WM_PALETTECHANGED

0x0311

0x0215

WM_CAPTURECHANGED

WM_PALETTEISCHANGING

0x0310

0x0216

WM_MOVING

WM_PARENTNOTIFY

0x0210

0x0218

WM_POWERBROADCAST

WM_PASTE

0x0302

0x0219

WM_DEVICECHANGE

596

WM_PENWINFIRST

0x0380

0x0220

WM_MDICREATE

WM_PENWINLAST

0x038F

0x0221

WM_MDIDESTROY

WM_POWER

0x0048

0x0222

WM_MDIACTIVATE

WM_POWERBROADCAST

0x0218

0x0223

WM_MDIRESTORE

WM_PRINT

0x0317

0x0224

WM_MDINEXT

WM_PRINTCLIENT

0x0318

0x0225

WM_MDIMAXIMIZE

WM_QUERYDRAGICON

0x0037

0x0226

WM_MDITILE

WM_QUERYENDSESSION

0x0011

0x0227

WM_MDICASCADE

WM_QUERYNEWPALETTE

0x030F

0x0228

WM_MDIICONARRANGE

WM_QUERYOPEN

0x0013

0x0229

WM_MDIGETACTIVE

WM_QUERYUISTATE

0x0129

0x0230

WM_MDISETMENU

WM_QUEUESYNC

0x0023

0x0231

WM_ENTERSIZEMOVE

WM_QUIT

0x0012

0x0232

WM_EXITSIZEMOVE

WM_RBUTTONDBLCLK

0x0206

0x0233

WM_DROPFILES

WM_RBUTTONDOWN

0x0204

0x0234

WM_MDIREFRESHMENU

WM_RBUTTONUP

0x0205

0x0281

WM_IME_SETCONTEXT

WM_RENDERALLFORMATS

0x0306

0x0282

WM_IME_NOTIFY

WM_RENDERFORMAT

0x0305

0x0283

WM_IME_CONTROL

WM_SETCURSOR

0x0020

0x0284

WM_IME_COMPOSITIONFULL

WM_SETFOCUS

0x0007

0x0285

WM_IME_SELECT

WM_SETFONT

0x0030

0x0286

WM_IME_CHAR

WM_SETHOTKEY

0x0032

0x0288

WM_IME_REQUEST

597

WM_SETICON

0x0080

0x0290

WM_IME_KEYDOWN

WM_SETREDRAW

0x000B

0x0291

WM_IME_KEYUP

WM_SETTEXT

0x000C

0x02A1

WM_MOUSEHOVER

WM_SETTINGCHANGE

0x001A

0x02A3

WM_MOUSELEAVE

WM_SHOWWINDOW

0x0018

0x02A0

WM_NCMOUSEHOVER

WM_SIZE

0x0005

0x02A2

WM_NCMOUSELEAVE

WM_SIZECLIPBOARD

0x030B

0x02B1

WM_WTSSESSION_CHANGE

WM_SIZING

0x0214

0x02C0

WM_TABLET_FIRST

WM_SPOOLERSTATUS

0x002A

0x02DF

WM_TABLET_LAST

WM_STYLECHANGED

0x007D

0x0300

WM_CUT

WM_STYLECHANGING

0x007C

0x0301

WM_COPY

WM_SYNCPAINT

0x0088

0x0302

WM_PASTE

WM_SYSCHAR

0x0106

0x0303

WM_CLEAR

WM_SYSCOLORCHANGE

0x0015

0x0304

WM_UNDO

WM_SYSCOMMAND

0x0112

0x0305

WM_RENDERFORMAT

WM_SYSDEADCHAR

0x0107

0x0306

WM_RENDERALLFORMATS

WM_SYSKEYDOWN

0x0104

0x0307

WM_DESTROYCLIPBOARD

WM_SYSKEYUP

0x0105

0x0308

WM_DRAWCLIPBOARD

WM_TABLET_FIRST

0x02C0

0x0309

WM_PAINTCLIPBOARD

WM_TABLET_LAST

0x02DF

0x030A

WM_VSCROLLCLIPBOARD

WM_TCARD

0x0052

0x030B

WM_SIZECLIPBOARD

WM_THEMECHANGED

0x031A

0x030C

WM_ASKCBFORMATNAME

598

WM_TIMECHANGE

0x001E

0x030D

WM_CHANGECBCHAIN

WM_TIMER

0x0113

0x030E

WM_HSCROLLCLIPBOARD

WM_UNDO

0x0304

0x030F

WM_QUERYNEWPALETTE

WM_UNICHAR

0x0109

0x0310

WM_PALETTEISCHANGING

WM_UNINITMENUPOPUP

0x0125

0x0311

WM_PALETTECHANGED

WM_UPDATEUISTATE

0x0128

0x0312

WM_HOTKEY

WM_USER

0x0400

0x0317

WM_PRINT

WM_USERCHANGED

0x0054

0x0318

WM_PRINTCLIENT

WM_VKEYTOITEM

0x002E

0x0319

WM_APPCOMMAND

WM_VSCROLL

0x0115

0x031A

WM_THEMECHANGED

WM_VSCROLLCLIPBOARD

0x030A

0x0358

WM_HANDHELDFIRST

WM_WINDOWPOSCHANGED

0x0047

0x035F

WM_HANDHELDLAST

WM_WINDOWPOSCHANGING

0x0046

0x0360

WM_AFXFIRST

WM_WININICHANGE

0x001A

0x037F

WM_AFXLAST

WM_WTSSESSION_CHANGE

0x02B1

0x0380

WM_PENWINFIRST

WM_XBUTTONDBLCLK

0x020D

0x038F

WM_PENWINLAST

WM_XBUTTONDOWN

0x020B

0x0400

WM_USER

WM_XBUTTONUP

0x020C

0x8000

WM_APP

599

600

También podría gustarte