Что нового

Развитие русской справки

Naisho

Знающий
Сообщения
86
Репутация
12
Переставил ресурсы.ау3 в первую строку, получил:
C:\Program Files (x86)\AutoIt3\Include\resources.au3(140,55) : WARNING: $hImage possibly not declared/created yet
$hImage = _GDIPlus_BitmapCreateFromHBITMAP($ResData)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\resources.au3(161,57) : WARNING: $hImage possibly not declared/created yet
$hImage = _ResourceGetAsImage($ResName, $ResType, $DLL)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\resources.au3(163,60) : WARNING: $hBitmap possibly not declared/created yet
$hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\resources.au3(174,52) : WARNING: $hImage possibly not declared/created yet
$hImage = _ResourceGetAsImage($ResName, $ResType)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\resources.au3(289,18) : WARNING: $hInstance possibly not declared/created yet
$hInstance = 0
~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\_DateDiff_2.au3(56,34) : WARNING: $d possibly not declared/created yet
$d = __DateDiff_2($Old, $New)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1963,33) : ERROR: $RT_ACCELERATOR previously declared as a 'Const'.
Global Const $RT_ACCELERATOR = 9
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1964,32) : ERROR: $RT_ANICURSOR previously declared as a 'Const'.
Global Const $RT_ANICURSOR = 21
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1965,30) : ERROR: $RT_ANIICON previously declared as a 'Const'.
Global Const $RT_ANIICON = 22
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1966,28) : ERROR: $RT_BITMAP previously declared as a 'Const'.
Global Const $RT_BITMAP = 2
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1967,28) : ERROR: $RT_CURSOR previously declared as a 'Const'.
Global Const $RT_CURSOR = 1
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1968,28) : ERROR: $RT_DIALOG previously declared as a 'Const'.
Global Const $RT_DIALOG = 5
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1969,33) : ERROR: $RT_DLGINCLUDE previously declared as a 'Const'.
Global Const $RT_DLGINCLUDE = 17
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1970,26) : ERROR: $RT_FONT previously declared as a 'Const'.
Global Const $RT_FONT = 8
~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1971,29) : ERROR: $RT_FONTDIR previously declared as a 'Const'.
Global Const $RT_FONTDIR = 7
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1972,35) : ERROR: $RT_GROUP_CURSOR previously declared as a 'Const'.
Global Const $RT_GROUP_CURSOR = 12
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1973,33) : ERROR: $RT_GROUP_ICON previously declared as a 'Const'.
Global Const $RT_GROUP_ICON = 14
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1974,27) : ERROR: $RT_HTML previously declared as a 'Const'.
Global Const $RT_HTML = 23
~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1975,26) : ERROR: $RT_ICON previously declared as a 'Const'.
Global Const $RT_ICON = 3
~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1976,31) : ERROR: $RT_MANIFEST previously declared as a 'Const'.
Global Const $RT_MANIFEST = 24
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1977,26) : ERROR: $RT_MENU previously declared as a 'Const'.
Global Const $RT_MENU = 4
~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1978,35) : ERROR: $RT_MESSAGETABLE previously declared as a 'Const'.
Global Const $RT_MESSAGETABLE = 11
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1979,31) : ERROR: $RT_PLUGPLAY previously declared as a 'Const'.
Global Const $RT_PLUGPLAY = 19
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1980,29) : ERROR: $RT_RCDATA previously declared as a 'Const'.
Global Const $RT_RCDATA = 10
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1981,28) : ERROR: $RT_STRING previously declared as a 'Const'.
Global Const $RT_STRING = 6
~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1982,30) : ERROR: $RT_VERSION previously declared as a 'Const'.
Global Const $RT_VERSION = 16
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(1983,26) : ERROR: $RT_V:rofl: previously declared as a 'Const'.
Global Const $RT_V:rofl: = 20
~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(3473,37) : ERROR: $SND_ASYNC previously declared as a 'Const'.
Global Const $SND_ASYNC = 0x00000001
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(3475,36) : ERROR: $SND_LOOP previously declared as a 'Const'.
Global Const $SND_LOOP = 0x00000008
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(3476,38) : ERROR: $SND_MEMORY previously declared as a 'Const'.
Global Const $SND_MEMORY = 0x00000004
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(3478,38) : ERROR: $SND_NOSTOP previously declared as a 'Const'.
Global Const $SND_NOSTOP = 0x00000010
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(3479,38) : ERROR: $SND_NOWAIT previously declared as a 'Const'.
Global Const $SND_NOWAIT = 0x00002000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(3480,37) : ERROR: $SND_PURGE previously declared as a 'Const'.
Global Const $SND_PURGE = 0x00000040
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(3481,40) : ERROR: $SND_RESOURCE previously declared as a 'Const'.
Global Const $SND_RESOURCE = 0x00040004
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
C:\Program Files (x86)\AutoIt3\Include\APIConstants.au3(3483,36) : ERROR: $SND_SYNC previously declared as a 'Const'.
Global Const $SND_SYNC = 0x00000000

