Что нового

Обсуждение AutoIt 3.3.14.2/3/4/5 - Финал

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,487
Поскольку я немного(?) запоздал с новостью и переводом, тут будем обсуждать сразу 4 последних версий AutoIt.
Список изменений.
 
Сообщения
142
Репутация
-3
В этой версии AutoIt меньше багов, чем в другой утилите подобного плана.
 

Dellroc

Осваивающий
Сообщения
151
Репутация
32
Теперь в кастомных функциях параметр Default передаётся как строка. Пришлось переделывать часть скриптов.
 
Автор
CreatoR

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,673
Репутация
2,487

Prog

Продвинутый
Сообщения
607
Репутация
77
Новых версий нет почти 4 года. Разработчики забросили AutoIt?
 
Сообщения
142
Репутация
-3
Новых версий нет почти 4 года. Разработчики забросили AutoIt?
Скорее всего там один человек. Этот человек некогда сделал исходный код AutoIt закрытым, а когда один, то, вероятно, наступит время, что будут другие приоритеты.
 

Andrey_A

Продвинутый
Сообщения
325
Репутация
68
Последняя бета от 2021-06-12
Достаточно много изменений/добавлений
Код:
Changed: PCRE regular expression engine updated to 8.44. 
Added #3741: GUISetStyle() example to avoid blank title bar. 
Added #3681: Lang Variable prefix "o". 
Added #3670: DriveGetDrive() @error doc clarification. 
Added #3574: GuiCtrlCreateInput() Doc $ES_AUTOHSCROLL precision. 
Added: doc pages about ControlID/Handle and String/Encoding. 
Added #2375: SetError(), SetExtended() doc precision. 
Added #3780: WinSetTitle() on notepad.exe is reverted when the windows get focus starting Windows 19H1 !!! 
Added #3222: Doc precision for statement with 2 FileInstall(). 
Added: ConsoleWrite() preserves the @error and @extended. 
Added: ConsoleWriteError() preserves the @error and @extended. 
Added #2938: Add "GetCount" to ControlCommand() 
Added #3539: FileGetTime() UTC. 
Added #3808: ProgressOn()/ProgressSet() - size of the progress window 
Fixed #2806: GUICtrlCreateIcon() doc when filename="". 
Fixed #3580: FileSetAttrib() crashing on root folders. 
Fixed #3636: Applied the SS_NOPREFIX style to the SplashTextOn dialog. 
Fixed #3689: GUICtrlSetOnEvent ( controlID, "" ) wasn't disabling the previous set UDF and returned error=1. 
Fixed #3707: GUISetOnEvent($GUI_EVENT_CLOSE, "") wasn't disabling the previous set UDF and returned error=1. 
Fixed: GUIOnEventMode and TrayOnEventMode options had unnecessary slow downs. 
Fixed: Workarounds added to alleviate slow downs on Windows 10 1809 and later (OS bug/design change). 
Fixed: Missing Opt("SetExitCode", 1) and AutoIt3 Exit codes in doc. 
Fixed #3211: Doc precision for hwnd parameter in Pixel*() functions. 
Fixed #3774: Doc precision about Null keyword comparison. 
Fixed #3579: DllStructGetData() doc precision. 
Fixed #3021: bad obj calling. 
Fixed #3106: StringIsFloat() doesn't accept a valid FP exponent. 
Fixed #3135: StdioClose memory leak. 
Fixed #3165: Call UBound Array[0] AutoIt Crash. 
Fixed #3167: Com error handler not called. 
Fixed #3179: Number() failure with lower case hex. 
Fixed #3182: MouseMove() on multiple screens. 
Fixed #3232: Issue when parsing scientific notation literals. 
Fixed #3659: InetClose() always false. 
Fixed #3682: GuiCtrlCreatePic() with h=0 and w=0. 
Fixed #3701: Crash with array 2^24. 
Fixed #3710: @OSVersion for Server 2019. 
Fixed #3743: [LAST] and WinWaitClose(), WinExists(), WinGetHandle(), etc. 
Fixed #3772: int64 = -9223372036854775808 not handled properly. 
Fixed #3778: ToolTip() position. 
Fixed #3789: FileRead() on big ANSI file (1Gb). 
Fixed #3790: UCS2 compare empty string. 
Fixed #3807: GUISetIcon() in taskbar. 
Fixed #3809: WinGetTitle() on windows created with _WinAPI_CreateWindowEx(). 
Fixed #3817: Double to Int64 conversion. 
AutoItX:

