Что нового

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

CreatoR

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

Dellroc

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

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Dellroc [?]
Теперь в кастомных функциях параметр Default передаётся как строка
Ничего подобного (если я правильно понимаю):

Код:
custom(Default)

Func custom($var)
	MsgBox(64, @ScriptName, VarGetType($var))
EndFunc
 

Prog

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

Andrey_A

Продвинутый
Сообщения
319
Репутация
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

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

InnI

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

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

AZJIO

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

Prog

Продвинутый
Сообщения
537
Репутация
65
Переменная в исходнике изначально является текстом, а дальше он преобразуется в число или остаётся текстом.
Не обязательно компиляция. Типизированные переменные могут быть в интерпретируемых ЯП как и переменные типа 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,874
Репутация
1,194
Лучше мой вариант справки скачать, того же автора (sergey2400), только в стиле AutoIt3, по ссылке в другой теме, создал тему, чтобы не флудить тут. И давно хотел помочь если кто-то заинтересуется изучением. А если уж давать ссылку на справку от sergey2400, то новую версию 5.73 от 28.01.2022 на cyberforum.ru.
 
Верх