Введение
Содержание:
Компиляция скриптов с помощью Aut2ExeПравить
Имеется возможность скомпилировать ваш .au3-скрипт в автономный исполняемый файл; этот файл может использоваться на машинах без установленного AutoIt (AutoIt3.exe не будет нужен для работы такого файла). В дополнение, скомпилированный скрипт сжат и зашифрован, как и дополнительные файлы, включённые в скрипт с помощью функции FileInstall. Также, любые файлы, включённые в скрипт с помощью #include тоже будут скомпилированы в исполняемый файл, так что они не понадобятся при запуске скрипта.
Осторожно: скрипт для компиляции не должен содержать синтаксических ошибок, поскольку программа компиляции не проверяет синтаксис.
Aut2Exe может быть использован тремя путями:
_IsBeta
#include <Array.au3> #include <MsgBoxConstants.au3> Example() Func Example() Local $aTest10 _ArrayUnique($aTest, , 5) Local $iError = @error ConsoleWrite('$iError = ' & $iError & @CRLF) If _IsBeta() Then If $iError = 3 Then MsgBox($MB_SYSTEMMODAL, '@error', '3 - $iBase or $iCase contains an invalid value' & @CRLF & @AutoItVersion) EndIf Else If $iError = 2 Then MsgBox($MB_SYSTEMMODAL, '@error', '2 - $iBase or $iCase contains an invalid value' & @CRLF & @AutoItVersion) EndIf EndIf EndFunc ;==>Example Func _IsBeta() Return Mod(StringSplit(@AutoItVersion, '.'), 2) == 1 EndFunc ;==>_IsBeta
Полезные ресурсы
Руководства / Учебники
-
-
- Руководства — на этой странице есть много учебников, о AutoIt. Там представлен обзор нескольких известных учебных пособий.
- Лучшие методы кодирования — подробное объяснение того, что следует считать лучшими практиками кодирования в AutoIt. Эти рекомендации основаны на общепринятых практиках программирования, общих для ряда других языков программирования. Вам не нужно следовать им, но рекомендуется использовать их в своей практике.
-
Сниппеты — как правило, отдельные функции или небольшие кусочки кода, которые могут быть включены в сценарий для добавления дополнительной функциональности
.
-
Видеоуроки
-
-
- AutoIt Tutorials by 403forbidden403.
- AutoIt Tutorials by AutoitFrench.
- AutoIt for Beginner by Lee Sai.
- AutoIt for Beginner by Hai The Luong.
- Advanced AutoIt Tutorials by Juno_okyo
-
Книги
-
-
- AutoIt v3: Your Quick Guide by Andy Flesner (Скачать PDF).
- Instant AutoIt Scripting by Emilio Aristides de Fez Laso.
- AutoIT Scripting For Beginners by Rajan.
- Learn To Program Using FREE Tools with AutoIt 1.2 by Jfish.
-
Подсветка синтаксиса
-
- GeSHi — Generic Syntax Highlighter
- Highlight.js
- Crayon Syntax Highlighter (WordPress плагин)
- WP Syntax (WordPress плагин) — основан на GeSHi.
- PrismJS
- AutoIt — Visual Studio
FileOpen
Во-первых, нам нужно «открыть» новый файл с помощью функции FileOpen (которую также можно использовать для открытия существующего файла).
FileOpen имеет два параметра: имя файла (которое должно включать путь к нашему файлу) и необязательный параметр «mode», используемый для определения определенных параметров, например, переписываем ли мы данные в файл, добавляем и т.д.
Одна строка кода создаст наш новый файл:
Это макрос. Теперь нам нужно понять, что этот макрос является ярлыком, который предоставляет путь к каталогу, в котором находится наш скрипт. Если бы у нас не было этого ярлыка, нам пришлось бы использовать полный путь, такой как «c: \ documents and settings \ user \ files \ autoit\myfile.txt». Другое преимущество заключается в том, что наша программа может запускаться на компьютерах других людей, которые имеют разные папки и каталоги. Если их папки отличаются, ваша программа может не работать. Использование макроса гарантирует, что независимо от пути — ваш скрипт найдет его
Обратите внимание на использование амперсанда и обратную косую черту перед именем файла. Это добавляет обратную косую черту и имя файла в путь к скрипту.
Это то, как мы навезем наш файл
В нашем случае «myfile.txt».
Это дополнительный параметр режима. В этом случае мы используем 2, который сигнализирует функции, что мы хотели бы перезаписать все, что находится в файле.
FileOpen возвращает «дескриптор», который мы сохраняем в нашей переменной $ myFile, когда эта строка кода выполняется. Вы можете использовать этот дескриптор для последующих функций файла.
AutoIt
$myFile = FileOpen(@ScriptDir & «\myfile.txt», 2)
1 | $myFile=FileOpen(@ScriptDir&»\myfile.txt»,2) |
Hello, World!
Файлы скриптов имеют расширение .au3. Запуск осуществляется командой наподобие следующей:
<путь>\AutoIt3.exe скрипт.au3
Кроме того, если используется полная установка AutoIt, запуск скриптов производится просто двойным щелчком по файлу скрипта.
Простейший скрипт:
; комментарий MsgBox(0, "Заголовок окна", "Привет, AutoIt!")
Скрипт выше выведет диалоговое окно с приветствием. Первый аргумент функции MsgBox определяет тип сообщения (в данном случае — окно с единственной кнопкой ОК, без дополнительных опций).
Можно исполнить код на языке AutoIt динамически, из командной строки, например:
AutoIt3.exe /AutoIt3ExecuteLine "MsgBox(0, 'Hello World!', 'Привет!')"
Следующий пример демонстрирует возможность автоматизации произвольных GUI-приложений:
Run("notepad.exe") ; запускаем Блокнот WinWaitActive("Безымянный - Блокнот") ; ожидаем появление окна Блокнота Send("Какой-то текст.") ; посылаем нажатия (имитируем ввод) WinClose("Безымянный - Блокнот") ; посылаем окну команду закрытия ; ожидаем появление окна запроса о сохранении: WinWaitActive("Блокнот", "Текст в файле Безымянный был изменен.") Send("{ESC}") ; посылаем нажатие Escape (имитируем ввод)
Скрипт выше запускает Блокнот, печатает в него текст, посылает окну Блокнота команду закрытия, а затем отказывается от закрытия, посылая нажатие Escape окну запроса о сохранении. Эти приёмы демонстрируют возможность автоматизации произвольных приложений, даже тех, которые не поддерживают опций командной строки или специальных программных средств автоматизации. AutoIt просто имитирует пользовательский ввод. Такие возможности скриптового языка могут стать спасательным кругом для решения многих проблем, например, автоматической инсталляции некоторых приложений.
Следующий пример демонстрирует назначение глобальных горячих клавиш:
; установка глобального перехвата нажатия клавиши Escape: HotKeySet("{ESC}", "Terminate") ; установка глобального перехвата нажатия комбинации клавиш Alt+Shift+1 HotKeySet("+!1", "ShowMessage") ; тело основной программы While 1 Sleep(100) WEnd ; функции Func Terminate() ; по нажатию клавиши Escape Exit 0 ; завершение работы EndFunc Func ShowMessage() ; по нажатию комбинации клавиш Alt+Shift+1 MsgBox(4096, "", "Вы нажали Alt+Shift+1.") EndFunc
Скрипт выше устанавливает глобальный перехват нажатий Escape и Alt+Shift+1 (после запуска в трее появится иконка скрипта). При нажатии Alt+Shift+1 выдаётся сообщение, а при нажатии Escape скрипт завершает работу (активное окно в момент нажатий не имеет значения — перехват глобальный). Эти приёмы позволяют сильно автоматизировать работу пользователя. На нажатие различных клавиш можно «повесить» запуск приложений или выполнение определённых действий в нужном приложении т.п.
Синтаксис работы с COM-объектами прозрачен, как и в большинстве бейсикоподобных языков:
$wsh = ObjCreate("WScript.Shell") ; создание объекта if @error then exit(1) ; проверка ошибки $wsh.popup("сообщение") ; вызов метода
Скрипт выше выдаст окно с текстом «сообщение».
Example
; copy any you want to change ;default value is listed first Opt("CaretCoordMode",1);1=absolute, 0=relative, 2=client Opt("ExpandEnvStrings",);0=don't expand, 1=do expand Opt("ExpandVarStrings",);0=don't expand, 1=do expand Opt("GUICloseOnESC",1);1=ESC closes, 0=ESC won't close Opt("GUICoordMode",1);1=absolute, 0=relative, 2=cell Opt("GUIDataSeparatorChar","|");"|" is the default Opt("GUIOnEventMode",);0=disabled, 1=OnEvent mode enabled Opt("GUIResizeMode",);0=no resizing, <1024 special resizing Opt("GUIEventOptions",);0=default, 1=just notification, 2=GUICtrlRead tab index Opt("MouseClickDelay",10);10 milliseconds Opt("MouseClickDownDelay",10);10 milliseconds Opt("MouseClickDragDelay",250);250 milliseconds Opt("MouseCoordMode",1);1=absolute, 0=relative, 2=client Opt("MustDeclareVars",);0=no, 1=require pre-declaration Opt("PixelCoordMode",1);1=absolute, 0=relative, 2=client Opt("SendAttachMode",);0=don't attach, 1=do attach Opt("SendCapslockMode",1);1=store and restore, 0=don't Opt("SendKeyDelay",5);5 milliseconds Opt("SendKeyDownDelay",1);1 millisecond Opt("TCPTimeout",100);100 milliseconds Opt("TrayAutoPause",1);0=no pause, 1=Pause Opt("TrayIconDebug",);0=no info, 1=debug line info Opt("TrayIconHide",);0=show, 1=hide tray icon Opt("TrayMenuMode",);0=append, 1=no default menu, 2=no automatic check, 4=menuitemID not return Opt("TrayOnEventMode",);0=disable, 1=enable Opt("WinDetectHiddenText",);0=don't detect, 1=do detect Opt("WinSearchChildren",1);0=no, 1=search children also Opt("WinTextMatchMode",1);1=complete, 2=quick Opt("WinTitleMatchMode",1);1=start, 2=subStr, 3=exact, 4=advanced, -1 to -4=Nocase Opt("WinWaitDelay",250);250 milliseconds
AutoItWinShow
#include <GUIConstantsEx.au3> Example() Func Example() ; Display AutoIt's Hidden Window. See AutoItWinGetTitle and AutoItWinSetTitle for more details. AutoItWinShow() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd EndFunc ;==>Example ; Display AutoIt's Hidden Window. Returns the handle of the window. Func AutoItWinShow() Local Const $hWnd = WinGetHandle(AutoItWinGetTitle()) ; Get the handle of the AutoIt Hidden Window by finding out the title of the AutoIt Hidden Window. WinMove($hWnd, '', (@DesktopWidth 2) - 250, (@DesktopHeight 2) - 250, 500, 500) ; Move the AutoIt Hidden Window and re-size for a better view of the data that will be set. WinSetState($hWnd, '', @SW_SHOW) ; Show the AutoIt Hidden Window, normally this is hidden, but in the interest of this example I'm displaying it. Return $hWnd EndFunc ;==>AutoItWinShow
Метод 3 — Командная строкаПравить
Синтаксис командной строки при запуске программы Aut2Exe.exe:
- Aut2exe.exe /in <путь к файлу .au3>
Здесь:
Ключ | Использование | Значение по умолчанию |
/in | <путь к файлу.au3> Указывает путь к файлу скрипта для компиляции. | Нет. Путь к файлу должен быть указан |
/out | <путь к файлу.exe> Указывает путь к выходному файлу.<путь к файлу.a3x> Указывает путь к выходному файлу для создания *.a3x файла. | Имя входного файла с расширением .exe |
/icon | <путь к файлу .ico> Указывает путь к иконке для скомпилированного файла. | Иконка AutoIt |
/comp | Указывает уровень сжатия скрипта и включённых файлов (Это НЕ относится к UPX).Число между 0 (нет) и 4 (максимум). | 2 |
/nopack | Указывает, что файл не должен быть сжат с помощью UPX после компиляции. | pack |
/pack | Указывает, что файл должен быть сжат с помощью UPX после компиляции. | pack |
/x64 | Указывает, что скрипт должен быть скомпилирован для системы с архитектурой x64 (64-битная). | См. замечания |
/x86 | Указывает, что скрипт должен быть скомпилирован для системы с архитектурой x86 (32-битная). | См. замечания |
/console | Указывает, что скрипт должен быть скомпилирован, как консольное приложение. | Оконное приложение (/gui) |
/gui | Указывает, что скрипт должен быть скомпилирован, как оконное приложение. | Оконное приложение (/gui) |
/bin | <путь к файлу.bin> Указывает путь к бинарной основе для компиляции скрипта. | Используется файл из каталога Aut2exe |
Инструменты
-
-
- SciTE4AutoIt3 содержит SciTE, упакованный в единый установщик со всеми необходимыми параметрами конфигурации и множеством служебных программ, таких как AutoIt3Wrapper, SciTEConfig, Tidy, Au3Stripper и т. д., для расширенного SciTE для использования с AutoIt3.
- KODA Form Designer — автономное приложение, разработанное для помощи в создании форм (GUI) для языка сценариев AutoIt3. Оно включено в SciTE4AutoIt3.
- ISN AutoIt Studio — готовая IDE для программирования на языке AutoIt.
- ISN AutoIT form Studio — графический интерфейс для разработки в AutoIt.
- AutoIt Obfuscator — зашифруйте исходный код и алгоритмы сценария AutoIt, чтобы защитить его от анализа, взлома и декомпиляции.
-
_RunAU3
_RunAU3("AU3_Example.txt", '"This is a commandline example!"') Func _RunAU3($sFilePath, $sCommandLine = "", $sWorkingDir = "", $iShowFlag = @SW_SHOW, $iOptFlag = ) Return Run('"' & @AutoItExe & '" AutoIt3ExecuteScript "' & $sFilePath & '" ' & $sCommandLine, $sWorkingDir, $iShowFlag, $iOptFlag) EndFunc ;==>_RunAU3 Func _RunWaitAU3($sFilePath, $sCommandLine = "", $sWorkingDir = "", $iShowFlag = @SW_SHOW, $iOptFlag = ) Local $iPID $iPID = RunWait('"' & @AutoItExe & '" AutoIt3ExecuteScript "' & $sFilePath & '" ' & $sCommandLine, $sWorkingDir, $iShowFlag, $iOptFlag) If @error Then Return SetError(@error, 1, ) EndIf Return $iPID EndFunc ;==>_RunWaitAU3
_WinGetDetails
#include <Array.au3> Global $aArray = _WinGetDetails('ACTIVE') ; Returns the Window's title, PID, folder path filename. If @error Then Exit EndIf _ArrayDisplay($aArray) Func _WinGetDetails($sTitle, $sText = '') ; Based on code of _WinGetPath by GaryFrost. Local $aReturn5 = 4, '-WinTitle', '-PID', '-FolderPath', '-FileName'], $aStringSplit If StringLen($sText) > Then $aReturn1 = WinGetTitle($sTitle, $sText) Else $aReturn1 = WinGetTitle($sTitle) EndIf $aReturn2 = WinGetProcess($aReturn1]) Local $oWMIService = ObjGet('winmgmts\\.\root\CIMV2') Local $oItems = $oWMIService.ExecQuery('Select * From Win32_Process Where ProcessId = ' & $aReturn2], 'WQL', 0x30) If IsObj($oItems) Then For $oItem In $oItems If $oItem.ExecutablePath Then $aStringSplit = StringSplit($oItem.ExecutablePath, '\') $aReturn3 = '' For $A = 1 To $aStringSplit - 1 $aReturn3 &= $aStringSplit$A & '\' Next $aReturn3 = StringTrimRight($aReturn3], 1) $aReturn4 = $aStringSplit$aStringSplit]] Return $aReturn EndIf Next EndIf Return SetError(1, , $aReturn) EndFunc ;==>_WinGetPath
Example
Example() Func Example() ; Simulate the key combination Win + R to open the Run dialogue window. Send("#r") ; Wait 10 seconds for the Run dialogue window to appear. WinWait("Run","",10) ; Simulate entering notepad.exe and pressing the 'ENTER' key. Send("notepad.exe{Enter}") ; Wait 10 seconds for the Notepad window to appear. Local$hWnd=WinWait("","",10) ; Simulate entering the following string and pressing the 'F5' key to input the date and time into edit control of Notepad. Send("Today's time/date is {F5}") ; Close the Notepad window using the handle returned by WinWait. WinClose($hWnd) ; Now a screen will pop up and ask to save the changes, the classname of the window is called ; "#32770" and simulating the "TAB" key to move to the second button in which the "ENTER" is simulated to not "save the file" WinWaitActive("") Sleep(500) Send("{TAB}{ENTER}") EndFunc;==>Example
_GetClasses
; Get ALL Controls Info Example() Func Example() ; Run Calculator Run("calc.exe") ; Wait 10 seconds for the Calculator window to appear. Local const $hWnd = WinWait("", '', 10) ; Retrieve a list of all the controls in the Calculator window using the handle returned by WinWait. MsgBox(4096, '', _GetClasses($hWnd)) ; Close the Calculator window using the handle returned by WinWait. WinClose($hWnd) EndFunc ;==>Example ; This function returns an @LF-separated list of controls on the specified window. Func _GetClasses($sTitle, $sText = '') Local $iCount_Button = , $iCount_Edit = , $iCount_Static = Local $aClasses = StringSplit(WinGetClassList($sTitle, $sText), @LF) Local $aClassID$aClasses + 1 = $aClasses]] For $i = 1 To $aClasses Select Case $aClasses$i = "Button" $iCount_Button += 1 $aClassID$i = $aClasses$i & $iCount_Button Case $aClasses$i = "Edit" $iCount_Edit += 1 $aClassID$i = $aClasses$i & $iCount_Edit $aClasses$i = "Input" Case $aClasses$i = "Static" $iCount_Static += 1 $aClassID$i = $aClasses$i & $iCount_Static $aClasses$i = "Label" Case Else If $aClasses$i <> "" Then $aClassID$i = $aClasses$i & "?" EndIf EndSelect Next ; Combine the results. Local $sReturn = "" For $i = 1 To $aClassID $sReturn &= $aClassID$i & @LF Next Return $sReturn EndFunc ;==>_GetClasses
Command Line Parameters
Passing command line parameters to your own executable is achievable in AutoIt. Passed commandline parameters can be viewed by using the constant variables $CmdLine and $CmdLineRaw. Assigning these variables with new data will cause AutoIt to
return an error, as these cannot be changed during the script’s execution. Note that both variables exist whether commandline parameters are passed or not.
The special array $CmdLine is initialized at the start of the script with the command line parameters passed to your AutoIt script. If running your script instead of the executable, then the ScriptName.au3 willl be ignored as a parameter.
If you’re passing strings with spaces, then you will need to escape these using «double quotes» in your commandline string.
$CmdLine; Contains the total number of items in the array.$CmdLine1; The first parameter.$CmdLine2; The second parameter….$CmdLinenth; The nth parameter e.g. 10 if the array contains 10 items.
AutoIt3.exe myScript.au3 param1 «This is a string parameter»99
$CmdLine; This contains 3 parameters.$CmdLine1; This contains param1 and not myScript.au3 as this is ignored when running non-compiled.$CmdLine2; This contains This is a string parameter.$CmdLine3; This contains 99.$CmdLineRaw; This contains myScript.au3 param1 «This is a string parameter» 99.
myProg.exe param1 «This is a string parameter»99
$CmdLine; This contains 3 parameters.$CmdLine1; This contains param1.$CmdLine2; This contains This is a string parameter.$CmdLine3; This contains 99.
Note: A maximum of 63 parameters can be returned by the array $CmdLine[]. If you would like to see the entire commandline string passed to an AutoIt executable, then use $CmdLineRaw for the entire parameter string.
#include<Array.au3>#include<WinAPIShPath.au3>; An alternative to the limitation of $CmdLine[] only being able to return a maximum of 63 parameters.Local$aCmdLine=_WinAPI_CommandLineToArgv($CmdLineRaw)_ArrayDisplay($aCmdLine)
История создания
AutoIt появился в конце 1998 года, как Си-программа для автоматизации нажатия клавиш. В январе 1999 года команда разработчиков выпустила AutoIt версии v1, который включал в себя следующие команды: Send, Run, RunWait, WinWait, WinWaitClose, WinWaitActive, WinHide, WinActivate, WinClose, WinRestore, Sleep и SetKeyDelay. AutoIt v2 был выпущен в августе того же года и включал первый вариант AutoItX, который предложил DLL / COM контроль. В течение следующих двух лет в язык были добавлены множество новых функций. В мае 2001 года исходный код AutoIt был полностью переписан на C++ и его развитие не останавливается до 2003 года, когда была выпущена первая бета-версия AutoIt v3. Спустя 100 бета-версии разработчики выпустили AutoIt v3 в феврале 2004 года. Февраль 2005 года был ознаменован выпуском AutoIt v3.1.0, в котором была добавила возможность создания графического пользовательского интерфейса (GUI). Эта версия была самымой заметной из всех, она выдвинула AutoIt на первый план в мире сценариев, сделала его конкурентом VisualBasic. AutoIt бесплатен в использовании и имеет сильную и полезную базу сообщества.
_WinGetNumeratedClassList
; Description: Retrieves the numerated classes from a window. Func _WinGetNumeratedClassList($sTitle) Local $sClassList = WinGetClassList($sTitle) Local $aClassList = StringSplit($sClassList, @LF) Local $sRetClassList = "", $sHold_List = "|" Local $aiInHold, $iInHold For $i = 1 To UBound($aClassList) - 1 If $aClassList$i = "" Then ContinueLoop If StringRegExp($sHold_List, "\|" & $aClassList$i & "~(\d+)\|") Then $aiInHold = StringRegExp($sHold_List, ".*\|" & $aClassList$i & "~(\d+)\|.*", 1) $iInHold = Number($aiInHoldUBound($aiInHold)-1]) If $iInHold = Then $iInHold += 1 $aClassList$i &= "~" & $iInHold + 1 $sHold_List &= $aClassList$i & "|" $sRetClassList &= $aClassList$i & @LF Else $aClassList$i &= "~1" $sHold_List &= $aClassList$i & "|" $sRetClassList &= $aClassList$i & @LF EndIf Next Return StringReplace(StringStripWS($sRetClassList, 3), "~", "") EndFunc
Язык
Сам язык AutoIt близок к современным версиям BASICа: это императивный язык с небольшим набором типичных синтаксических конструкций и простой структурой. Поддерживается два вида переменных: простые (скалярные) переменные и массивы. Простые переменные имеют вариантный тип, то есть могут содержать значения любого поддерживаемого типа. Массивы в AutoIt динамические и гетерогенные (могут менять размер и содержать в ячейках значения любых типов), поддерживаются многомерные (до 64 индексов) массивы. Набор типов данных ограничен: это строки, числа, бинарные данные и логические (булевы) значения.
Доступные синтаксические конструкции включают три варианта условного оператора, циклы и объявление пользовательской функции (вложенность функций не поддерживается). Модульности как таковой в языке нет, её заменяет возможность прямого текстуального включения одних файлов в другие с помощью Си-подобной инструкции .
Системная библиотека включает широкий набор функций самого различного назначения, в том числе для работы со строками, вычислений, доступа к файлам, сетевого взаимодействия, работы с векторной и растровой графикой и данными в различных мультимедиа-форматах. В состав библиотеки входит простой GUI-фреймворк, позволяющий легко создавать и использовать типовые Windows-формы со стандартным набором элементов управления. Последняя особенность позволяет использовать AutoIt просто как язык для создания несложных программ для Windows со стандартным графическим интерфейсом
Но наиболее важно особенностью AutoIt является поддержка целого ряда специфических функций, дающих доступ к системе Windows, её настройкам и графическому интерфейсу пользователя, что позволяет выполнять симуляцию нажатия клавиш, движений мыши и манипуляции с окнами, элементами управления, отслеживать системные события и реагировать на них. Это позволяет автоматизировать задачи пользователя Windows таким образом, какой невозможен или затруднён в других языках программирования
В частности, поддерживаются следующие возможности:
- Юникод (начиная с версии 3.2.4.0).
- Регулярные выражения в стиле Perl (используется библиотека PCRE).
- Запуск консольных приложений и доступ к стандартным потокам ввода-вывода.
- Запуск программ от имени другого пользователя (функция RunAs).
- Сжатие и защита исполняемого файла от декомпиляции с помощью упаковщика UPX
- Создание графических интерфейсов GUI, информационных сообщений, форм ввода информации.
- Вызов функций из динамических библиотек и функций Windows API.
- Работа с реестром Windows, буфером обмена, файлами (чтение, изменение, копирование, удаление).
- Работа с объектами COM (Сomponent object modelling).
- Перехват и эмуляция клавиатурных нажатий и кликов мышки.
- Работа с окнами (особенно легко работать с графическими элементами из Windows): передвижение, скрытие, отображение, изменение размера, активизация, закрытие. К окнам можно обращаться по их заголовку, отображаемому тексту, размеру, расположению, классу, по внутренним дескрипторам (handle) Win32 API, определяемым с помощью входящей в комплект поставки утилиты Au3Info.
- Получение информации и взаимодействие с элементами управления (особенно стандартными): поле редактирования, переключатель, список, кнопки, статусная строка и т. д., в том числе неактивными.
- Чтение HTML-страниц, скачивание файлов, работа с FTP, отправка E-mail сообщений, работа с базами данных MySQL и SQLite.
- Работа с протоколами TCP и UDP.
- Автоматизация работы в браузерах: Internet Explorer, Opera, Firefox, Google Chrome.
- Работа со звуком и музыкой.
- Воспроизведение видео в формате AVI.
- Работа с векторной графикой и с популярными форматами изображений.
- Поддержка User Account Control (UAC) в Windows Vista и выше.
_DockToWindow
#include <GUIConstantsEx.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> If (Not ProcessExists("SciTE.exe")) Then Exit MsgBox(4096, '', "Please start SciTE.exe") EndIf Example() Func Example() ; Create a GUI, similar to SciTE Jump's GUI. Local Const $hGUI = GUICreate('', 215, 400, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX)) GUISetState(@SW_SHOWNORMAL, $hGUI) ; Dock the first window to left and adjust the width based on the width of the second GUI. _DockToWindow(WinGetHandle(""), $hGUI) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd GUIDelete($hGUI) EndFunc ;==>Example Func _DockToWindow(Const $hHandle_1, Const $hHandle_2) ; Retrieve the working area, this is minus the taskbar dimensions so slightly different to @DesktopHeight and @DesktopWidth which is the ; monitors height and width. Local Const $SPI_GETWORKAREA = 48 Local Const $tWorkArea = DllStructCreate($tagRECT) _WinAPI_SystemParametersInfo($SPI_GETWORKAREA, , DllStructGetPtr($tWorkArea)) ; Retieve the position of the second GUI. Local Const $aClientSize_2 = WinGetPos($hHandle_2) ; Set the state of the windows to 'Restore'. WinSetState($hHandle_1, '', @SW_RESTORE) WinSetState($hHandle_2, '', @SW_RESTORE) ; Move the first to the far left of the screen and adjust the width to the total screen width minus the width of the second GUI. e.g. 1366 - 215 WinMove($hHandle_1, '', DllStructGetData($tWorkArea, 'Left'), DllStructGetData($tWorkArea, 'Top'), DllStructGetData($tWorkArea, 'Right') - DllStructGetData($tWorkArea, 'Left') - $aClientSize_22], DllStructGetData($tWorkArea, 'Bottom') - DllStructGetData($tWorkArea, 'Top')) ; Move the second window to the far right in between the remaining space and adjust the height of the GUI. WinMove($hHandle_2, '', DllStructGetData($tWorkArea, 'Right') - DllStructGetData($tWorkArea, 'Left') - $aClientSize_22], DllStructGetData($tWorkArea, 'Top'), $aClientSize_22], DllStructGetData($tWorkArea, 'Bottom') - DllStructGetData($tWorkArea, 'Top')) EndFunc ;==>_DockToWindow
Метод 1 — Меню ПускПравить
Доступно только при полной установке.
Окно Aut2Exe
1. Откройте Меню Пуск и найдите группу AutoIt v3.
2. Выберите Compile Script to .exe
3. Основное окно Aut2Exe должно появиться.
4. Используйте кнопку Browse для выбора входного файла (.au3) и выходного (.exe) файла.
5. Можно изменить иконку для выходного файла .exe — просто укажите путь к нужной иконке в поле Custom Icon (несколько иконок можно найти в Program Files\AutoIt3\Aut2Exe\Icons).
6. Ещё одна опция, которую вы хотели бы изменить — уровень сжатия (особенно при использовании FileInstall для добавления дополнительных файлов). Используйте пункт меню Compression, чтобы установить уровень сжатия. Чем выше уровень сжатия — тем дольше будет происходить компиляция. Но! Независимо от выбранного уровня сжатия скорость распаковки будет одинаковой.
7. Нажмите Convert, чтобы начать компиляцию.
Замечание: скрипты также могут быть скомпилированы в файлы .a3x. Для запуска таких файлов по прежнему понадобится файл AutoIt.exe. Файл .a3x содержит сам скрипт, а также файлы, включённые с помощью #include и FileInstall. Этот формат позволяет распространять небольшие по размеру файлы, не содержащие файл AutoIt3.exe в каждом скомпилированном скрипте.