я собственно к чему - у меня уже есть эта библиотека, в ней я исправил сей баг, а инсталлятор справки записал свою, не правленую версию, а мою отправил в "*.bak" - хотелось бы чтобы инсталятор не делал этого, если скрипт в библиотеке уже есть...(авторская версия 2011года, а сам Zedna запропал)
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Naisho
APIConstants.au3 отсутствует в 3.3.8.1, так что все конфликты между авторами UDF путь разрешают сами. Справка здесь ни причём.
_DateDiff_2 обновил по ссылке в примере.
К примеру ModernMenuRaw тоже конфликтует если её поставить первой в списке, а если последней, то нет. Автор таким образом сделал её универсальной под любые версии AutoIt3, в которых могут позже появится константы объявляемые в ModernMenuRaw.
 

WSWR

AutoIT Гуру
Сообщения
941
Репутация
363
AZJIO

А нет _DateDiff с миллисекундами?
 

Naisho

Знающий
Сообщения
86
Репутация
12
AZJIO
Так APIConstants.au3 родом из WinAPIEx_3.8_3380 которая уже практически двумя ногами в официальной песочнице, к тому же весьма полезна. (а в справке до сих пор отсутствует :smile:) но впрочем хозяин-барин...
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
WSWR [?]
А нет _DateDiff с миллисекундами?
При желании можно из _DateDiff_2 сделать учёт и миллисекунд. Только почти все стандартные функции возвращают время не точнее секунд. Так что это отдельную функцию делать под конкретную задачу.

Naisho
В бета версии есть, но у нас ещё не бета.
Naisho [?]
а в справке до сих пор отсутствует
1. Зачем я буду в нагрузку заставлять пользователей загружать один и тот же архив?
2. Если вы хотите чтобы я переводил, то не лучше ли обратится к автору?
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Обновлён полный комплект справки

Список переведённых 14 функций раздела _WinAPI_...
_WinAPI_AttachConsole
_WinAPI_AttachThreadInput
_WinAPI_CreateFontIndirect
_WinAPI_FlashWindow
_WinAPI_FlashWindowEx
_WinAPI_GetForegroundWindow
_WinAPI_GetTextExtentPoint32
_WinAPI_GUIDFromString
_WinAPI_GUIDFromStringEx
_WinAPI_LocalFree
_WinAPI_SetCapture
_WinAPI_SetCursor
_WinAPI_SetDefaultPrinter
_WinAPI_StringFromGUID
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Код на жёлтом фоне сделал подсвеченным, проверяйте.
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
IniWrite
При записи значения, "обрамлённого" кавычками, они удаляются. Чтобы записать кавычки в значение, необходимо дублировать их. Например, чтобы записать "Это тест" в качестве значения параметра, необходимо использовать ""Это тест"".
Запутанно как то. Во первых нельзя записать в переменную текст не обрамив его кавычками, соответственно эти кавычки не являются обрамлением записываемого текста, а являются обрамлением синтаксическим для текста. Соответственно при записи текста с кавычками добавив синтаксические кавычки текст получится уже с двойными кавычками. По умолчанию мы и так знаем что реальный текст переменной это текст между кавычками, а значит текст обрамлённый кавычками подразумеваемый внутри синтаксических кавычек запишется в ini-файл с кавычками. При чём объявлять это нет смысла, потому что нормально логически мыслящий человек и так понимает что требуется повторить кавычки если требуется их записать. И нужно продублировать внутренние кавычки, то есть реально получится по три кавычки с краёв, с двумя даже скрипт вылетит с ошибкой синтаксиса. Если предположить что описание для внутреннего текста, не подразумевая синтаксических кавычек, то тогда первая фраза неверна, потому что по ней текст будет с двумя кавычками и будет просто неверный скрипт, а если предположить что обрамление будет апострофами, то кавычки не удалятся. В общем текст этот не увязывается со смыслом в любой интерпретации. Следующая строка аналогично.

Сделал так:
Если файл не существует, то он будет создан. Однако, если путь к каталогу, в котором создаётся ini-файл не существует, то каталоги не создаются и ini-файл не будет создан. Параметры и разделы добавляются в конце (без какой-либо сортировки).
Чтобы записать данные, которые должны быть прочитаны с обрамляющими кавычками, они должны быть записаны в ini-файл с двойными кавычками, например key=""value"", тогда после чтения параметра одна пара крайних кавычек будет удалена.
При чтении значения, его начальные и конечные пробелы удаляются. Чтобы записать значение с пробелами по краям, необходимо записать значение в ini-файл в таком виде: key=" этот текст с пробелами по краям ", тогда текст прочитается с пробелами, а кавычки будут удалены.
Многострочные значения не поддерживаются.

с темой Black последние обновления
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Обновил CustomUDFs.chm, добавлен 7-Zip UDF oт rasim
Добавлен раздел "Регулярные выражения 2"
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Обновил CustomUDFs.chm, добавлен UDF _Zip от wraithdu
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Как думаете, стоит ли в разделе GUI все примеры привести к адекватному циклу?
Код:
While 1
	Switch GUIGetMsg()
		Case -3
			Exit
	EndSwitch
