Что нового

AutoIt 3.3.10.0 - Финал

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Список изменений:
23 Декабря 2013г.

AutoIt:
Убрано: PluginOpen() и PlugInClose() за не использованием.
Изменено: Убрана поддержка Windows 2000. Минимальная поддерживаемая версия теперь Windows XP RTM / Windows Server 2003.
Изменено: upx.exe обновлён 3.07 -> 3.91.
Изменено: Движок PCRE (рег. выражения) обновлён до 8.33.
Изменено: Символ новой строки по умолчанию для PCRE изменён на ANYCRLF.
Изменено: ReDim теперь работает для массивов объявленных как статические.
Изменено: Ошибки в реальном времени для объектов больше не фатальные (выполнение скрипта не прекращается).
Изменено: Теперь допускается множество обработчиков COM-ошибок. Вызывается последний зарегистрированный и активный.
Изменено: VT_NULL VARIANT конвертирован в ключевое слово Null (ранее пустая строка).
Изменено: Файл манифеста (manifest) для AutoIt и компилированных приложений по умолчанию используется как "AsInvoker" и помечен для совместимости с Vista/Win7/Win8 и Win8.1.
Изменено: #NoAutoIt3Execute заменено на #pragma compile(AutoItExecuteAllowed, false). По умолчанию false.
Изменено: Функция IsAdmin() изменена чтобы базироваться на token membership. Возможно это более подходит под тип среды Sandbox.
Изменено: ShellExecute() возвращает ID процесса.
Добавлено: Функция DriveGetType() теперь определяет SSD, а также типы шин (SATA, USB, и т.д.).
Добавлено: Интерпретатор принимает 64-битные hex числа.
Добавлено: Ключевое слово Null.
Добавлено #488: Третьи параметр для функции ObjGet() чтобы указывать инстанцию объекта.
Добавлено: Составные операторы присваивания для свойств объекта.
Добавлено #1191: Теперь не требуется явного указания размера массива для его явной инициализации.
Добавлено: Доступ к массиву в выражений: StringSplit("a,b", ",")[1]
Добавлено: Доступ к свойствам объекта в выражений: ObjCreate("Shell.Application").GetSystemInformation("DirectoryServiceAvailable")
Добавлено: Пустые массивы.
Добавлено: В переменных теперь можно ссылаться на функции, и функция может быть вызвана посредством переменной.
Добавлено: FuncName().
Добавлено: Встроенные функции, которые принимают функцию обратного вызова (callback) теперь могут быть переданы непосредственно, в дополнение к старому методу передачи в виде строки. Встроенные функции теперь также могут быть переданы (будьте осторожны, убедитесь что передаваемая функция соответствует тому, что ожидается в вызове обратной функции).
Добавлено: Тернарные операторы в стиле C++: Local $fResult = ("foo" = "bar") ? True : False
Добавлено: Выражение в качестве параметра по умолчанию в функций.
Добавлено: With...EndWith теперь может использоваться в выражениях с доступом к свойствам объекта.
Добавлено: Вложенные "With...EndWith".
Добавлено: Call() может вызывать встроенные функции.
Добавлено: ByRef в функции Call().
Добавлено: Поддержка других типов COM VARIANT.
Добавлено: @OSVersion поддерживает Windows 8.1 и Windows 2012 R2.
Добавлено: Движок PCRE (регулярные выражения) теперь использует новый нативный 16-битный метод, а также компилируется с полной поддержкой UCP. Для включения, добавьте префикс (*UCP) в ваше выражение.
Добавлено: @LocalAppDataDir для получения локального каталога AppData (@AppDataDir указывает на roaming)
Добавлено: StringReverse() - UTF16 совместимая функция для реверсии строки.
Добавлено: FileReadToArray() - нативная функция по аналогий с _FileReadToArray().
Добавлено #2358: FileInstall() принимает @ScriptFullPath в качестве первого параметра, чтобы позволить простое вложение исходника скрипта.
Добавлено #2433: Моноширинный шрифт в приложений Fonts.
Исправлено #2067: -2147483648 не содержится в int32.
Исправлено #2003: ProcessWaitClose() вызывает большую нагрузку ЦПУ (процессора).
Исправлено #2076: COM VARIANT некорректно задаёт булевое значение True.
Исправлено #2015: DllCallbackRegister() искажает числа с плавающей точкой под x64.
Исправлено: x64 DllCall некорректно задаёт параметры типа double.
Исправлено: DllCallbackRegister() некорректно возвращает типы с плавающей точкой.
Исправлено: Разные проблемы с ключевым словом Static.
Исправлено #2078: Ошибка в com выражений.
Исправлено #2073: Непредвиденное завершение скрипта из за ContinueLoop.
Исправлено #1485: Непредвиденное завершение скрипта из за ContinueCase.
Исправлено: Крах в ObjEvent() для параметров объекта ByRef.
Исправлено #2068: Повторяющиеся вызовы Acos() больше не вызывают странные результаты. ПРИМЕЧАНИЕ: Это исправление увеличивает размер AutoIt примерно на 60KB.
Исправлено: ObjGet() отказывает выполнять проверку идентификатора класса должным образом, когда указан первый параметр для функции.
Исправлено #2111: RunAs() могла отказывать даже когда пользователь имел соответствующие права для её использования.
Исправлено #1395: DLLCallbacks при выходе.
Исправлено: Ptr() возвращает пустой указатель (null pointer) для объектов.
Исправлено #1319: Зависание при выходе при использований элементов RichEdit.
Исправлено #2138: GUICtrlRead() для элементов dummy искажала строки и возможные крахи AutoIt.
Исправлено #1760: #OnAutoItStartRegister игнорировал одинарные кавычки в именах функции.
Исправлено #2146: Крах при закрытий AutoIt когда выполнялся запуск с консольного окна.
Исправлено: Терялся тип DLLStruct в операциях сравнения.
Исправлено: Параметр типа "struct" в DllCall() перезаписывал возможные последующие параметры.
Исправлено #1566: Проблема с массивом как собственный элемент.
Исправлено #1551: Крах при изменений массива.
Исправлено: ReDim позволяет инициализацию для переменной не являющейся массивом.
Исправлено #2166: StringToASCIIArray() и StringFromASCIIArray() некорректно возвращают пустую строку когда начальный индекс больше конечного индекса.
Исправлено #1901: 32-битные компилированные скрипты теперь работают из под директории system32 на 64-битном Windows.
Исправлено #2157: ProcessList() вызывает крах если запущено более 512 процессов.
Исправлено #2215: Неправильная проверка синтаксиса для параметров по умолчанию у функции.
Исправлено #2222: Не позволены не-ASCII символы в свойствах/методах объектах.
Исправлено #2235: ProcessGetStats() по умолчанию теперь использует текущий процесс в случае если указан неверный процесс.
Исправлено #2253: Ping() возвращает удачный резулльтат даже при остутствии соединения.
Исправлено #1498: #RequireAdmin вызывает бесконечный цикл при отключённом UAC.
Исправлено #1698: GUICtrlSetLimit(), лимит 32767
Исправлено: Мелкие ошибки в Ping()
Исправлено #2286: GUICtrtlGetState() без указания параметра controlID крашит AutoIt.
Исправлено #2350: Странная проблема при использовании $SS_ETCHEDVERT и $SS_ETCHEDHORZ.
Исправлено #2311: Неправильная обработка чувствительности к параметру регистра букв (casesense) в StringReplace()
Исправлено #2361: RegRead() не читает значения REG_QWORD.
Исправлено #2362: WinGetText() и ControlGetText() иногда выдают неверный результат из за обработки целевого приложения сообщения WM_GETTEXT.
Исправлено #2075: GUICtrlSetImage() изменяет позицию иконки в окне с изменяемым размером.
Исправлено #1667: WinMove() для дочернего окна.
Исправлено #2367: Иногда два COM объекта не классифицируются как равные во время сравнения.
Исправлено #1024: GUICtrlSetTip() для tabitems устанавливается некорректно в некоторых ситуациях.
Исправлено #2366: Цикл For не работает как ожидается.
Исправлено #2384: UDPRecv() и TCPRecv() некорректно устанавливают @error в некоторых инстанциях.
Исправлено #2314: Мерцание курсора при перемещений над некоторыми элементами GUI.
Исправлено #2066: DllStructSetData() в некоторых случаях возвращает int64 вместо int32.
Исправлено #2427: ControlTreeView() не использует Option2.
Исправлено #2105: RegRead() и DWORD типы некорректно хранятся как double.
Исправлено #2299: Текст кнопки GUI по левому краю для цветной кнопки.
Исправлено #1954: ListViewItem возвращает 0 (неудача) даже если список заполнен.
Исправлено #2152: X^2 не работает в Hex().
Исправлено #1870: @GUI_DragFile.
Исправлено #2461: GUICtrlSetImage не обрабатывает определённые типы .gif файла.
Исправлено #2167: $WS_EX_LAYOUTRTL и GUICtrlCreateMenu вызывают баг.
Исправлено #2468: Уточнение в документации для функции в #OnAutoItStartRegister.
Исправлено #2315: Поддержка WIN_2012 в @OSVersion.
Исправлено #2171: Непоследовательность в TCPTimeout.
Исправлено #2518: Ключевое слово Static работает некорректно.
Исправлено: StringStripCR() и StringAddCR() не работает со строками содержащими null'ы.

