Критические изменения в недавних версиях
Эта страница содержит список всех изменений в недавних обновлениях, которые почти наверняка нарушат нормальную работу уже существующих скриптов. Пожалуйста, внимательно прочтите этот документ. Если какое-либо из изменений касается ваших скриптов, то необходимо изменить эти скрипты для их нормальной работы в новой версии.
23 декабря, 2011 - v3.3.8.0
AutoIt:
- ObjName() имело множество исправлений багов и изменений, которые могут повлиять на возвращённые данные. Встроенные UDF изменены, чтобы приспособится к этому, но пользовательские скрипты возможно придётся отредактировать.
- ObjEvent() AutoIt.Error objects no longer have Raise() or Clear() methods and the properties are read-only.
- Int() и Hex() больше не устанавливают @error.
- COM methods now require parenthesis so the language can internally detect properties versus methods easier.
7-ое марта, 2010 - v3.3.6.0
UDF:
- _DateToDayOfWeekIso возвращала 0-6. Теперь она возвращает 1-7, где понедельнику соответствует 1.
15-ое января, 2010 - v3.3.4.0
Некоторые их указанных особенностей/возможностей являются устаревшими. Они не документированы, однако продолжают работать. Устаревшие функции будут удалены в следующей версии. Настоятельно рекомендуется обновить скрипты в соответствии с новым поведением.
AutoIt:
- Режим чтения raw для FileOpen() удалён.
- InetGet("abort"), @InetGetActive и @InetGetBytesRead удалены. Список новых функций, позволяющих реализовать аналогичное поведение:
- InetGet("abort") - используйте новую функцию InetClose() с дескриптором, полученным функцией InetGet().
- @InetGetActive - используйте новую функцию InetGetInfo() без параметров, чтобы узнать число активных закачек.
- @InetGetBytesRead - используйте новую функцию InetGetInfo() с дескриптором, полученным функцией InetGet(), чтобы узнать информацию о закачке.
- AdlibEnable() и AdlibDisable() удалены. См. новые функции AdlibRegister() и AdlibUnRegister().
- OnAutoItStart() удалена. См. новую директиву препроцессора #OnAutoItStartRegister.
- OnAutoItExit() удалена. См. новые функции OnAutoItExitRegister() и OnAutoItExitUnregister().
18-ое декабря, 2009 - v3.3.2.0
Некоторые их указанных особенностей/возможностей являются устаревшими. Они не документированы, однако продолжают работать. Устаревшие функции будут удалены в следующей версии. Настоятельно рекомендуется обновить скрипты в соответствии с новым поведением.
AutoIt:
- ShellExecute() и ShellExecuteWait() более не используют действие "открыть" ("open") по умолчанию. См. примечания для этих функций для получения дополнительной информации.
- Возвращаемое значение функции InetGet() изменилось. Это важно, прочитать и понять эти изменения, поскольку неправильное использование функции InetGet() может привести к утечкам ресурсов.
- InetGet("abort"), @InetGetActive и @InetGetBytesRead устарели. Список новых функций, позволяющих реализовать аналогичное поведение:
- InetGet("abort") - используйте новую функцию InetClose() с дескриптором, полученным функцией InetGet().
- @InetGetActive - используйте новую функцию InetGetInfo() без параметров, чтобы узнать число активных закачек.
- @InetGetBytesRead - используйте новую функцию InetGetInfo() с дескриптором, полученным функцией InetGet(), чтобы узнать информацию о закачке.
- Опция FtpBinaryMode удалена из AutoItSetOption(). Теперь функция InetGet() принимает параметр, позволяющий указать режим передачи.
- Синоним URLDownloadToFile() для функции InetGet() удалён.
- AdlibEnable() и AdlibDisable() устарели. См. новые функции AdlibRegister() и AdlibUnRegister().
- OnAutoItStart() устарела. См. новую директиву препроцессора #OnAutoItStartRegister.
- OnAutoItExit() устарела. См. новые функции OnAutoItExitRegister() и OnAutoItExitUnregister().
- Опция OnExitFunc удалена из AutoItSetOption(). См. новые функции OnAutoItExitRegister() и OnAutoItExitUnregister().
- GUICreate() with $WS_EX_MDICHILD has been fixed to be relative to client area as documented.
- ProcessWait() теперь возвращает PID, а не 1 в случае успешного выполнения.
- WinWait(), WinWaitActive(), WinActivate(), WinActive() и WinMove() теперь возвращают HWND вместо 1 при успешном выполнении.
- Макрос @YDAY теперь использует диапазон 001 - 366 вместо 1 - 366. This makes the macro more consistent with other languages (like C/C++) and more consistent with all other date related macros which return strings with leading 0s to pad the length.
- RegEnumKey() и RegEnumVal() теперь возвращают пустую строку вместо сообщения об ошибке.
UDF:
- Последний опциональный параметр для _StringBetween() удалён.
- _StringAddThousandsSep() удалена. There are too many opinions on what this function should do and too many revisions of this function have been made.
- _SQLite_SaveMode() переименов. в _SQLite_SafeMode().
24-ое декабря, 2008 - v3.3.0.0
AutoIt:
- Прекращена поддержка операционных систем Windows 9x и Windows NT 4.0. Используйте версию 3.2.12.1, если вам они действительно необходимы.
- @ProcessorArch переименован в @OSArch, так как вводил в заблуждение.
- RegRead() и RegWrite()
больше не используют hex-строку для типа REG_BINARY - осуществлён нативный бинарный тип данных.
AutoItX:
- Нативная версия DLL теперь использует исключительно строки в Юникоде (LPWSTR и LPCWTSR). Если вы реально нуждаетесь в строках ANSI, то продолжайте использовать v3.2.12.1. The easiest workaround though is to use a "wrapper" function to simply convert between Unicode and ANSI. A limited selection of functions (WinWait... and Send) have an ANSI version but it is not intended to add ANSI versions for any others unless there is a large demand.
UDF:
16th May, 2008 - v3.2.12.0
AutoIt:
- RunAsSet() has been removed. Use the new RunAs() and
RunAsWait()
functions instead. They have been enhanced with slightly better security (It
is still not recommended to store important passwords in your scripts) and
more functionality.
- The option RunErrorsFatal has been removed.
Run(), RunWait(),
ShellExecute()
and ShellExecuteWait() now all set @error when they fail to run the
application. AutoIt will no longer throw a fatal error when an application
fails to run.
- StdoutRead(),
StderrRead() and
ConsoleRead() have undergone
significant changes. They no longer block, they return immediately. The
parameters have changed as well. It's no longer possible to read count
parameters. The peek parameter has moved to the second parameter. The third
parameter now specifies you want the data to be returned in binary format
(default is text). The macro @extended now holds the number of
bytes/characters read.
- StdinWrite(),
ConsoleWrite() and
ConsoleWriteError() will now behave
differently when given binary data. The binary data is written as-is instead
of converting it to a string. Also, the return value from these functions is
the number of bytes written instead of a generic value of 1.
- Removed: ColorMode option ( Opt() ).
- Fixed: Random(Min,Max,1). Previously this would never actually return Max,
so if Max was artificially incremented by one the script will now need to be
changed.
UDFs:
(Please see
this forum
thread for more details and help with these changes.)
- GUIConstants.au3 is identical to GUIConstantsEx.au3. This means that
many scripts using advanced GUI functionality will need to use additional
#include statements to include files containing constants that were
previously and erroneously included.
- GUIDefaultConstants.au3 no longer exists. You must now #include the
corresponding individual constants file for the control type you need. For
example, ListBoxConstants.au3, ComboConstants.au3, EditConstants.au3, etc.
- _ArrayCreate() documentation has been removed. The function is still
present but may be removed at a later time. Scripts should be updated to use
the array initialization syntax built into AutoIt.
25th November, 2007 - v3.2.10.0
AutoIt
- DllCall(): short_ptr, long_ptr, int_ptr types deprecated. Use
short*, long* and int* respectively.
UDFs
- _GUICtrlXXXYYY() have been renamed _GUICtrlXXX_YYY() without any functional changes see UDF renaming.