Changed: AutoItX .NET assembly updated to .NET 4.0 / CLR 4. 
Changed: AutoIt PowerShell CmdLets updated to .NET 4.0 / CLR 4. 
Changed: Updated C++ example. 
Fixed #3642: ControlTreeView example. 
Fixed: run*() showflag default SW_SHOWNORMAL. 
Aut2Exe:

Fixed #2383: Aut2exe GUI dropped files. 
Added #3684: Aut2exe title with version. 
Au3Check:

Fixed #2822: object('item')('item') syntax support. 
Fixed #3560: parentheses around function reference. 
Fixed #3785: Crash if too many includes. 
Au3info:

Added #3938: DPI scaling Support. 
UDFs:

Changed: slight improvement when _DebugReport() display "error code:" different from 0. 
Changed: _WinAPI_Reg*() doc and examples. 
Changed: _SQLite 3.22.0.0 -> 3.28.0.0. 
Changed #3620: Removed "stable" from _ArraySort function header. 
Changed: Updated used Excel constant enumerations in ExcelConstants.au3 to Excel 2016. 
Added: Extras\AutoUpdateIt\AutoSQLiteUpdateIt.au3 script to download sqlite dll's used by _SQLite_Startup(). 
Added #3149: _SQLite_GetTableData2D() simplified version of _SQLite_GetTable2d() returning just data. 
Added: RegWrite() doc and example about #requireAdmin. 
Added: $ARRAYDISPLAY_ROWPREFIX to change the prefix of the row numbering in _ArrayDisplay(). 
Added: _Assert() use if needed _DebugReport(). 
Added #3027: _WinAPI_RegEnumKey() return the lastWriteTime of the subkey in @extended. 
Added: _WinAPI_RegCreateKey() and _WinAPI_RegOpenkey() can use $hKey as in RegRead(). 
Added: _WinAPI_RegDeleteKey() new parameter $iAccess. 
Added: $ARRAYDISPLAY_CHECKERROR for _ArrayDisplay() avoid display after _Array*() errors. 
Added: _DebugArrayDisplay() write a _DebugReport() if @error set when called. 
Added: _WinAPI_ShellQueryRecycleBin() example. 
Added: $REG_ERROR_MORE_DATA for _WinAPI_RegQueryValue(). 
Added: _DebugReportVar() support Array 3D. 
Added: _GUICtrl*() using GUICtrlInternals.au3 (Internal maintenability). 
Added #3753: _GUICtrlListView_SetImageList sanity check on $iType parameter. 
Added #3514: _GUICtrlTreeView_GetLastItem() (Thanks Crazzy). 
Added #3611: _GUICtrlListView_SetBkHBITMAP() (Thanks Alofa). 
Added #3695: _SQLite_Display2DResult() 2 additional parameters $sDelim_Col and $sDelim_Row. 
Added #3675: WinNET.au3 $tagNETRESOURCE: Add constants. 
Added #3740: _ChooseColor() support Custom colors (Thanks argumentum). 
Added #3547: _FormatAutoItExitCode() and _FormatAutoItExitMethod(). 
Added #3696: _ArrayFromString(). 
Added #3771: ColorConstants.au3 now include all W3C extended colors. THIS IS A small SCRIPT BREAKING CHANGE 
Added #3739: _Array2DCreate(). 
Added #3550: _Date_Time_SystemTimeToDateTimeStr() support 2 new formats to return GMT or ISO8601 format. 
Added: _WinAPI_CreateProcess() example. 
Added #3804: _GUICtrlMenu_CreateMenu() example to demonstrate menuclick non blocking. 
Added #3806: _GDIPlus_GraphicsDrawString() with AlphaColor font. 
Added #3811: _SQLite_Startup() new parameter to allow return AutoIt Type variables by _SQLite_FetchData(). 
Added: _GUICtrlListView_GetSelectedIndices() optimisation (Thanks pixelsearch). 
Added: _WinAPI_GetProcessName() and _WinAPI_GetParentProcessName() doc example (Thanks argumentum). 
Added #3813: _MemGlobalRealloc(). 
Added #3816: _WinAPI_ReadDirectoryChanges() example with magic number. 
Added: SpeedUp display and sorting of ArrayDisplay() and _DebugArrayDisplay() (Thanks LarsJ). 
Fixed #3605: _GUICtrlListView_SetBkImage() does not accept control ID. 
Fixed: _GUICtrlEdit_GetCueBanner() and _GUICtrlEdit_ShowBalloonTip() using Unicode string. 
Fixed: Use _WinAPI_GetString() instead of _WinAPI_WideCharToMultiByte() to handle Unicode. 
Fixed #3618: $tagNMLVKEYDOWN, $tagNMTVKEYDOWN, $tagNMTCKEYDOWN structure alignment. 
Fixed #3619: _WinAPI_LocalFree() doc. 
Fixed #3243: _WinAPI_MoveFileEx() if $sNewFile = 0 and $MOVE_FILE_DELAY_UNTIL_REBOOT. 
Fixed #3264: _INetSmtpMail() bad $sFirst default value. 
Fixed #3265: _INetSmtpMail() bad Bias calculation. 
Fixed: _WinAPI_GetErrorMessage(), _WinAPI_GetLastErrorMessage() returning @error. 
Fixed: _WinAPI_GUIDFromStringEx() return on error. 
Fixed: _WinAPI_EnumProcessHandles() seting @extended if too many Handles. 
Fixed #3626: _WinAPI_GetSaveFileName() example. 
Fixed: _WinAPI_RegQueryValue() wrong return on success and does not return error $ERROR_MORE_DATA. 
Fixed #3628: _WinAPI_GetCaretPos() bad return. 
Fixed #3632: _Net_Share_ShareCheck() 2nd parameter is a $sResourcePath. 
Fixed: _ArrayInsert() range element comparison datatype mismatch. 
Fixed #3637: _ArrayDisplay() error when Array is empty and Range parameter exists. 
Fixed #3657: _GUICtrlListView_SimpleSort selected item when no selection. 
Fixed #3687: Corrected HSL constantvalues for RGB-HSL-RGB conversion. 
Fixed #3699: _ArrayMin(), _ArrayxMinIndex(), _ArrayMax() and _ArrayMinIndex() examples. 
Fixed #3708: _WinAPI_LoadCursor() and _WinAPI_GetIconInfo() must use $OCR_* instead of $IDC_* that are used in AutoIt Mouse builtin. 
Fixed #3711: _WinAPI_EnumWindows() and _WinAPI_EnumWindowsPopup() examples. 
Fixed #3713: missing $ENM_NONE definition. 
Fixed #3716: _ArrayToClip() example. 
Fixed #3714: _GUICtrlTreeView_Sort() crash with 1 element TreeView. 
Fixed #2962: GUICtrlSetImage() on GUICtrlCreatePIC() with $SS_SUNKEN or WS_EX_DLGMODALFRAME. 
Fixed #3744: _Crypt_DestroyKey() does not return error on wrong key. 
Fixed: $LANG_FRENCH value in _WinAPILangConstants.au3. 
Fixed #3733: _FileListToArrayRec() sometimes hanging when ".." filename was returned causing an endless recursion. 
Fixed #3737: _ArrayUnique() failed with a single element array when using $iBase parameter. 
Fixed #3755: _ArrayInsert/Delete $vRange delimited string failing. 
Fixed: _GUICtrlTreeview_*() running in X64 mode. 
Fixed: GUITreeView.au3 running in X64 Mode (Thanks Danyfirex). 
Fixed: Problem with _WinAPI_GetFontResourceInfo() & _WinAPI_GetFontMemoryResourceInfo(). 
Fixed #3728: Added optional parameter to _ArrayTranspose to force single column 2D array to 1D. 
Fixed #3678: Amended Help file to show that _FileWriteLine with no text blanks a line, not removes it. 
Fixed #3757: Added note to GUICtrlListView_SetColor* pages about need to use BGR format. 
Fixed #3697: _WinAPI_GetOverlappedResult() failure. 
Fixed #3647: _GDIPlus_ImageResize() ghost border. 
Fixed #3650: _GDIPlus_ImageResize() off by one. 
Fixed #3633: _GUICtrlRichEdit_GotoCharPos() does not detect end of text. 
Fixed #3765: _FileWriteLog() using Handle Cannot insert atvthe beginning, just set @extended. 
Fixed #3776: __EventLog_DecodeDesc(). 
Fixed: _GUICtrlListView_SetItemChecked() regression and more GUIListview.au3 functions. 
Fixed: _WinAPI_CreateEvent() return error on already define $sName. 
Fixed: use "wstr" for "ptr" with Null value. 
Fixed #3791: _ArrayDisplay() sort arrow. 
Fixed #3805: $tagRID_DEVICE_INFO_KEYBOARD definition. 
Fixed #3810: _ArrayUnique not handling "Default" for Parameter $iIntType. 
Fixed: _WinAPI_DragQueryFileEx() $iflag behavior when mix drag (Thanks pixelsearch). 
Fixed #3812: _DateTimeSplit() returning @error. 
Fixed #3814: $PAGE_ connstants for _WinAPI_CreateFileMapping(). 
Fixed #3819: _FileCountLines() can use file handle. 
Fixed #3821: _WinAPI_OemToChar() with string greater than 65536 crash. 
Fixed: _Now(), _NowCalc(), ... date time coherency when call just on hour change. (Thanks argumentum). 
Fixed #3824: _GUICtrlRichEdit_StreamToFile(), _GUICtrlRichEdit_StreamFromFile() default encoding doc.
 