UDFs:
Убрано #2174: Явная проверка того, что строки source и insert для _StringInsert() были действительно строки, и принуждение возврата @error. (значения @error 2 и 3 убраны, см. документацию.)
Убрано #2187: Принуждение _GUICtrlRichEdit_Create() создавать элемент richedit в положительной позиции. (значения @error 103 и 104 убраны, см. документацию.)
Убрано #2172: Использование Select...EndSelect в _StringRepeat(), заменено If...EndIf как оптимизация кода.
Убрано: Документация и пример для _Iif(). Скрипты должны быть обновлены для использования тернарных операторов.
Убрано: Документация и пример для _StringEncrypt(). Скрипты должны быть обновлены для использования функции Crypt. См. _Crypt_EncryptData() для альтернативного примера.
Убрано: _ArrayCreate() из Array.au3.
Убрано: Заголовки функции в UDF'ах, информация о функциях может быть найдена в файлах справки, в связи с этим размер папки includes уменьшен на 32.23% (7.01MB ->> 4.40MB).
Убрано: Документация и пример для _StringReverse(). Скрипты должны быть обновлены для использования нативной функции StringReverse().
Убрано: $tagGDIPPENCODERPARAMS (дублирование $tagGDIPENCODERPARAMS).
Изменено #2117: _FileCountLines() пишет во временный массив для подсчёта числа строк в файле.
Изменено: _FileListToArray() принимает ключевое слово Default для указания параметров по умолчанию.
Изменено: _FileReadToArray() парсирует файл используя регулярные выражения. Теперь разные варианты окончания строки (не рекомендуется) корректно отображаются в массиве.
Изменено: Word UDF полностью переписана. Имена функции изменены с _Word* на _Word_*. ЭТО ИЗМЕНЕНИЕ НАРУШАЕТ ОБРАТНУЮ СОВМЕСТИМОСТЬ СТАРЫХ СКРИПТОВ.
Изменено: _Max() и _Min() функции теперь используют тернарные операторы.
Изменено: Переписана _ReplaceStringInFile() чтобы исключить запись во временный массив. (значения @error 4, 5 и 6 убраны, см. документацию.)
Изменено: Переписана _GetIP() для улучшения эффективности, а также добавлено http://www.myexternalip.com/raw для получения внешнего IP адреса.
Изменено: _SQLite 3.7.2.0 -> 3.8.2.0.
Изменено: IE3.au3 v3.0-0 до v3.0-1 (подробнее см. заголовочную информацию).
Изменено: Array UDF теперь принимает в расчёт пустые массивы.
Изменено: Переписана _ProcessGetName() для улучшения скорости.
Изменено: Переписана _PathSplit() с использованием регулярных выражений. Спасибо DXRW4E.
Изменено: Функции _GDIPlus_GraphicsGetSmoothingMode() и _GDIPlus_GraphicsSetSmoothingMode().
Изменено: _FileWriteToLine() может читать файл с разными окончаниями строки (не рекомендуется).
Изменено: $tagGDIPENCODERPARAMS использует $tagGDIPENCODERPARAM.
Изменено: _GDIPlus...() использует целое число (integer) или число с плавающей точкой (float) для позиционирования.
Изменено: Модифицирована _ArrayUnique() более быстрой версией, а также улучшены проверки на ошибки.
Изменено: $INTERNET_FLAG_NO_CACHE_WRITE значение по умолчанию для _FTP_ListToArray*().
Изменено: _ArrayDisplay() - новые возможности функции.
Изменено: GUIListView - новые функции _Delete*.
Добавлено: Функция _WinAPI_GetProcAddress().
Добавлено #2126: Заметка в документации по поводу того, что _ArrayDisplay() может отображать максимум 65530 пунктов.
Добавлено #1158: Интеграция WinAPIEx, разделено под WinAPI*.au3.
Добавлено #2250: DirMove() в секцию "См. также" у DirCopy().
Добавлено #2155: Недостающая документация в Run() / RunWait() по поводу рабочего каталога по умолчанию.
Добавлено #2224: Необязательный параметр в _FileReadToArray() для возврата числа элементов массива в первом элементе.
Добавлено #2114: Отключение и включение сообщения перерисовки (redrawing message) для увеличения скорости отображения _ArrayDisplay(). (Заметно только при больших массивах.)
Добавлено #2120: Отключение и включение сообщения перерисовки (redrawing message) для увеличения скорости удаления пунктов используя _GUICtrlListView_DeleteAllItems(). (Заметно только при удалении большого количества пунктов списка.)
Добавлено #966: Необязательный параметр в _FileListToArray() для возврата полного пути к файлу / каталогу.
Добавлено #2193: _StringTitleCase(), для преобразования первой буквы каждого слова в заглавную (не работает с юникодом).
Добавлено #2263: _Crypt_GenRandom(), заполняет буфер случайными данными.
Добавлено #2354: _ArrayTranspose() в Array UDF.
Добавлено #2338: Сопоставление шаблона регулярных выражений. Подробнее см. в документации к _ArraySearch().
Добавлено #2340: Необязательный параметр в _GUICtrlListView_SimpleSort() для определения, нужно ли инвертировать $vSortSense (ранее $vDescending.)
Добавлено: _FileListToArrayRec() в пользовательские функции (UDF). Рекурсивный поиск файлов от Melba23. Подробнее см. документацию.
Добавлено: Пример для _VersionCompare().
Добавлено: Константы Graphic SmoothingMode (GDIPlusConstants).
Добавлено: Функции _GDIPlus_CustomLineCapCreate() и _GDIPlus_BitmapCreateFromScan().
Добавлено: Константы для DriveGetType() и StringSplit(). Подробнее см. в документации к функциям в секции "См. также".
Добавлено: InetConstants.au3 для использования с Inet функциями. Подробнее см. в документации к функциям в секции "См. также".
Добавлено: Функции GDIPlus и соответствующая документация с примерами.
Добавлено: _GDIPlus_ParamSize() для обработки совместимости с X64.
Добавлено #2540: _ArrayDisplay() может копировать заголовок (Header) и строку (Row).
Исправлено #2077: Безопасная проверка hwnd в _GUICtrlRichEdit_Create()
Исправлено #2088: _ArrayDisplay() некорректно обрабатывает параметры по умолчанию.
Исправлено #2112: "Report Log Window" не отвечает когда скрипт закрыт.
Исправлено: _GUICtrlRichEdit_* документация для возврата кодов ошибки.
Исправлено #1970: _FTP_ListToArray() неудачно возвращает только каталог или только файл.
Исправлено #2084: Буфер обмена не закрывается если произошла ошибка в _ClipBoard_SetDataEx().
Исправлено #2125: Запись в двумерный массив происходит только для двух первых колонок массива.
Исправлено #2070: Непредвиденный крах на определённых системах при использований _GUICtrlStatusBar_GetText().
Исправлено #2132: Документация к _WinAPI_GetModuleHandle() и к параметру возврата дескриптора вызываемого процесса. (Использование ключевого слова Null вместо 0.)
Исправлено #2162: Неисправная ссылка в документации к _IEFormElementCheckBoxSelect() в разделе управления IE (IE Management).
Исправлено #2170: _ArrayDisplay() неудачно обрабатывает массивы без элементов.
Исправлено: _PathMake() not appending backslash to the root path.
Исправлено #2223: Incorrect UDF being referenced in _WordErrorHandlerRegister().
Исправлено #2252: _GUICtrlListView_DeleteAllItems() неудачно удаляет пункты созданные с _GUICtrlListView_AddItem() в нативном listview.
Исправлено #1861: _ArrayDisplay() некорректное отображение массива при использований параметра $sHeader и если массив содержал разделитель по умолчанию.
Исправлено: Использование неподдерживаемых символов в префиксе файла у _TempFile().
Исправлено #2186: Документация к _WinNet_AddConnection()* и $sLocalName. (Использование ключевого слова Null или пустую строку вместо 0.)
Исправлено #2148: Крах при передаче числового значения вместо строкового.
Исправлено #2219: _ExcelReadSheetToArray() вызывает зависание AutoIt при чтений защищённой книги (worksheet).
Исправлено #2242: Невозможно записать нулевой элемент в _FileWriteFromArray(). Для параметров $iBase и $iUBound теперь поддерживается ключевое слово Default, в связи с этим используйте это вместо значения 0 для параметров по умолчанию. (см. документацию.)
Исправлено #2218: Крах AutoIt при вызове _GUICtrlListView_SetGroupInfo() перед вызовом _GUICtrlListView_SetItemGroupID().
Исправлено #1996: _GUICtrlListView_SimpleSort() неудачно сохраняет ItemParam пункта.
Исправлено #1759: Странная сортировка listview.
Исправлено #2298: Неудачное определение когда EnumDisplayDevices возвращает 0.
Исправлено: _FileWriteFromArray() неудачная передача параметра $aArray как постоянная ссылка.
Исправлено: $tagREBARBANDINFO не работает на XP, из за ссылающихся параметров предназначеных для Vista и выше.
Исправлено #2305: Выдаёт неправильную ширину и высоту рабочего стола при использовании параметров по умолчанию.
Исправлено #2335: Порядок _WinAPI_EnumWindows() и _WinAPI_EnumWindowsPopup().
Исправлено #2347: Неправильные данные _WinAPI_GetMonitorInfo().
Исправлено #2320: Некорректные возвращаемые значения для определённых функции IE.
Исправлено: _GUICtrlListView_InsertItem() не удаётся вставить -1 в случае если передаётся параметром $sText.
Исправлено #2460: _StringBetween() $sStart = $sSend.
Исправлено #2459: _StringBetween() информация описания в документации.
Исправлено #2465: _IEPropertyGet() - устаревшие ссылки в "ClientInfo Properties".
Исправлено: Совместимость функции _GDIPlus_...() с X64.
Исправлено #2486: _GUICtrlRichEdit_GetFont() плохо возвращает мульти шрифт. Также решено для #2485.
Исправлено #2492: _GUIToolbar_... пример в документации.
Исправлено: _SQLite_...() запуск в режиме X64.
Исправлено: _SQLite_Startup() проверка параметров и документация.
Исправлено #2550: _GUICombo_GetEditText() размерность структуры (struct).