WEnd

; или

While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case -3
			Exit
	EndSwitch
WEnd


На оф.сайте мне сказали, что это показывает разновидности обработки цикла. Но мне кажется кроме запутанности это особо ничего не показывает. Новичок изначально выбирает наиболее понятное для него и долго использует не лучший вариант. Так не лучше ли сразу писать правильно, показать правильный пример, а разновидности использовать там, где они действительно необходимы.
Код:
While $msg <> $GUI_EVENT_CLOSE
	$msg = GUIGetMsg()
WEnd

Do
	$msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSE

Do
	$msg = GUIGetMsg()
	If $msg = $GUI_EVENT_CLOSE Then ExitLoop
Until 0


Do
    $msg = GUIGetMsg()
    Select
        Case $msg = $SelectAll
        ; код...
    EndSelect
Until $msg = $GUI_EVENT_CLOSE


Если выбирать между While-WEnd и Do-Until, то последний боле правильный, хотя при тысячи событий в секунду особенность Do-Until теряет смысл, тем более, что в подвыражение цикла используется константа.
Выбор между Switch и Select однозначно в сторону Switch, потому что в 99% проверяется событие, а не постороннее условие.

Конструкция
Код:
If $msg = $GUI_EVENT_CLOSE Then ExitLoop
однозначно исключается, так как в 99% случаев используется хотя бы один элемент, кроме кнопки закрытия, который надо обрабатывать, а это уже конструкция со Switch.

Выбор между
Код:
Switch GUIGetMsg()
;и
	$msg = GUIGetMsg()
	Switch $msg

можно чередовать.
 

inververs

AutoIT Гуру
Сообщения
2,135
Репутация
465
Я бы оставлял разные варианты, хотя бы для того, что встретив на форуме другой вариант опроса GUI, не терялся в догадках, что это.., т.к видел такие варианты в справке.
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
inververs
Я по той же причине посчитал что потери не будет, всё равно рано или поздно любой наткнётся на что-то иное. Просто я около 2-3 лет использовал Select и даже находил в этом плюс. Потом все скрипты переписывал на Switch. так же и в остальной части конструкции. Например если $msg не нужен то и нет смысла нянчиться с ней.
А вот остаточный комплект ошибок тянется хвостом. Например имена переменных. Всё что использовал ведь брал в чистом виде из справки, со всеми ошибками.
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Обновил CustomUDFs.chm
Добавил функции _HotKeyString_To_AutoitCode и _StartUp.
Кнопка "Копировать" изменена.

_Zip.au3 была обновлена автором. Кстати ошибку 4 я до сих пор не понял и изменил описание. Удаление не работает по причине локализации, вместо "Delete" должно быть "Удалить" для Ru.
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Обновил CustomUDFs.chm
Добавлены функции _GetChildCoor, _WinAPI_LoadKeyboardLayoutEx, _SetCoor (возможно две из них требуют переименования)
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
Всвязи с исправлением ошибки в IniVirtualSPE снова добавил её в комплект CustomUDFs.chm
В _SetCoor сделал параметр $iMargin последним. В _HotKeyString_To_AutoitCode проверил с Au3Check и исправил не объявленную переменную.

Обновлён полный комплект справки

Из последнего: переведён раздел _GUICtrlMonthCal_...
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
MnM

Зачем вы мне мой же файл от 26.11.2012 даёте? Он раньше был в комплекте под кодовым названием "UDFs3_google.chm". Это был вариант автоматического перевода с помощью сервиса Google, я автоматизировал управление QTranslate, которая в течении часа (точно не помню) перевела все файлы, потом методом некоторой обработки (поиск-замена) были исправлены изъяны, потом по мере перевода я в этот вариант справки копировал полностью переведённые страницы. В итоге это иногда облегчало читать не переведённые разделы.

В качестве доказательства посмотри описание к функции _GUICtrlAVI_Close - "Закрывает клипа AVI".

Было предложение убрать этот файл, дабы вместо 12 Мб не качать лишние ~3Мб, да я и сам им редко пользовался, потому что не переведёнными остались непопулярные разделы. И к тому же переход на новую версию справки требует синхронизации, и нянчится с ним уже стало проблемой.
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Понятно, я просто думал было бы лучше если бы даже не популярные разделы были переведены
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
Опечатка на странице http://autoit-script.ru/autoit3_docs/intro/ComRef.htm
Главная строка в этом скрипте: $EventObject=ObjEvent($oIE,"IEEvent_",...).
Эта функция получает объект $oIE и перенаправляет его события к AutoIt функциям, имена которых начинаются с MYEvent_.
Вместо MYEvent_ должно быть IEEvent_ .
 
Автор
A

AZJIO

Меценат
Меценат
Сообщения
2,894
Репутация
1,196
C2H5OH
В оригинале MYEvent_


Добавлено:
Сообщение автоматически объединено:

Обновил компилятор справки (контент, скрипты, новая версия 3.3.8.1)
 
Верх