Prog

Продвинутый
Сообщения
607
Репутация
77
Скорее всего там один человек.
Это ни о чем не говорит.
Мне известны ЯП разрабатываемые и поддерживаемые 1 - 2 людьми, и которые по возможностям гораздо превосходят AutoIt.
Достаточно много изменений/добавлений
Ничего существенного, не считая исправления некоторых ошибок.
Где нормальная ИДЕ, где отладчик, где структуры, где типизированные переменные (variant везде - не лучшая идея!), где нормальные встроенные библиотеки работы с графикой, базами данных, архивами и др.?
 

InnI

AutoIT Гуру
Сообщения
4,960
Репутация
1,451
Новых версий нет почти 4 года
Обещают... через недельку

Где нормальная ИДЕ, где отладчик, где структуры, где типизированные переменные (variant везде - не лучшая идея!), где нормальные встроенные библиотеки работы с графикой, базами данных, архивами и др.?
А зачем? AutoIt - это язык для автоматизации. Чтобы тыкать в кнопки весь этот хлам не нужен. А если вы уже "выросли" из AutoIt - переходите на другой язык. Благо выбор есть.
 

AZJIO

Меценат
Меценат
Сообщения
2,901
Репутация
1,200
де нормальная ИДЕ, где отладчик, где структуры, где типизированные переменные (variant везде - не лучшая идея!), где нормальные встроенные библиотеки работы с графикой, базами данных, архивами и др.?
Переменная в исходнике изначально является текстом, а дальше он преобразуется в число или остаётся текстом. Это надо уходить от интерпретации к компиляции. Проще вам выбрать другой язык - PureBasic. Я, кстати, из WinAPI в AutoIt3 смотрю как устроены функции и пишу их на PureBasic. так что тут готовое, а в другом языке будьте готовы писать это сами. Благо есть PureAutoIt, что-то там можно подсмотреть, что-то поиском. Хотел сделать аналог ControlTreeView + Expand и как то устал голову ломать, а на днях подсмотрел Send в PureAutoIt, так там коду на 500 строк, я запарился выкорчёвывать функционал в отдельную функцию (из модуля) в итоге решил упростить до нужной мне операции (70 строк) высылке хоткеев, аж жалко было выкладывать. В AutoIt3 конкатенация строк происходит быстрее, в PureBasic пришлось прийти к пониманию, что стандартный способ приводит к перевыделению памяти и чтобы этого избежать никто в справке не пишет что как это сделать быстро, то есть выделить память по длине строк (особенно в цикле) и спецфункцией копировать в указатель. Со структурами в PureBasic не спорю, работать в разы легче.
 

