Tutorial de Autoit
Tutorial de Autoit
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:
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:
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!
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
Descripcin
(Archivos en el Nivel-Superior)
[Link]
AutoIt3_x64.exe
[Link]
AU3Info_x64.exe
[Link]
[Link]
[Link]
[Link]
AutoIt v3 [Link]
Aut2Exe
Icons\
[Link]
El compilador de script.
Aut2Exe_x64.exe
[Link]
AutoItSC_x64.bin
[Link]
Examples
GUI\
Helpfile\
AutoUpdateIt\
Editors\
Exe2Aut\
SQLite\
v2_to_v3_Converter\
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
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
BASIC,
BASIC
es
bien
conocido
para
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
21
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
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
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.
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
/out
/icon
/comp
/nopack
/pack
/x64
/x86
/console
28
/gui
/bin
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
Ttulos de ventanas
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
32
Texto del botn como &Yes, &No, & Next (el signo & indica una letra subrayada)
Texto de controles
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
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.
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++
ANSI
ANSI
ANSI
Unicode
UTF-8
UTF-8
Not supported
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:
39
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
@ProgramFilesDir
{SystemDrive}
Files(x86)"
&
"\Program
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
43
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
45
<=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
Descripcin
@AppDataCommonDir
@AppDataDir
@AutoItExe
@AutoItPID
@AutoItVersion
@AutoItX64
@COM_EventObj
@CommonFilesDir
@Compiled
@ComputerName
@ComSpec
@CPUArch
48
@CR
@CRLF
@DesktopCommonDir
@DesktopDir
@DesktopHeight
@DesktopWidth
@DesktopDepth
@DesktopRefresh
@DocumentsCommonDir
@error
@exitCode
@exitMethod
@extended
@FavoritesCommonDir
ruta a Favoritos
@FavoritesDir
@GUI_CtrlId
@GUI_CtrlHandle
@GUI_DragId
@GUI_DragFile
49
@GUI_DropId
@GUI_WinHandle
@HomeDrive
@HomePath
@HomeShare
@HOUR
@HotKeyPressed
@IPAddress1
@IPAddress2
@IPAddress3
@IPAddress4
@KBLayout
@LF
@LogonDNSDomain
@LogonDomain
@LogonServer
@MDAY
@MIN
50
@MON
@MSEC
@MUILang
@MyDocumentsDir
@NumParams
@OSArch
@OSBuild
@OSLang
@OSServicePack
@OSTYPE
@OSVersion
@ProcessorArch
@ProgramFilesDir
@ProgramsCommonDir
@ProgramsDir
@ScriptDir
@ScriptFullPath
@ScriptLineNumber
script compilado)
@ScriptName
@SEC
@StartMenuCommonDir
@StartMenuDir
@StartupCommonDir
@StartupDir
@SW_DISABLE
Desactiva la ventana.
@SW_ENABLE
Activa la ventana.
@SW_HIDE
@SW_LOCK
@SW_MAXIMIZE
@SW_MINIMIZE
@SW_RESTORE
@SW_SHOW
@SW_SHOWDEFAULT
@SW_SHOWMAXIMIZED
@SW_SHOWMINIMIZED
@SW_SHOWMINNOACTIVE
@SW_SHOWNA
52
@SW_SHOWNOACTIVATE
@SW_SHOWNORMAL
@SW_UNLOCK
@SystemDir
@TAB
@TempDir
@TRAY_ID
@TrayIconFlashing
@TrayIconVisible
@UserProfileDir
@UserName
@WDAY
@WindowsDir
@WorkingDir
@YDAY
@YEAR
Ao actual en cuatro-dgitos
53
Descripcin
Operadores de Asignacin
+=
-=
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
+
&
==
54
<>
>
>=
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 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
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
58
inicio
parada
incremento
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
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
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
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
With...Endwith
For...In...Next
Se detallan ms adelante
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
ACos
AdlibRegister
AdlibUnRegister
Asc
AscW
ASin
Assign
ATan
64
AutoItSetOption
AutoItWinGetTitle
AutoItWinSetTitle
Beep
Binary
BinaryLen
BinaryMid
BinaryToString
BitAND
BitNOT
BitOR
BitRotate
BitShift
BitXOR
BlockInput
Break
Call
CDTray
Ceiling
Chr
ChrW
ClipGet
ClipPut
65
ConsoleRead
ConsoleWrite
ConsoleWriteError
ControlClick
ControlCommand
ControlDisable
Deshabilita un control.
ControlEnable
Habilita un control.
ControlFocus
ControlGetFocus
ControlGetHandle
ControlGetPos
ControlGetText
ControlHide
Oculta un control.
ControlListView
ControlMove
ControlSend
ControlSetText
ControlShow
ControlTreeView
Cos
Dec
66
DirCopy
DirCreate
Crea un directorio/carpeta.
DirGetSize
DirMove
DirRemove
Borra un directorio/carpeta.
DllCall
DllCallbackFree
DllCallbackGetPtr
DllCallbackRegister
DllClose
DllOpen
DllStructCreate
DllStructGetData
DllStructGetPtr
DllStructGetSize
DllStructSetData
DriveGetDrive
DriveGetFileSystem
DriveGetLabel
DriveGetSerial
DriveGetType
DriveMapAdd
DriveMapDel
67
DriveMapGet
DriveSetLabel
DriveSpaceFree
DriveSpaceTotal
DriveStatus
EnvGet
EnvSet
EnvUpdate
Eval
Execute
Exp
FileChangeDir
FileClose
FileCopy
FileCreateNTFSLink
FileCreateShortcut
FileDelete
FileExists
FileFindFirstFile
FileFindNextFile
FileFlush
FileGetAttrib
FileGetEncoding
FileGetLongName
FileGetPos
FileGetShortcut
FileGetShortName
FileGetSize
FileGetTime
FileGetVersion
FileInstall
FileMove
FileOpen
FileOpenDialog
FileRead
FileReadLine
FileRecycle
FileRecycleEmpty
FileSaveDialog
FileSelectFolder
FileSetAttrib
FileSetPos
FileSetTime
FileWrite
FileWriteLine
69
Floor
FtpSetProxy
GUICreate
GUICtrlCreateAvi
GUICtrlCreateButton
GUICtrlCreateCheckbox
GUICtrlCreateCombo
GUICtrlCreateContextoMenu
GUICtrlCreateDate
GUICtrlCreateDummy
GUICtrlCreateEdit
GUICtrlCreateGraphic
GUICtrlCreateGroup
GUICtrlCreateIcon
GUICtrlCreateInput
GUICtrlCreateLabel
GUICtrlCreateList
GUICtrlCreateListView
GUICtrlCreateListViewItem
GUICtrlCreateMenu
GUICtrlCreateMenuItem
GUICtrlCreateMonthCal
GUICtrlCreateObj
GUICtrlCreatePic
GUICtrlCreateProgress
70
GUICtrlCreateRadio
GUICtrlCreateSlider
GUICtrlCreateTab
GUICtrlCreateTabItem
GUICtrlCreateTreeView
GUICtrlCreateTreeViewItem
GUICtrlCreateUpdown
GUICtrlDelete
Elimina un control.
GUICtrlGetHandle
GUICtrlGetState
GUICtrlRead
GUICtrlRecvMsg
GUICtrlRegisterListViewSort
GUICtrlSendMsg
GUICtrlSendToDummy
GUICtrlSetBkColor
GUICtrlSetColor
GUICtrlSetCursor
GUICtrlSetData
GUICtrlSetDefBkColor
GUICtrlSetDefColor
GUICtrlSetFont
71
GUICtrlSetGraphic
GUICtrlSetImage
GUICtrlSetLimit
GUICtrlSetOnEvent
GUICtrlSetPos
GUICtrlSetResizing
GUICtrlSetState
GUICtrlSetStyle
GUICtrlSetTip
GUIDelete
Borra una ventana GUI con todos los controles que esta
contiene.
GUIGetCursorInfo
GUIGetMsg
GUIGetStyle
GUIRegisterMsg
GUISetAccelerators
GUISetBkColor
GUISetCoord
GUISetCursor
GUISetFont
GUISetHelp
GUISetIcon
GUISetOnEvent
72
GUISetState
GUISetStyle
GUIStartGroup
GUISwitch
Hex
HotKeySet
HttpSetProxy
HttpSetUserAgent
HWnd
InetClose
InetGet
InetGetInfo
InetGetSize
InetRead
IniDelete
IniRead
IniReadSection
IniReadSectionNames
IniRenameSection
IniWrite
73
IniWriteSection
InputBox
Int
IsAdmin
IsArray
IsBinary
IsBool
IsDeclared
IsDllStruct
IsFloat
IsHWnd
IsInt
IsKeyword
IsNumber
IsObj
IsPtr
IsString
Log
MemGetStats
Mod
MouseClick
MouseClickDrag
MouseDown
MouseGetPos
MouseMove
MouseUp
MouseWheel
MsgBox
Number
ObjCreate
ObjEvent
ObjGet
ObjName
OnAutoItExitRegister
OnAutoItExitUnRegister
Ping
PixelChecksum
PixelGetColor
PixelSearch
PluginClose
PluginOpen
ProcessClose
75
ProcessExists
ProcessGetStats
ProcessList
ProcessSetPriority
ProcessWait
ProcessWaitClose
ProgressOff
ProgressOn
ProgressSet
Ptr
Random
RegDelete
RegEnumKey
RegEnumVal
RegRead
RegWrite
Round
Run
RunAs
RunAsWait
RunWait
76
Send
SendKeepActive
SetError
SetExtended
ShellExecute
ShellExecuteWait
Shutdown
Apaga el sistema.
Sin
Sleep
SoundPlay
SoundSetWaveVolume
SplashImageOn
SplashOff
SplashTextOn
Sqrt
SRandom
StatusbarGetText
StderrRead
StdinWrite
StdioClose
StdoutRead
String
77
texto.
StringAddCR
StringCompare
StringFormat
StringFromASCIIArray
StringInStr
StringIsAlNum
StringIsAlpha
StringIsASCII
StringIsDigit
StringIsFloat
StringIsInt
StringIsLower
StringIsSpace
StringIsUpper
StringIsXDigit
StringLeft
StringLen
StringLower
StringMid
78
StringRegExp
StringRegExpReplace
StringReplace
StringRight
StringSplit
StringStripCR
StringStripWS
StringToASCIIArray
StringToBinary
StringTrimLeft
StringTrimRight
StringUpper
Tan
TCPAccept
TCPCloseSocket
TCPConnect
TCPListen
TCPNameToIP
TCPRecv
TCPSend
TCPShutdown,
UDPShutdown
79
TCPStartup, UDPStartup
TimerDiff
TimerInit
ToolTip
TrayCreateItem
TrayCreateMenu
TrayGetMsg
TrayItemDelete
TrayItemGetHandle
TrayItemGetState
TrayItemGetText
TrayItemSetOnEvent
TrayItemSetState
TrayItemSetText
TraySetClick
TraySetIcon
TraySetOnEvent
TraySetPauseIcon
TraySetState
TraySetToolTip
TrayTip
UBound
80
UDPBind
UDPCloseSocket
UDPOpen
UDPRecv
UDPSend
VarGetType
WinActivate
WinActive
WinClose
WinExists
WinFlash
WinGetCaretPos
WinGetClassList
WinGetClientSize
WinGetHandle
WinGetPos
WinGetProcess
WinGetState
WinGetText
WinGetTitle
WinKill
WinList
WinMenuSelectItem
81
WinMinimizeAll
WinMinimizeAllUndo
WinMove
WinSetOnTop
WinSetState
WinSetTitle
WinSetTrans
WinWait
WinWaitActive
WinWaitClose
WinWaitNotActive
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
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
Button
Un Botn simple.
Input
Un simple control de lnea que permite introducir texto dentro del mismo.
Edit
Checkbox
Radio
Combo
List
Una lista.
Date
Un control calendario.
Pic
Una imagen.
Icon
Un icono.
Progress
86
Tab
UpDown
Avi
Menu
ContextMenu
TreeView
Slider
ListView
ListViewItem
Graphic
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
Explanation
GUICreate
GUICtrlCreate...
GUISetState
GUIGetMsg
GUICtrlRead
GUICtrlSetData
href="../functions/GUICtrlUpdate
[Link]">GUICtrlUpdate...
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.
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
$GUI_EVENT_MINIMIZE
$GUI_EVENT_RESTORE
$GUI_EVENT_MAXIMIZE
$GUI_EVENT_PRIMARYDOWN
$GUI_EVENT_PRIMARYUP
$GUI_EVENT_MOUSEMOVE
; Se ha movido el mouse
$GUI_EVENT_RESIZED
$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
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
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
@GUI_WINHANDLE
@GUI_CTRLHANDLE
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
$GUI_EVENT_MINIMIZE
$GUI_EVENT_RESTORE
$GUI_EVENT_MAXIMIZE
$GUI_EVENT_PRIMARYDOWN
$GUI_EVENT_PRIMARYUP
$GUI_EVENT_MOUSEMOVE
; Se ha movido el mouse
$GUI_EVENT_RESIZED
$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
98
100
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 = ""
$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
; Estas lineas
; son simplemente
; un ejemplo para
; crear algo de
; contenido para las celdas.
Tambin puede encontrar recursos COM en internet (no relacionados con AutoIt):
[Link] (introduccin)
[Link] (sobre Objetos en Visual Basic)
[Link]
[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
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
.windescript
El texto FormatWinError() derivado desde .number
ion
.source
107
.description
.helpfile
.helpcontext
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 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
Keyword
Descripcin
False / True
#comments-start
ContinueCase
ContinueLoop
Default
Do...Until
Enum
Enumera constantes.
Exit
ExitLoop
For...To...Step...Next
For...In...Next
Func...Return...EndFunc
If...Then
If...ElseIf...Else...EndIf
Declaracin condicional.
#include-once
#include
#NoAutoIt3Execute
#NoTrayIcon
#OnAutoItStartRegister
ReDim
#RequireAdmin
Select...Case...EndSelect
Declaracin condicional
112
Static
Switch...Case...EndSwitch
Declaracin condicional.
While...WEnd
With...EndWith
#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
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
Librera
definida de
usuario.
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
Librera
estndar
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
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
120
[opcional] Si esta presente, La palabra clave Const crea una Constante en vez de
una variable.
$variable
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
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
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
constantlist
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
nivel
[opcional] El nmero correspondiente del nivel del ciclo que desea terminar. Por
defecto es 1 (el ciclo actual).
Comentarios
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
inicio
parada
incremento
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
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
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
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
subscript
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
$variable
inicializador
dimensin
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
$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>
<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
With...EndWith
Usado para reducir referencias largas a variables de tipo objeto.
With <expresin>
declaracin
...
EndWith
Parmetros
expresin
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
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
@AppDataDir
@AutoItExe
@AutoItPID
@AutoItVersion
@AutoItX64
@COM_EventObj
@CommonFilesDir
@Compiled
@ComputerName
@ComSpec
@CPUArch
@CR
@CRLF
@DesktopCommonDir
@DesktopDir
@DesktopHeight
@DesktopWidth
@DesktopDepth
@DesktopRefresh
@DocumentsCommonDir
@error
@exitCode
@exitMethod
@extended
@FavoritesCommonDir
ruta a Favoritos
@FavoritesDir
@GUI_CtrlId
@GUI_CtrlHandle
@GUI_DragId
@GUI_DragFile
@GUI_DropId
@GUI_WinHandle
@HomeDrive
@HomePath
@HomeShare
@HOUR
@HotKeyPressed
@IPAddress1
@IPAddress2
@IPAddress3
@IPAddress4
@KBLayout
@LF
@LogonDNSDomain
@LogonDomain
@LogonServer
@MDAY
@MIN
@MON
@MSEC
@MUILang
@MyDocumentsDir
@NumParams
@OSArch
@OSBuild
@OSLang
@OSServicePack
@OSTYPE
@OSVersion
@ProcessorArch
@ProgramFilesDir
@ProgramsCommonDir
@ProgramsDir
@ScriptDir
@ScriptFullPath
@ScriptLineNumber
@ScriptName
@SEC
@StartMenuCommonDir
@StartMenuDir
@StartupCommonDir
@StartupDir
@SW_DISABLE
Desactiva la ventana.
@SW_ENABLE
Activa la ventana.
@SW_HIDE
@SW_LOCK
@SW_MAXIMIZE
@SW_MINIMIZE
@SW_RESTORE
@SW_SHOW
@SW_SHOWDEFAULT
@SW_SHOWMAXIMIZED
@SW_SHOWMINIMIZED
@SW_SHOWMINNOACTIVE
@SW_SHOWNA
@SW_SHOWNOACTIVATE
@SW_SHOWNORMAL
@SW_UNLOCK
@SystemDir
@TAB
@TempDir
@TRAY_ID
@TrayIconFlashing
@TrayIconVisible
@UserProfileDir
@UserName
@WDAY
@WindowsDir
@WorkingDir
@YDAY
@YEAR
Ao actual en cuatro-dgitos
Description
@Compiled
@error
@exitCode
@exitMethod
@extended
@NumParams
@ScriptName
@ScriptDir
@ScriptFullPath
@ScriptLineNumber
@WorkingDir
@AutoItExe
@AutoItPID
@AutoItVersion
@AutoItX64
@COM_EventObj
@GUI_CtrlId
@GUI_CtrlHandle
@GUI_DragID
@GUI_DragFile
@GUI_DropID
@HotKeyPressed
Para usar con las funciones WinSetState, Run, RunWait, FileCreateShortcut y FileGetShortcut:
@SW_DISABLE
Desactiva la ventana.
@SW_ENABLE
Activa la ventana.
@SW_HIDE
@SW_LOCK
@SW_MAXIMIZE
@SW_MINIMIZE
@SW_RESTORE
@SW_SHOW
@SW_SHOWDEFAULT
@SW_SHOWMAXIMIZED
@SW_SHOWMINIMIZED
@SW_SHOWMINNOACTIVE
@SW_SHOWNA
@SW_SHOWNOACTIVATE
@SW_SHOWNORMAL
@SW_UNLOCK
@TRAY_ID
@TrayIconFlashing
@TrayIconVisible
@CR
@LF
@CRLF
@TAB
Descripcin
@DesktopCommonDir
@DocumentsCommonDir
@FavoritesCommonDir
ruta a Favoritos
@ProgramsCommonDir
@StartMenuCommonDir
@StartupCommonDir
@DesktopDir
@MyDocumentsDir
@FavoritesDir
@ProgramsDir
150
@StartMenuDir
@StartupDir
@UserProfileDir
@HomePath
@HomeShare
@LogonDNSDomain
@LogonDomain
@LogonServer
@ProgramFilesDir
@CommonFilesDir
@WindowsDir
@SystemDir
@TempDir
@ComSpec
Descripcin
@CPUArch
@KBLayout
@MUILang
@OSArch
@OSLang
@OSTYPE
@OSVersion
@OSBuild
@OSServicePack
@ComputerName
@UserName
@IPAddress1
@IPAddress2
@IPAddress3
@IPAddress4
@DesktopHeight
@DesktopWidth
@DesktopDepth
@DesktopRefresh
Descripcin
@MSEC
@SEC
152
@MIN
@HOUR
@MDAY
@MON
@YEAR
Ao actual en cuatro-dgitos
@WDAY
@YDAY
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
Funcin
Descripcin
ClipGet
ClipPut
EnvGet
EnvSet
EnvUpdate
MemGetStats
ClipGet
Devuelve el texto del portapapeles.
ClipGet
Parmetros
Ninguno.
Valor de retorno
Con xito:
Al Fallar:
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
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
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
valor
Valor de Retorno
Con xitos
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
159
Funcin
Descripcin
ConsoleRead
ConsoleWrite
ConsoleWriteError
DirCopy
DirCreate
Crea un directorio/carpeta.
DirGetSize
DirMove
DirRemove
Borra un directorio/carpeta.
DriveGetDrive
DriveGetFileSystem
DriveGetLabel
DriveGetSerial
DriveGetType
160
DriveMapAdd
DriveMapDel
DriveMapGet
DriveSetLabel
DriveSpaceFree
DriveSpaceTotal
DriveStatus
FileChangeDir
FileClose
FileCopy
FileCreateNTFSLink
FileCreateShortcut
FileDelete
FileExists
FileFindFirstFile
FileFindNextFile
FileFlush
FileGetAttrib
161
FileGetEncoding
FileGetLongName
FileGetPos
FileGetShortcut
FileGetShortName
FileGetSize
FileGetTime
FileGetVersion
FileInstall
FileMove
FileOpen
FileOpenDialog
FileRead
FileReadLine
FileRecycle
FileRecycleEmpty
FileSaveDialog
FileSelectFolder
FileSetAttrib
162
FileSetPos
FileSetTime
FileWrite
FileWriteLine
IniDelete
IniRead
IniReadSection
IniReadSectionNames Lee todas las secciones en un fichero .ini con formato estndar.
IniRenameSection
IniWrite
IniWriteSection
ConsoleRead
Lee datos desde la secuencia STDIN del proceso de script de AutoIt.
ConsoleRead ( [peek = false[, binario = false ]])
Parmetros
peek
binario
163
Valor de Retorno
Con xitos
Al Fallar
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
dir destino
flag
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
flag
Valor de Retorno
Con xitos
Al Fallar
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
DirMove
Mueve un directorio y todos sus subdirectorios y ficheros.
DirMove ( dir fuente, dir destino [, flag] )
Parmetros
dir fuente
dir destino
flag
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
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
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
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
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
Valor de Retorno
171
Con xitos
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"
"FAT32"
"NTFS"
"NWFS"
"CDFS"
"UDF"
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
Valor de Retorno
Con xitos
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
Valor de Retorno
173
Con xitos
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
Valor de Retorno
Con xitos
Al Fallar
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
flags
usuario
contrasea
Valor de Retorno
Con xitos
175
Al Fallar
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
DriveMapDel
Desconecta una unidad de red.
176
DriveMapDel ( "unidad" )
Parmetros
unidad
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
Al Fallar
Comentarios
Ninguno
Relativo
DriveMapAdd, DriveMapDel
Ejemplo
DriveSetLabel
Establece la Etiqueta de Volumen de una unidad.
DriveSetLabel ( "ruta", "etiqueta" )
Parmetros
ruta
etiqueta
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
Valor de Retorno
Con xitos
Al Fallar
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
Valor de Retorno
Con xitos
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
Valor de Retorno
Valor
Interpretacin
UNKNOWN
READY
NOTREADY
INVALID
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
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
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
destino
flag
183
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
hardlink
flag
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.
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
workdir
icono
hotkey
icono
nmero
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
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
Valor de Retorno
187
Con xitos
Devuelve 1.
Al Fallar
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
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
Al Fallar
Comentarios
189
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:
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
Al Fallar
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:
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
flag
Valor de Retorno
194
Con xitos
Al Fallar
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:
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
Valor de Retorno
Con xitos
Al Fallar
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
flag
Valor de Retorno
Con xitos
Al Fallar
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
Al Fallar
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
formato
Valor de Retorno
Con xitos
Devuelve un arreglo o cadena que contiene informacin del tiempo del archivo.
Ver observaciones.
Al Fallar
Comentarios
El arreglo es unidimensional conteniendo seis elementos:
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
Valor de Retorno
Con xitos
Al Fallar
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
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
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
destino
flag
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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.
Valor de Retorno
Con xitos
Devuelve un identificador "handle" del archivo para uso con las subsecuentes
funciones de fichero.
Al Fallar
Comentarios
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)
FileOpenDialog
Inicia un cuadro de dilogo de Abrir Archivo.
FileOpenDialog ("ttulo", "init dir", "filtro" [, opciones [, "nombre por defecto" [, hwnd]]])
Parmetros
ttulo
init dir
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
206
Valor de Retorno
Con xitos
Al Fallar
Establece @error a:
@error:
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
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
Especial:
Al Fallar
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
lnea
Valor de Retorno
Con xitos
Especial:
Al Fallar
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
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
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
dir inicial
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
hwnd
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:
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
FileSelectFolder
Inicializa un dilogo de seleccin de carpeta.
FileSelectFolder ( "texto dilogo ", "dir root" [, flag [, "dir inicial" [, hwnd]]] )
Parmetros
texto
dilogo
dir root
directorio Root del rbol de la GUI. Use "" para mostrar el Escritorio como root.
flag
dir inicial
es blank ("").
hwnd
Valor de Retorno
Con xitos
Al Fallar
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
215
+-RASHNOT
recursin
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
Valor de Retorno
Con xitos:
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
tiempo
tipo
recursin
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
texto/dato
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
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
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
seccin
222
clave
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
"seccin"
clave
223
por defecto
Valor de Retorno
Con xitos
Al Fallar
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
seccin
Valor de Retorno
224
Con xitos
Al Fallar
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
225
fichero
Valor de Retorno
Con xitos
Devuelve un arreglo lineal con los nombres de todas las secciones del fichero
INI.
Al Fallar
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
seccin
nueva
seccin
flag
Valor de Retorno
Con xitos
Al Fallar
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
seccin
clave
valor
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
seccin
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
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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.
230
Funcin
Descripcin
Beep
PixelChecksum
PixelCoordMode
(Option)
PixelGetColor
PixelSearch
SoundPlay
Beep
Emite un sonido por el altavoz del sistema para el usuario.
Beep ( [ frecuencia [, duracin ]] )
Parmetros
frecuencia
231
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
superior
derecha
inferior
paso
modo
Valor de Retorno
Con xito:
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
hwnd
Valor de Retorno
Con xito:
Al Fallar:
Comentarios
Ninguno.
Relativo
PixelSearch, PixelCoordMode (Option), MouseGetPos, PixelChecksum
Ejemplo
$var = PixelGetColor( 10 , 100 )
234
PixelSearch
Busca un rectngulo de pixeles el color de pixel especificado.
PixelSearch ( izquierda, superior, derecha, inferior, color [, variacin-tono [, paso [, hwnd]]] )
Parmetros
izquierda
superior
derecha
inferior
color
variacintono
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
Valor de Retorno
Con xito:
Al Fallar:
Comentarios
La direccin de bsqueda se realiza como sigue:
235
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
SoundPlay
Ejecuta un archivo de sonido.
SoundPlay ( "nombre de archivo" [, esperar] )
Parmetros
nombre de
archivo
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
237
Valor de Retorno
Con xito:
Devuelve 1.
Al Fallar:
Comentarios
Relativo
SoundPlay
Ejemplo
SoundSetWaveVolume(50)
238
Descripcin
GUICtrlCreateAvi
GUICtrlCreateButton
GUICtrlCreateCheckbox
GUICtrlCreateCombo
GUICtrlCreateContextMenu
GUICtrlCreateDate
GUICtrlCreateDummy
GUICtrlCreateEdit
GUICtrlCreateGraphic
GUICtrlCreateGroup
GUICtrlCreateIcon
GUICtrlCreateInput
GUICtrlCreateLabel
GUICtrlCreateList
GUICtrlCreateListView
GUICtrlCreateListViewItem
GUICtrlCreateMenu
GUICtrlCreateMenuItem
GUICtrlCreateMonthCal
239
GUICtrlCreateObj
GUICtrlCreatePic
GUICtrlCreateProgress
GUICtrlCreateRadio
GUICtrlCreateSlider
GUICtrlCreateTab
GUICtrlCreateTabItem
GUICtrlCreateTreeView
GUICtrlCreateTreeViewItem
GUICtrlCreateUpdown
GUICtrlDelete
Elimina un control.
240
Descripcin
HotKeySet
Send
SendAttachMode
(Option)
SendCapslockMode
(Option)
SendKeepActive
SendKeyDelay
(Option)
SendKeyDownDelay
(Option)
HotKeySet
Establece el mtodo de teclado para una funcin de usuario determinada.
HotKeySet ( "tecla" [, "funcin"] )
241
Parmetros
tecla
funcin
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
F12
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
Otros
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
bandera
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}
{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}
{LWIN}
{RWIN}
{NUMLOCK on}
NUMLOCK (on/off/toggle)
{CAPSLOCK off}
CAPSLOCK (on/off/toggle)
{SCROLLLOCK toggle}
SCROLLLOCK (on/off/toggle)
{BREAK}
{PAUSE}
PAUSE
{NUMPAD0} - {NUMPAD9}
{NUMPADMULT}
{NUMPADADD}
Numpad Agregar
{NUMPADSUB}
Numpad Sustraer
{NUMPADDIV}
Numpad Dividir
{NUMPADDOT}
Numpad punto
{NUMPADENTER}
{APPSKEY}
{LALT}
{RALT}
{LCTRL}
{RCTRL}
{LSHIFT}
{RSHIFT}
247
{SLEEP}
Tecla SLEEP
{ALTDOWN}
{SHIFTDOWN}
{CTRLDOWN}
{LWINDOWN}
{RWINDOWN}
{ASC nnnn}
{BROWSER_BACK}
{BROWSER_FORWARD}
{BROWSER_REFRESH}
{BROWSER_STOP}
{BROWSER_SEARCH}
{BROWSER_FAVORITES}
{BROWSER_HOME}
{VOLUME_MUTE}
{VOLUME_DOWN}
248
{VOLUME_UP}
{MEDIA_NEXT}
{MEDIA_PREV}
{MEDIA_STOP}
{MEDIA_PLAY_PAUSE}
{LAUNCH_MAIL}
{LAUNCH_MEDIA}
{LAUNCH_APP1}
{LAUNCH_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
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}")
Send("+{TAB}")
Send("^{TAB}")
Send("^+{TAB}")
Send("{SPACE}")
Send("{+}")
Send("{-}")
Send("{NumPadMult}")
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}")
250
Send("{UP}")
Send("{LEFT}")
Send("{RIGHT}")
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
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
texto
Valor de Retorno
Con xito:
Devuelve 1.
Al Fallar:
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
ACos
ASin
ATan
BitAND
BitNOT
BitOR
BitRotate
BitShift
BitXOR
Cos
Ceiling
Exp
Floor
Log
254
Mod
Random
Round
Sin
Sqrt
SRandom
Tan
Abs
Calcula el valor absoluto de un nmero.
Abs (expresin)
Parmetros
expresin
Valor de Retorno
Devuelve el valor absoluto de expresin.
Comentarios
Una cadena puede tener valor cero.
Relativo
Ninguno.
Ejemplo
255
ACos
Calcula el arco coseno de un nmero.
ACos ( expresin )
Parmetros
expresin
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
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
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
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
BitNOT
Realiza una operacin NOT a nivel de bit.
BitNOT (valor)
Parmetros
valor
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
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
alternacin
tamao
parmetro Tamao:
"B"
"W"
"D"
Valor de Retorno
Con xitos:
Al Fallar:
261
BitShift
Realiza una operacin de alternacin de bit.
BitShift (valor, alternacin )
Parmetros
valor
alternacin
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
El primer nmero.
valor2
El segundo nmero.
valor n
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
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
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
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
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
Valor de Retorno
Con xitos
266
Al Fallar
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
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
Mx
Bandera
Valor de Retorno
Con xito:
Al Fallar:
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
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
cifras
decimales
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
Valor de Retorno
Con xito:
Al Fallar:
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
Funcin
Descripcin
InputBox
MsgBox
ProgressOff
ProgressOn
ProgressSet
SplashImageOn
SplashOff
SplashTextOn
ToolTip
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
prompt
por defecto
password
char
ancho
altura
izquierda
top
intervalo
hwnd
Valor de Retorno
Con xitos
Al Fallar
@Error
275
MsgBox
Muestra un simple cuadro de mensaje con tiempo opcional para expirar.
MsgBox (flag, "ttulo", "texto" [, tiempo lmite [, hwnd]])
Parmetros
276
flag
ttulo
texto
tiempo
lmite
hwnd
[opcional] El apuntador de la ventana para usar como el padre para esta caja de
dilogo.
Valor de Retorno
Con xito:
Al Fallar:
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
0x2
0x3
Si y No
0x4
Reintentar y Cancelar
0x5
6 **
0x6
flag
decimal
Resultado de Icono-relacionado
flag
hexadecimal
(No cono)
0x0
16
0x10
32
0x20
48
0x30
64
0x40
flag
decimal
flag
hexadecimal
0x0
256
0x100
512
0x200
278
flag
decimal
Resultado de Modalidad
flag
hexadecimal
Aplicacin
0x0
4096
0x1000
8192
Modalidad de Tarea
0x2000
flag
decimal
Resultado de Miscelneos
flag
hexadecimal
(nada especial)
0x0
262144
0x40000
524288
0x80000
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
subtexto
[opcional] texto para Sub, Normal, Etiqueta inferior. (por defecto est en
blanco)
pos x
pos y
opc
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
subtexto
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
archivo
ancho
altura
pos x
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
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
texto
ancho
altura
posicin x
posicin y
[opcional] Posicin desde arriba (en pixeles) de la ventana. (por defecto est
centrado)
opc
[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
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
ttulo
icono
opciones
Valor de Retorno
Con xitos:
Devuelve 1.
Al fallar:
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
Descripcin
AdlibRegister
AdlibUnRegister
AutoItSetOption
AutoItWinGetTitle
AutoItWinSetTitle
BlockInput
Break
Call
CDTray
Execute
ExpandEnvStrings
(Option)
ExpandVarStrings
(Option)
OnAutoItExitRegister
OnAutoItExitUnRegister
Opt
SetError
SetExtended
VarGetType
288
AdlibRegister
Registra una funcin Adlib.
AdlibRegister ( "funcin" [, tiempo] )
Parmetros
funcin
tiempo
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
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
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
ExpandEnvStrings
ExpandVarStrings
GUICloseOnESC
GUICoordMode
GUIOnEventMode
GUIResizeMode
GUIEventOptions
MouseClickDelay
MouseClickDownDelay
MouseClickDragDelay
MouseCoordMode
MustDeclareVars
PixelCoordMode
SendAttachMode
SendCapslockMode
SendKeyDelay
Tiempo en
milisegundos a pausar
(por defecto=5).
SendKeyDownDelay
Tiempo en
milisegundos a pausar
(por defecto=5).
TCPTimeout
TrayAutoPause
TrayIconDebug
TrayIconHide
TrayMenuMode
TrayOnEventMode
WinSearchChildren
WinTextMatchMode
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
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)
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
Ejemplo
$a = AutoItWinGetTitle()
AutoItWinSetTitle
BlockInput
Habilita/deshabilita el mouse y el teclado.
BlockInput (flag)
Parmetros
flag
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
Windows XP
Windows
Vista
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
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
parmetro
Valor de Retorno
Con xitos
Al Fallar
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
CDTray
status
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
Valor de Retorno
Con xitos
Al Fallar
Comentarios
Ninguno.
Relativo
Assign, Eval, Call
Ejemplo
$a=1
$v=Execute("$a+1") ; $v es establecido a 2
OnAutoItExitRegister
Valor de Retorno
Con xitos:
Al Fallar:
Comentarios
El cdigo de salida puede ser recibido desde @ExitCode.
El modod de salida puede recibido desde @ExitMethod.
0
Cierre natural.
301
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
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
extendido
valor de
retorno
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
valor de
retorno
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
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
Descripcin
MouseClick
MouseClickDelay
(Option)
MouseClickDownDelay
Altera el tiempo de retardo al presionar y liberar el mouse.
(Option)
MouseClickDrag
MouseClickDragDelay
(Option)
MouseCoordMode
(Option)
MouseDown
MouseGetCursor
MouseGetPos
MouseMove
MouseUp
MouseWheel
MouseClick
Realiza una operacin de clic del mouse.
MouseClick ("botn" [, x, y [, clics [, velocidad ]]])
Parmetros
botn
x, y
clics
velocidad
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)
MouseClickDrag
x1, y1
x2, y2
velocidad
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
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
MouseGetPos
[opcional] Un argumento opcional que determina que valor que ser devuelto.
Ver Valor Devuelto.
310
Valor de Retorno
Dimensin
Valores
Ninguno
MouseMove
velocidad
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
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
"up"(arriba) o "down"(abajo)
clicks
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
Descripcin
FtpSetProxy
HttpSetProxy
HttpSetUserAgent
InetClose
InetGet
InetGetInfo
InetGetSize
InetRead
Ping
TCPAccept
TCPCloseSocket
TCPConnect
TCPListen
TCPNameToIP
TCPRecv
TCPSend
TCPShutdown
TCPStartup
TCPTimeout (Option)
UDPBind
UDPCloseSocket
UDPOpen
314
UDPRecv
UDPSend
UDPShutdown
UDPStartup
FtpSetProxy
Establece el proxy de internet para usar en acceso FTP.
FtpSetProxy ( modo [, "proxy:port" [, "username", ["password"]] )
Parmetros
modo
proxy:port
username
password
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
proxy:port
username
password
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
HttpSetUserAgent
Establece la cadena user-agent enviada con peticiones InetGet() y InetRead().
HttpSetUserAgent ( "user agent" )
Parmetros
user agent
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
nombre de
fichero
opciones
318
Valor de Retorno
Con xitos
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
InetGetInfo
Devuelve detalles de datos para un identificador (handle) devuelto desde InetGet().
InetGetInfo( [ identificador [, ndice ]] )
Parmetros
identificador [opcional] Un identificador devuelto desde InetGet().
ndice
Valor de Retorno
Con xitos - El dato requerido.
Al Fallar - Una cadena en blanco "" y @error es establecido a no-cero.
Comentarios
320
InetGetSize
opciones
Valor de Retorno
Con xitos
Al Fallar
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
opciones
Valor de Retorno
322
Con xitos:
Al Fallar:
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
323
Valor de Retorno
Con xito:
Al Fallar:
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:
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
;---------------------------------------------------------------$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
puerto
Valor de Retorno
Con xito:
Al Fallar:
@error:
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
puerto
MaxPendingConnection
Valor de Retorno
Con xito:
Al Fallar:
@error:
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
Valor de Retorno
Con xito:
Al Fallar:
@error:
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
bandera
Valor de Retorno
Con xito:
Al Fallar:
@error:
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
Return $aRet
EndFunc ;==>SocketToIP
TCPSend
El identificador del socket conectado (ID del Socket) como es devuelto por la
funcin TCPConnect.
datos
Valor de Retorno
Con xito:
Al Fallar:
@error:
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
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
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
puerto
Valor de Retorno
Con xitos
Al Fallar
@error:
Comentarios
Ninguno.
Relativo
UDPRecv, UDPOpen, UDPCloseSocket, UDPSend
Ejemplo
;SERVIDOR!! Iniciarme primero!!!!!!!!!!!!!!!
$g_IP = "[Link]"
337
UDPCloseSocket
Cierra un socket UDP.
UDPCloseSocket ( socketarray )
Parmetros
socketarray
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
UDPOpen
Abre un socket conectado para un servidor existente.
UDPOpen ( IPAddr, puerto [, flag] )
Parmetros
IPAddr
puerto
flag
Valor de Retorno
Con xitos
Al Fallar
@error:
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
UDPRecv
Recibe datos de un socket abierto.
UDPRecv ( socketarray, Longitud mxima [, flag] )
Parmetros
socketarray
Longitud
mxima
flag
Valor de Retorno
Con xitos:
Al Fallar:
@error:
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
dato
Valor de Retorno
Con xitos
Al Fallar
@error:
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
Descripcin
ObjCreate
ObjEvent
ObjGet
ObjName
ObjCreate
Crea una referencia a un objeto COM de el nombre de clase dado.
ObjCreate ( "NombreDeClase" [, "NombreDeServidor" [,"NombreDeUsuario",
["contrasea"]]])
Parmetros
NombreDeClase
NombreDeServidor
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=""
; 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:
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
$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]
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
NombreDeClase
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 = ""
else
Msgbox (0,"Excel File Test","Error: No se puede abrir "& $FileName & " como un Objeto de
Excel.")
endif
ObjName
Bandera
Valor de Retorno
Con xito:
Al Fallar:
Comentarios
No todos los Objetos soportan Flags 2 a 5. Siempre es bueno probar por medio de @error en
estos casos.
Relativo
349
350
Descripcin
DllCall
DllCallbackFree
DllCallbackGetPtr
Devuelve el puntero para una funcin callback que puede ser pasado
al API Win32.
DllCallbackRegister
DllClose
DllOpen
DllStructCreate
DllStructGetData
DllStructGetPtr
DllStructGetSize
DllStructSetData
PluginOpen
PluginClose
ProcessClose
ProcessExists
ProcessGetStats
ProcessSetPriority
ProcessList
ProcessWait
ProcessWaitClose
Run
RunWait
351
el programa finaliza.
RunAs
RunAsWait
ShellExecute
ShellExecuteWait
Shutdown
Apaga el sistema.
StderrRead
StdinWrite
StdioClose
StdoutRead
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
funcin
tipo1
parmetro1
tipo n
Detalles
none
BYTE
BOOLEAN
short
un entero de 16 bit
USHORT
WORD
int
un entero de 32 bit
long
un entero de 32 bit
BOOL
un entero de 32 bit
UINT
ULONG
DWORD
INT64
un entero de 64 bit
UINT64
ptr
un puntero general(void *)
HWND
HANDLE
un identificador (pointer)
float
double
INT_PTR,
LONG_PTR,
LRESULT,
LPARAM
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
wstr
Adicionar * al final de otro tipo de dato para pasarlo por referencia. Por
ejemplo "int*" pasa un puntero a un tipo "int".
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
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
Valor de Retorno
Con xitos
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
tipo de
retorno
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
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
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
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
Valor de Retorno
Con xitos
Al Fallar
@Error:
Type
Details
BYTE
BOOLEAN
CHAR
WCHAR
short
USHORT
WORD
int
long
BOOL
UINT
ULONG
DWORD
INT64
UINT64
ptr
HWND
32bit(4bytes) entero
HANDLE
32bit(4bytes) entero
float
double
INT_PTR,
LONG_PTR,
LRESULT,
LPARAM
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
Elemento
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:
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
elemento
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
Valor de Retorno
Con xitos:
Al Fallar:
@Error:
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
Elemento
valor
ndice
Valor de Retorno
Con xitos:
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
Comentarios
Ninguno.
Relativo
PluginClose
Ejemplo
$handle = PluginOpen("[Link]")
PluginClose
369
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
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
Valor de Retorno
Con xito:
Al Fallar:
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
Valor de Retorno
Con xito:
Al Fallar:
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
ProcessSetPriority
Cambia la prioridad de un proceso
ProcessSetPriority ("proceso", prioridad)
Parmetros
proceso
prioridad
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
Valor de Retorno
Con xito:
Al Fallar:
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
ProcessWait
Pausa el script ejecucin hasta que proceso dado exista.
ProcessWait ("proceso" [, tiempoExpiracin])
Parmetros
proceso
tiempoExpiracin
Valor de Retorno
Con xito:
Al Fallar:
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
tiempoExpiracin
Valor de Retorno
Con xito:
Al Fallar:
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:
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
flag_mostrar
opt_flag
Valor de Retorno
Con xito:
Al Fallar:
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
contrasea
flag_acceso
programa
La ruta completa del programa (EXE, BAT, COM, o PIF) a ejecutar (ver
Comentarios).
directorio de
Trabajo
flag_mostrar
opt_flag
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:
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
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
dominio
contrasea
flag_acceso
programa
La ruta completa del programa (EXE, BAT, COM, o PIF) a ejecutar (ver
Comentarios).
381
directorio_de_Trabajo
flag_mostrar
opt_flag
Valor de Retorno
Con xito:
Al Fallar:
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
Parmetros
Directorio_de_trabajo
verbo
flagDeAparicin
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
Parmetros
Directorio_de_Trabajo
verbo
384
flagDeAparicin
Valor de Retorno
Con xito:
Al Fallar:
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
razn
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
El ID del proceso de un proceso hijo, como es devuelto por una llamada previa
de Run.
revisin
binario
Valor de Retorno
Con xito:
Al Fallar:
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:
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
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
binario
Valor de Retorno
Con xito:
Al Fallar:
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
Descripcin
RegDelete
RegEnumKey
RegEnumVal
RegRead
RegWrite
RegDelete
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
RegEnumKey
Valor de Retorno
Con xito:
Al Fallar:
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
Valor de Retorno
Con xito:
Al Fallar:
Comentarios
394
RegRead
Al Fallar:
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
valor
Valor de Retorno
Con xito:
Devuelve 1.
396
Al Fallar:
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
398
Funcin
Descripcin
StringAddCR
StringCompare
StringInStr
StringIsAlNum
StringIsAlpha
StringIsASCII
StringIsDigit
StringIsFloat
StringFormat
StringFromASCIIArray
StringIsInt
StringIsLower
StringIsSpace
399
StringIsUpper
StringIsXDigit
StringLeft
StringLen
StringLower
StringMid
StringRegExp
StringRegExpReplace
StringReplace
StringRight
StringSplit
StringStripCR
StringStripWS
StringToASCIIArray
StringTrimLeft
StringTrimRight
StringUpper
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
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
cadena de
texto2
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
>0
<0
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
inicio
cantidad
Valor de Retorno
Con xito:
Al Fallar:
@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:
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:
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:
Comentarios
Ninguno.
Relativo
405
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:
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
Valor de Retorno
Con xito:
Devuelve 1.
Al Fallar:
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
var1...var32
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
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
Flotante
Flotante
Flotante
Flotante
Cadena Cadena de
de texto texto.
Bandera de especificacin
Bandera Significado
Predeterminado
Blank
No aparece en blanco.
Significado
Predeterminado
d, i,
u, o,
x, X
Precisin determinada es 1.
e, E
Precisin predeterminada es 6; si
la precisin es 0 o el punto (.)
aparece sin un nmero despus,
no se imprimir el punto decimal.
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
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'
$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
inicio
final
codificacin
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:
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:
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:
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:
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
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:
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
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
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
contador
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
flag
compensar
419
Bandera
Valores
Valor de Retorno
Bandera = 0 :
@Error
Significado
Bandera = 1 o 2 :
@Error
Significado
Bandera = 3 o 4 :
@Error
Significado
Arreglo es vlido.
420
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
[^ ... ]
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:]
[^:class:]
( ... )
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)
(?-i)
(?: ... )
(?i: ... )
(?-i: ... )
422
(?m)
(?s)
. coincide cualquier incluyendo una nueva lnea. (por defecto "." no coincide con
una nueva lnea)
(?x)
(?U)
\\
\a
\A
\b
\B
\c
\d
\D
\e
\E
\f
\h
\H
423
\n
\Q
\r
\s
\S
\t
\v
\V
\w
Coincide con cualquier caracter "palabra": a-z, A-Z, 0-9 o lnea de subrayar (_).
\W
\###
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
\Z
Caracteres de repeticin
{x}
{x,}
{0,x}
424
{x, y}
? (despus
de que un
caracter se
repita)
Clases de Caracter
[:alnum:]
letras y dgitos
[:alpha:]
letras
[:ascii:]
[:blank:]
[:cntrl:]
caracter de control
[:digit:]
[:graph:]
[:lower:]
letras minsculas
[:print:]
[:punct:]
[:space:]
espacio en blanco (no es muy parecido como \s, incluye VT: chr(11) )
[:upper:]
letras maysculas
425
[:word:]
[: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
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
reemplazo
contador
Valor de Retorno
@Error
Significado
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.
La cadena de reemplazo.
ocurrencia
caso_sensitivo
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
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
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"
inicio
final
codificacin
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
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
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
436
Funcin
Descripcin
Sleep
TimerInit
TimerDiff
Sleep
Pausa la ejecucin del script.
Sleep (retraso)
Parmetros
retraso
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
Funcin
Descripcin
TrayAutoPause
(Option)
TrayCreateItem
TrayCreateMenu
TrayItemDelete
TrayItemGetHandle
TrayItemGetState
TrayItemGetText
TrayItemSetOnEvent
TrayItemSetState
TrayItemSetText
TrayGetMsg
TrayIconDebug
(Option)
TrayIconHide (Option) Oculta el icono de AutoIt, de la bandeja de conos (tray icono). Nota: El
440
TrayOnEventMode
(Option)
TraySetClick
TraySetIcon
TraySetOnEvent
Define una funcin de usuario que ser invocada cuando una accin
especial ocurre en la bandeja.
TraySetPauseIcon
TraySetState
TraySetToolTip
TrayTip
TrayAutoPause
TrayCreateItem
Crea un control de itemMenu para la bandeja.
TrayCreateItem ( texto [, IDmenu [, entradaMenu [, itemRadioMenu]]] )
Parmetros
441
texto
IDmenu
entradaMenu
itemRadioMenu
Valor de Retorno
Con xito:
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
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
entradaMenu
[opcional] Permite definir el nmero de entrada para ser creada. Las entradas
444
Valor de Retorno
Con xito:
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
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:
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
TrayItemGetState
Obtiene el estado actual de un control.
448
[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
TrayItemSetOnEvent
Define un Funcin de usuario para ser invocada cuando un item del cono de Autoit es
clickeado.
TrayItemSetOnEvent (itemID, "funcin")
Parmetros
itemID
funcin
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
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
Devuelve 0.
Comentarios
Tabla de estado
Estado
Valor Comentarios
Sin cambio
$TRAY_CHECKED
$TRAY_UNCHECKED 4
$TRAY_ENABLE
64
$TRAY_DISABLE
128
$TRAY_FOCUS
256
$TRAY_DEFAULT
512
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
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
$TRAY_EVENT_PRIMARYDOWN
$TRAY_EVENT_PRIMARYUP
$TRAY_EVENT_PRIMARYDOUBLE
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
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
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
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
funcin
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
$TRAY_EVENT_HIDEICON
-4
$TRAY_EVENT_FLASHICON
-5
$TRAY_EVENT_NOFLASHICON
-6
$TRAY_EVENT_PRIMARYDOWN
-7
461
$TRAY_EVENT_PRIMARYUP
-8
$TRAY_EVENT_SECONDARYDOWN
-9
$TRAY_EVENT_SECONDARYUP
-10
$TRAY_EVENT_MOUSEOVER
-11
$TRAY_EVENT_PRIMARYDOUBLE
-13
$TRAY_EVENT_SECONDARYDOUBLE -14
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
iconID
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
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
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
tiempo
lmite
opciones
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
Funcin
Descripcin
Asc
AscW
Chr
ChrW
Assign
Binary
BinaryLen
BinaryMid
BinaryToString
Dec
Eval
Hex
HWnd
Int
468
IsAdmin
IsArray
IsBinary
IsBool
IsDeclared
IsDllStruct
IsFloat
IsHWnd
IsInt
IsKeyword
IsNumber
IsObj
IsPtr
IsString
MustDeclareVars
(Option)
Number
Ptr
String
469
StringToBinary
UBound
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
Al Fallar
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
Valor de Retorno
Con xitos
Al Fallar
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
dato
flag
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
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
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
iniciar
contador
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
flag
Valor de Retorno
Con xitos:
Al Fallar:
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
Dec
Devuelve la representacin numrica de una cadena hexadecimal.
Dec ( "hex" )
Parmetros
hex
Valor de Retorno
Con xitos
Devuelve un entero.
Al Fallar
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
Valor de Retorno
Con xitos
Al Fallar
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
Valor de Retorno
Con xitos
478
Al Fallar
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
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
Devuelve la representacin numrica del valor entero (el nmero completo) de una expresin.
Int (expresin)
Parmetros
expresin
Valor de Retorno
Con xitos
Devuelve un entero.
Al Fallar
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
Al Fallar
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
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
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
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
483
Valor de Retorno
Con xitos
Especial:
Al Fallar
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=1
If IsDeclared ("a") then
MsgBox(0,"", "$a ES declarado" )
EndIf
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
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
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
Al Fallar
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
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
Al Fallar
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
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
Al Fallar
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
Al Fallar
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
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
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
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
Valor de Retorno
Devuelve una cadena de texto.
Comentarios
491
StringToBinary
Convierte una cadena en datos binarios.
StringToBinary (expresin [, bandera])
Parmetros
expresin
bandera
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
UBound
Devuelve el tamao de un arreglo dimensionado.
UBound (Arreglo [, Dimensin])
Parmetros
Arreglo
Dimensin
Valor de Retorno
Con xitos
Al Fallar
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
Funcin
Descripcin
CaretCoordMode
(Option)
ControlClick
ControlCommand
ControlDisable
Deshabilita un control.
ControlEnable
Habilita un control.
ControlFocus
ControlGetFocus
ControlGetHandle
ControlGetPos
ControlGetText
ControlHide
Oculta un control.
ControlListView
ControlMove
495
ControlSend
ControlSetText
ControlShow
ControlTreeView
StatusbarGetText
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
texto
ID del
control
botn
496
clics
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
texto
ID del
control
comando
opciones
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", ""
"IsEnabled", ""
498
"ShowDropDown", ""
Despliega un ComboBox
"HideDropDown", ""
"AddString", 'string'
"DelString", ocurrencia
"FindString", 'string'
"SetCurrentSelection", ocurrencia
"SelectString", 'string'
"IsChecked", ""
"Check", ""
"UnCheck", ""
"GetCurrentLine", ""
"GetCurrentCol", ""
"GetCurrentSelection", ""
"GetLineCount", ""
"GetLine", lnea#
"GetSelected", ""
"EditPaste", 'cadena'
"CurrentTab", ""
499
SystabControl32
"TabRight", ""
"TabLeft", ""
"SendCommandID", Command ID
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
500
texto
ID del
control
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
texto
ID del
control
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
texto
ID del
control
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
texto
Valor de Retorno
Con xitos
Devuelve el ClassNameNN del control que ha tomado el foco por teclado dentro
de la ventana.
Al Fallar
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
texto
ID del
control
Valor de Retorno
Con xitos
Al Fallar
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
texto
ID del
control
Valor de Retorno
Con xitos
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
texto
ID del
control
Valor de Retorno
Con xitos
Al Fallar
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
texto
ID del
control
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
texto
506
ID del
control
comando
opciones1
opciones2
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
"GetItemCount"
"GetSelected" [, opciones]
"GetSelectedCount"
"GetSubItemCount"
"IsSelected", Item
"SelectAll"
507
"SelectClear"
"SelectInvert"
"ViewChange", "view"
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
508
texto
ID del
control
ancho
altura
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
texto
509
ID del
control
cadena
flag
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
texto
ID del
control
flag
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
texto
ID del
control
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
texto
ID del
control
comando
opciones1
opciones2
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"
"Collapse", "item"
"Exists", "item"
"Expand", "tem"
"GetItemCount", "tem"
"GetSelected" [, UseIndex]
"GetText", "tem"
"IsChecked"
"Select", "tem"
Selecciona un tem.
"Uncheck", "item"
513
Cada "nivel" es separado por un carcter |. Un ndice es precedido por el carcter #. Ejemplos:
tem
Encabezado2
"Encabezado2" o "#1"
Enca1SubItem2
"Encabezado1|Enca1SubItem2" o "#0|#1"
Enca1S1SubItem1
"Encabezado1|Enca1SubItem3|Enca1S1SubItem1" o "#0|#2|#0"
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
StatusbarGetText
Recupera el texto de una barra de estado estndar.
StatusbarGetText ("ttulo" [, "texto" [, parte]])
Parmetros
ttulo
texto
parte
Valor de Retorno
Con xito:
Al Fallar:
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
WinActivate
Activa (toma el foco) una ventana.
WinActivate ("ttulo" [, "texto"])
Parmetros
ttulo
texto
Valor de Retorno
Con xitos
Al Fallar
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
texto
Valor de Retorno
Con xitos
Al Fallar
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
517
texto
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
518
texto
Valor de Retorno
Con xitos
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
texto
parpadeo
espera
Valor de Retorno
Ninguno
Comentarios
519
WinGetCaretPos
Devuelve las coordenadas de intercalamiento para la ventana en primer plano.
WinGetCaretPos ( )
Parmetros
Ninguno
Valor de Retorno
Con xitos
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
texto
Valor de Retorno
Con xitos
Al Fallar
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
texto
Valor de Retorno
Con xitos
Al Fallar
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
texto
Valor de Retorno
Con xitos
Al Fallar
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
WinGetPos
Devuelve la posicin y tamao de una ventana dada.
WinGetPos ("ttulo" [, "texto"])
Parmetros
ttulo
texto
Valor de Retorno
Con xitos
Al Fallar
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
texto
Valor de Retorno
Con xitos
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
texto
525
Valor de Retorno
Con xitos
Al Fallar
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
texto
526
Valor de Retorno
Con xitos
Al Fallar
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
texto
Valor de Retorno
Con xitos
Al Fallar
Comentarios
527
WinKill
Fuerza una ventana a cerrar.
WinKill ("ttulo" [, "texto"])
Parmetros
ttulo
texto
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
texto
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
texto
item
item
item
item
item
item
item
Valor de Retorno
Con xitos
Devuelve 1.
530
Al Fallar
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
texto
ancho
532
altura
velocidad
Valor de Retorno
Con xitos
Al Fallar
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
WinSetOnTop
Cambia una ventana colocndole el atributo "Siempre Visible" (Always On Top)
WinSetOnTop ("ttulo", "texto", bandera)
Parmetros
ttulo
texto
bandera
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
texto
bandera
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
texto
Nuevottulo
Valor de Retorno
Con xitos
Devuelve 1.
Al Fallar
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
texto
transparencia
Valor de Retorno
Con xitos
Al Fallar
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
texto
Tiempo
espera
Valor de Retorno
Con xitos
Al Fallar
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
texto
Tiempo
espera
Valor de Retorno
Con xitos
Al Fallar
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
texto
Tiempo
espera
Valor de Retorno
539
Con xitos
Devuelve 1.
Al Fallar
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
texto
Valor de Retorno
Con xitos:
Devuelve 1.
Al Fallar:
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
STRBUFFER
MAX_ENVSIZE
WINTEXTBUFFER
32767
IDLE
HOTKEYQUEUESIZE
MAXEXECUTERECURSE
64
384
GUI_MAXWINDOWS
GUI_MAXCONTROLS
GUI_MAXCOLOURS
GUI_MAXPOINTS
256
COM_MAXEVENT
64
VAR_SUBSCRIPT_MAX
MAIN_TIMER_DELAY
542
CMDLINE_MAXPARAMS
CMDLINEPARAM_MAXLEN
TRAY_MAXITEMS
TRAY_MAXEVENT
32
TRAY_TOOLTIPWIDTH
64
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
MouseClickDownDelay
MouseClickDragDelay
TCPTimeout
Dec
Hex
Oct
Descripcin
NUL
00
000
Carcter Nulo
SOH
01
001
543
STX
02
002
ETX
03
003
Fin de texto
EOT
04
004
ENQ
05
005
ACK
06
006
BEL
07
007
BS
08
010
HT
09
011
LF
10
0a
012
Salto de lnea
VT
11
0b
013
Tabulacin Vertical
FF
12
0c
014
CR
13
0d
015
Retorno de carro
SO
14
0e
016
SI
15
0f
017
DLE
16
10
020
DC1
17
11
021
DC2
18
12
022
DC3
19
13
023
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
CAN
24
18
030
EM
25
19
031
SUB
26
1a
032
Remplazar
ESC
27
1b
033
FS
28
1c
034
Separador de archivos
GS
29
1d
035
Separador de grupos
RS
30
1e
036
US
31
1f
037
Separador de unidades
Dec
Hex
Oct
Descripcin
32
20
040
Espacio
33
21
041
Signo de exclamacin
"
34
22
042
35
23
043
36
24
044
Signo de dolar
37
25
045
Signo de porcentaje
&
38
26
046
Ampersand
39
27
047
40
28
050
Parntesis de apertura
41
29
051
Parntesis de cierre
545
42
2a
052
43
2b
053
Suma
44
2c
054
Coma
45
2d
055
46
2e
056
Punto
47
2f
057
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
61
3d
075
Signo de Igual
>
62
3e
076
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
93
5d
135
94
5e
136
95
5f
137
Underscore (raya)
96
60
140
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
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
144
90
220
145
91
221
146
92
222
147
93
223
148
94
224
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
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
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
Herramientas Administrativas
(Administrative Tools)
"::{D20EA4E1-3957-11d2-A40B-0C5020524153}"
Briefcase
"::{85BBD92O-42A0-1O69-A2E4-08002B30309D}"
"::{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}"
"::{00028B00-0000-0000-C000-000000000046}"
"::{20D04FE0-3AEA-1069-A2D8-08002B30309D}"
"::{450D8FBA-AD25-11D0-98A8-0800361B1103}"
"::{208D2C60-3AEA-1069-A2D7-08002B30309D}"
Network Computers
"::{1f4de370-d627-11d1-ba4f-00a0c91eedba}"
Network Connections
"::{7007ACC7-3202-11D1-AAD2-00805FC1270E}"
"::{2227A280-3AEA-1069-A2DE-08002B30309D}"
"::{645FF040-5081-101B-9F08-00AA002F954E}"
"::{E211B736-43FD-11D1-9EFB-0000F8757FCD}"
556
Cameras)
Tareas Programadas (Schedule Tasks)
"::{D6277990-4C6A-11CF-8D87-00AA0060F5BF}"
"::{48e7caab-b918-4e58-a94d-505519c795dc}"
"::{7BD29E00-76C1-11CF-9DD0-00A0C9034933}"
"::{BDEADF00-C265-11d0-BCED-00A0C90AB50F}"
Valor
Descripcin
#include <WindowsConstants.au3>
Predefinido/forzado al crear
la interfaz grfica del
usuario.
$WS_BORDER
$WS_POPUP
0x80000000
$WS_CAPTION
0x00C00000
$WS_CLIPCHILDREN
557
"ventana padre"
$WS_CLIPSIBLINGS
$WS_DISABLED
0x08000000
$WS_DLGFRAME
0x00400000
$WS_HSCROLL
0x00100000
$WS_MAXIMIZE
0x01000000
$WS_MAXIMIZEBOX
$WS_MINIMIZE
0x20000000
$WS_MINIMIZEBOX
$WS_OVERLAPPED
WS_THICKFRAME, WS_MINIMIZEBOX, y
WS_MAXIMIZEBOX. Igual que el estilo
WS_TILEDWINDOW
$WS_POPUPWINDOW
$WS_SIZEBOX
$WS_SYSMENU
$WS_THICKFRAME
$WS_VSCROLL
0x00200000
$WS_VISIBLE
$WS_CHILD
$WS_GROUP
$WS_TABSTOP
$DS_MODALFRAME
559
WS_CAPTION y WS_SYSMENU
$DS_SETFOREGROUND
$DS_CONTEXTHELP
Valor
Descripcin
#include <WindowsConstants.au3>
$WS_EX_ACCEPTFILES
$WS_EX_APPWINDOW
0x00040000
$WS_EX_COMPOSITED
$WS_EX_CLIENTEDGE
0x00000200
$WS_EX_CONTEXTHELP
$WS_EX_DLGMODALFRAME
560
$WS_EX_MDICHILD
$WS_EX_OVERLAPPEDWINDOW 0x00000300
$WS_EX_STATICEDGE
$WS_EX_TOPMOST
$WS_EX_TRANSPARENT
$WS_EX_TOOLWINDOW
$WS_EX_WINDOWEDGE
0x00000100
561
$WS_EX_LAYERED
0x00080000
$GUI_WS_EX_PARENTDRAG
Estilos de Caja de
Chequeo (Checkbox)
Valor
Descripcin
#include <ButtonConstants.au3>
Predefinido/forzado
$BS_3STATE
0x0005
0x0006
0x0003
$BS_CHECKBOX
0x0002
$BS_LEFT
0x0100
0x1000
$BS_AUTO3STATE
$BS_AUTOCHECKBOX
$BS_PUSHLIKE
562
$BS_RIGHT
0x0200
$BS_RIGHTBUTTON
0x0020
0x0007
$BS_AUTORADIOBUTTON 0x0009
$BS_GROUPBOX
Estilos de Botn
Valor
Descripcin
#include <ButtonConstants.au3>
Ver funciones GUICtrlCreateButton, GUICtrlCreateCheckbox,
GUICtrlCreateRadio
Predefinido/forzado
$BS_BOTTOM
0x0800
$BS_CENTER
0x0300
$BS_DEFPUSHBUTTON 0x0001
$BS_MULTILINE
0x2000
563
$BS_TOP
0x0400
$BS_VCENTER
0x0C00
$BS_ICON
0x0040
$BS_BITMAP
0x0080
$BS_FLAT
0x8000
0x4000
$BS_NOTIFY
Valor
Descripcin
#include <ComboConstants.au3>
Predefinido/forzado
$GUI_SS_DEFAULT_COMBO Ver
funcin GUICtrlCreateCombo.
$CBS_AUTOHSCROLL
0x0040
$CBS_DISABLENOSCROLL
0x0800
$CBS_DROPDOWN
0x0002
564
$CBS_DROPDOWNLIST
0x0003
$CBS_LOWERCASE
0x4000
$CBS_NOINTEGRALHEIGHT 0x0400
$CBS_OEMCONVERT
0x0080
$CBS_SIMPLE
0x0001
$CBS_SORT
0x0100
$CBS_UPPERCASE
0x2000
Estilos de Lista
(List)
Valor
Descripcin
#include <ListboxConstants.au3>
$GUI_SS_DEFAULT_LIST ver
funcin GUICtrlCreateList .
Predefinido/forzado
$LBS_DISABLENOSCROLL
0x1000
$LBS_NOINTEGRALHEIGHT 0x0100
$LBS_NOSEL
0x4000
$LBS_NOTIFY
0x0001
$LBS_SORT
0x0002
$LBS_STANDARD
$LBS_USETABSTOPS
Estilos
Editor/Ingreso
0x0080
Valor
Descripcin
#include <EditConstants.au3>
Predefinido/forzado
566
$ES_AUTOVSCROLL 0x0040
$ES_CENTER
$ES_LOWERCASE
0x0010
$ES_NOHIDESEL
$ES_NUMBER
0x2000
$ES_OEMCONVERT 0x0400
$ES_MULTILINE
0x0004
$ES_PASSWORD
0x0020
$ES_READONLY
$ES_RIGHT
$ES_UPPERCASE
0x0008
Estilos Barra de
Progreso
Valor
Descripcin
#include <ProgressConstants.au3>
$PBS_SMOOTH
0x01
$PBS_VERTICAL
0x04
Estilos Up-down
Valor
Descripcin
#include <UpdownConstants.au3>
Predefinido/forzado
$UDS_ALIGNLEFT
0x08
$UDS_ALIGNRIGHT
0x04
$UDS_ARROWKEYS
0x20
$UDS_HORZ
0x40
568
$UDS_NOTHOUSANDS 0x80
$UDS_WRAP
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
0x04
0x01
0x0200
$SS_BLACKRECT
$SS_CENTER
$SS_CENTERIMAGE
569
$SS_ETCHEDFRAME
0x12
$SS_ETCHEDHORZ
0x10
$SS_ETCHEDVERT
0x11
0x08
0x05
0x0000
$SS_GRAYFRAME
$SS_GRAYRECT
$SS_LEFT
$SS_LEFTNOWORDWRAP 0x0C
$SS_NOPREFIX
0x80
570
en un cuadro de dialogo
$SS_NOTIFY
0x0100
$SS_RIGHT
0x0002
0x0400
$SS_SIMPLE
0x0B
$SS_SUNKEN
0x1000
0x09
0x06
$SS_RIGHTJUST
$SS_WHITEFRAME
$SS_WHITERECT
Valor
Descripcin
#include <TabConstants.au3>
Predefinido/forzado
$TCS_SCROLLOPPOSITE
0x0001
571
0x0002
$TCS_RIGHT
0x0002
$TCS_MULTISELECT
0x0004
0x0008
0x0010
$TCS_BOTTOM
$TCS_FLATBUTTONS
$TCS_FORCEICONLEFT
$TCS_FORCELABELLEFT
0x0020
$TCS_VERTICAL
0x0040
0x0080
572
$TCS_TABS
0x0000
$TCS_BUTTONS
0x0100
0x0000
0x0200
$TCS_SINGLELINE
$TCS_MULTILINE
$TCS_RIGHTJUSTIFY
0x0000
0x0400
$TCS_RAGGEDRIGHT
0x0800
$TCS_FOCUSONBUTTONDOWN 0x1000
$TCS_OWNERDRAWFIXED
0x2000
$TCS_TOOLTIPS
0x4000
$TCS_FOCUSNEVER
0x8000
573
Valor
Descripcin
#include <AVIConstants.au3>
Predefinido/forzado
$ACS_AUTOPLAY
0x04
$ACS_CENTER
0x01
0x02
$ACS_NONTRANSPARENT 0x10
$ACS_TRANSPARENT
Estilos Fecha
Valor
Descripcin
#include <DateTimeConstants.au3>
Predefinido/forzado
$GUI_SS_DEFAULT_DATE ver
funcin GUICtrlCreateDate
$DTS_UPDOWN
0x01
$DTS_SHOWNONE
0x02
$DTS_LONGDATEFORMAT 0x04
$DTS_TIMEFORMAT
0x09
574
5:31:42 PM.
$DTS_RIGHTALIGN
0x20
$DTS_SHORTDATEFORMAT 0x00
Estilos MesCalendario
Valor
Descripcin
#include <DateTimeConstants.au3>
Predefinido/forzado
$MCS_NOTODAY
0x10
$MCS_NOTODAYCIRCLE 0x08
$MCS_WEEKNUMBERS 0x04
Valor
Descripcin
#include <TreeviewConstants.au3>
$GUI_SS_DEFAULT_TREEVIEW ver
GUICtrlCreateTreeView
Predefinido/forzado
$TVS_HASBUTTONS
0x0001
$TVS_HASLINES
0x0002
$TVS_LINESATROOT
0x0004
$TVS_DISABLEDRAGDROP 0x0010
$TVS_SHOWSELALWAYS
0x0020
$TVS_RTLREADING
0x0040
$TVS_NOTOOLTIPS
0x0080
$TVS_CHECKBOXES
0x0100
$TVS_TRACKSELECT
0x0200
0x0400
$TVS_SINGLEEXPAND
576
0x1000
$TVS_NOSCROLL
0x2000
$TVS_NONEVENHEIGHT
0x4000
$TVS_FULLROWSELECT
Estilos Slider
Valor
Descripcin
#include <SliderConstants.au3>
Predefinido/forzado
$TBS_AUTOTICKS
$TBS_BOTH
$TBS_BOTTOM
0x0000
$TBS_HORZ
0x0000
$TBS_VERT
0x0002
$TBS_NOTHUMB
0x0080
$TBS_NOTICKS
0x0010
577
$TBS_LEFT
0x0004
$TBS_RIGHT
0x0000
$TBS_TOP
0x0004
Estilos ListView
Valor
Descripcin
#include <ListviewConstants.au3>
$GUI_SS_DEFAULT_LISTVIEW ver
funcin GUICtrlCreateListView .
Predefinido/forzado
$LVS_ICON
0x0000
$LVS_REPORT
0x0001
$LVS_SMALLICON
0x0002
$LVS_LIST
0x0003
$LVS_EDITLABELS
0x0200
$LVS_NOCOLUMNHEADER 0x4000
$LVS_NOSORTHEADER
0x8000
$LVS_SINGLESEL
0x0004
$LVS_SHOWSELALWAYS
0x0008
578
$LVS_SORTASCENDING
0x0010
$LVS_SORTDESCENDING
0x0020
Valor
Descripcin
#include <ListviewConstants.au3>
$LVS_EX_FULLROWSELECT
0x00000020
$LVS_EX_GRIDLINES
0x00000001
$LVS_EX_HEADERDRAGDROP 0x00000010
$LVS_EX_TRACKSELECT
$LVS_EX_CHECKBOXES
0x00000004
$LVS_EX_BORDERSELECT
$LVS_EX_DOUBLEBUFFER
0x00010000
$LVS_EX_FLATSB
0x00000100
$LVS_EX_MULTIWORKAREAS 0x00002000
579
$LVS_EX_SNAPTOGRID
0x00080000
$LVS_EX_SUBITEMIMAGES
0x00000002
@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
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
Gautami
Gabriola
Georgia
x
x
x
x
Latha
Lucida Console
587
Marlett
Modern
MS Sans Serif
MS Serif
MV Boli
Nyala
Palatino Linotype
Roman
Script
Sego Print
Sego Script
Sego UI
Small Fonts
Symbol
Tahoma
Trebuchet
Tunga
588
Verdana
Webdings
Westminster
Wingdings
WST_Czech
WST_Engl
WST_Fren
WST_Germ
WST_Ital
WST_Span
WST_Swed
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