AutoItX:
Убрано: Убраны файлы DevC и Visual Studio 6.
Убрано: ANSI версия функции Send/WinWait из нативного DLL.
Убрано: DLL Импорты: AU3_WinGetPosX, AU3_WinGetPosY, AU3_WinGetPosWidth, AU3_WinGetPosHeight.
Убрано: DLL Импорты: AU3_ControlGetPosX, AU3_ControlGetPosY, AU3_ControlGetPosWidth, AU3_ControlGetPosHeight.
Убрано: DLL Импорты: AU3_MousePosX, AU3_MouseGetPosY
Убрано: DLL Импорты: AU3_WinGetClientSizeWidth, AU3_WinGetClientSizeHeight.
Убрано: DLL Импорты: AU3_WinGetCaretPosX, AU3_WinGetCaretPosY.
Убрано: DLL Импорты: AU3_CDTray, AU3_BlockInput.
Убрано: DLL Импорты: AU3_RunAsSet.
Убрано: COM Методы: CDTray, BlockInput.
Убрано: COM Методы: RunAsSet.
Убрано: Все функции реестра. Поддержка была ограничена, и язык использования несомненно имеет функции для работы с реестром.
Убрано: Все функции Ini. По той же причине что и у реестра.
Изменено: AutoIt3.h переименован в AutoItX3_DLL.h.
Добавлено: AutoItX3.Assembly.dll - обёртка (wrapper) .NET Assembly для DLL.
Добавлено: AutoItX3.PowerShell.dll и AutoItX3.psd1 - набор командников (CmdLets) PowerShell.
Добавлено: Файлы проекта Visual Studio 2010 C++ (легко использовать в версии 2010 или позднее).
Добавлено: DLL Импорт: AU3_WinGetPos.
Добавлено: DLL Импорт: AU3_ControlGetPos.
Добавлено: DLL Импорт: AU3_MouseGetPos.
Добавлено: DLL Импорт: AU3_WinGetClientSize.
Добавлено: DLL Импорт: AU3_WinGetCaretPos.
Добавлено: DLL Импорты: AU3_RunAs, AU3_RunAsWait.
Добавлено: COM Методы: RunAs, RunAsWait.
Исправлено: Крах в AU3_PixelSearch при отказе функции.
Исправлено: Файлы AutoItX3.lib некорректно копировались в установочный файл.