Prog

Продвинутый
Сообщения
607
Репутация
77
Переменная в исходнике изначально является текстом, а дальше он преобразуется в число или остаётся текстом.
Не обязательно компиляция. Типизированные переменные могут быть в интерпретируемых ЯП как и переменные типа variant в компилируемых (VB к примеру). Важно наличие выбора подходящего типа.

Проще вам выбрать другой язык
Код уже написан на AutoIt и его нужно дорабатывать/переделывать. Нужно работать с тем что есть. Переписывание на другие ЯП в планы не входит. К тому же в коде много работы с COM объектами, с чем AutoIt неплохо справляется.

В AutoIt3 конкатенация строк происходит быстрее, в PureBasic
PB не хранит информацию о длине строки из-за чего ее размер каждый раз высчитывается заново. Сделано как в Си - строка оканчивается нулем.

Насколько большая разница с AtoIt по синтаксису?
Есть разница. Местами существенная. Скачайте справку, посмотрите https://www.upload.ee/files/13208679/Purebasic_v5.72_LTS_RU_Help.7z.html
 

AZJIO

Меценат
Меценат
Сообщения
2,901
Репутация
1,200
Лучше мой вариант справки скачать, того же автора (sergey2400), только в стиле AutoIt3, по ссылке в другой теме, создал тему, чтобы не флудить тут. И давно хотел помочь если кто-то заинтересуется изучением. А если уж давать ссылку на справку от sergey2400, то новую версию 5.73 от 28.01.2022 на cyberforum.ru.
 
Верх