Au3Check:
Изменено: Обработка сообщения (события) case поддерживает линейную проверку ошибок SciTE.
Изменено: Теперь генерируется ошибка для не поддерживаемых кодировок файла (раньше скрипт проходил проверку).
Изменено: Версия Au3Check теперь соответствует версии AutoIt.
Изменено: Явный размер массивов необязательный для явной инициализации.
Добавлено: Генерация ошибки для hex чисел длиннее чем 16 символов.
Добавлено: Операторы присваивания для свойств объекта.
Добавлено: Доступ к массиву по выражению.
Добавлено: Доступ к свойству объекта по выражению.
Исправлено #2113: Свойства объекта в именах ключевых слов распознаются как ключевые слова.
Исправлено #2141: #IgnoreFunc генерировал некорректную ошибку.

Другое:
Добавлено: Notepad++ autoit.xml файл в каталог Extras\Editors. Это содержит список обновлённых функции.
Добавлено: Возвышенный текст в языковом файле AutoIt.tm в каталоге Extras\Editors. Это содержит список обновлённых функции.
Добавлено: Файлы синтаксиса третьей стороны в каталоге Extras\Editors теперь содержат функции UDF.
Исправлено: Нехватает StringRegExpGUI в индексе меню файла справки.

Au3Record:
Исправлено #2083: Теперь больше не будет ошибки о недостающем DLL.
Исправлено #2337: Поддержка не Английской клавиатуры.

AutoIt3Help:
Изменено: Ресурс Manifest предоставляет Windows common controls v6.0.
Изменено: Номер версии до 1.0.0.5.
Исправлено #2519: Открывается неправильная страница при запуске без параметра.



Критические изменения для ваших скриптов
Официальная новость

Сообщить о найденных ошибках: [Англ.], [Рус.]

Скачать
 
Верх