Что нового

Обсуждение AutoIt финальной версии (3.3.8.0/3.3.8.1)

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
InnI
Помогло. Интересно это было по умолчанию?

В реестре:
Код:
[HKEY_CURRENT_USER\Software\AutoIt v3\AU3Info]
"ControlFindMode"=dword:00000000
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
AZJIO [?]
Интересно это было по умолчанию?
Насколько я помню, по умолчанию эта опция включена и проблем нет. Но клавиши её переключения Ctrl+Alt+S глобальные... можно отключить и не заметить.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Обнаружил, что у меня функции _GUICtrlRebar_... не работают на 3.3.8.1, а на других версиях работает. Интересно стоит ли запрашивать исправление или так и будем ожидать неопределённое время до выхода 3.3.9.*?
Сравнил GuiReBar.au3 функциональной разницы нет, кроме удаления части комментариев и дебагинга. Значит заложена ошибка в самом интерпретаторе.
 

asdf8

Скриптер
Сообщения
564
Репутация
152
AZJIO [?]
Обнаружил, что у меня функции _GUICtrlRebar_... не работают на 3.3.8.1

Трудно согласиться, что ошибка в самом интерпретаторе - в GuiReBar.au3 сплошной WinApi и структуры, если бы дело было в интерпретаторе, тогда бы большая часть UDF то-же не работали бы. Более вероятно, что криво прикручена WinAPIEx.au3
 

asdf8

Скриптер
Сообщения
564
Репутация
152
AZJIO [?]
в 3.3.8.1 этого нет. У меня конкретно примеры не работают.

Если в версии, скажем, 3.3.6.1 заменить интерпретатор от версии 3.3.8.0/3.3.8.1, то все работает. Так что, дело все-таки в UDF.
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
asdf8
Ок, значит чуть позже гляну константы и структуры и подключенные UDF, чтобы заставить это работать. Если кто другой раньше меня не глянет.
Я всё равно там уже десяток UDF обновил из 3.3.9.*
 

CreatoR

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

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
CreatoR [?]
Что именно не работает?
Не создаётся Rebar, а все элементы которые вставляются в Rebar в примерах просто все в куче. Я удивлён, неужели я за год использования 3.3.8.1 ни разу не запускал примеры, ведь когда я переводил справку то все работало. И только проверка старых и новых версий показала, что система в порядке.
WinXP SP3
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
Восстановил структуру $tagREBARBANDINFO, заработало. Добавил условие в стиле 3.3.8.1 с учётом новых изменений.

Вот старый из 3.3.6.1
Код:
Global Const $tagREBARBANDINFO = "uint cbSize;uint fMask;uint fStyle;dword clrFore;dword clrBack;ptr lpText;uint cch;" & _
		"int iImage;hwnd hwndChild;uint cxMinChild;uint cyMinChild;uint cx;handle hbmBack;uint wID;uint cyChild;uint cyMaxChild;" & _
		"uint cyIntegral;uint cxIdeal;lparam lParam;uint cxHeader"
If @OSVersion <> "WIN_XP" Then $tagREBARBANDINFO &= ";" & $tagRECT & ";uint uChevronState"
 

asdf8

Скриптер
Сообщения
564
Репутация
152
AZJIO
если запускать скрипт из SciTE или компилировать с помощью AutoIt3Wrapper, то скрипт вываливается с ошибкой - константа может инициализироваться только один раз.
По моему, лучше сделать так :
Код:
Local $val = "uint cbSize;uint fMask;uint fStyle;dword clrFore;dword clrBack;ptr lpText;uint cch;" & _
		"int iImage;hwnd hwndChild;uint cxMinChild;uint cyMinChild;uint cx;handle hbmBack;uint wID;uint cyChild;uint cyMaxChild;" & _
		"uint cyIntegral;uint cxIdeal;lparam lParam;uint cxHeader"
If @OSVersion <> "WIN_XP" Then $val &= ";" & $tagRECT & ";uint uChevronState"
Global Const $tagREBARBANDINFO = $val
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
asdf8 [?]
По моему, лучше сделать так :
Только переменную лучше обозвать иначе, чтобы не было конфликтов:

Код:
$__tagREBARBANDINFO__ = ...
If @OSVersion <> "WIN_XP" Then $__tagREBARBANDINFO__ &= ";" & $tagRECT & ";uint uChevronState"
Global Const $tagREBARBANDINFO = $__tagREBARBANDINFO__
 

AZJIO

Меценат
Меценат
Сообщения
2,874
Репутация
1,194
asdf8 [?]
то скрипт вываливается с ошибкой
Выдаст ошибку и на Win7, а на WinXP оно по условию не переназначает константу. Ок, исправил.

Вот оказывается где конструкция тернарного оператора полезна.
 

Ziggurat

Новичок
Сообщения
2
Репутация
0
Не серчайте, ежели не в тему попал, мне кажется это интересная особенность.
При выполнении этого кода в окне блокнота не появляются символы "![" и слышен характерный звук виндовс, когда пытаешься работать с недоступным окном.

Код:
Example()
Func Example()
    ; Run Notepad
    Run("notepad.exe")
    ; Wait 10 seconds for the Notepad window to appear.
    Local $hWnd = WinWait("[CLASS:Notepad]", "", 10)
    ; Wait for 2 seconds.
    ;Sleep(2000)
    ; Send a string of text to the edit control of Notepad. The handle returned by WinWait is used for the "title" parameter of ControlSend.
    ControlSend($hWnd, "", "Edit1", "![")
    ; Wait for 2 seconds.
    Sleep(2000)
    ; Close the Notepad window using the handle returned by WinWait.
    WinClose($hWnd)
    ; Now a screen will pop up and ask to save the changes, the classname of the window is called
    ; "#32770" and simulating the "TAB" key to move to the second button in which the "ENTER" is simulated to not "save the file"
    WinWaitActive("[CLASS:#32770]")
    Sleep(500)
    Send("{TAB}{ENTER}")
EndFunc   ;==>Example
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Ziggurat,
А Вы отправьте в Блокнот руками то же сочетание. Будет другая реакция?
 

Ziggurat

Новичок
Сообщения
2
Репутация
0
http://autoit-script.ru/index.php?topic=8053.msg117106#msg117106
Оу. Буду внимательнее читать помощь.
Тогда другая особенность - в процессе вывода большого куска текста в блокнот если переключать раскладку клавиатуры, то, соответственно, меняются выводимые символы, как если бы я нажимал на одни и те же клавиши, но с разной раскладкой.
http://autoit-script.ru/index.php?topic=8053.msg117107#msg117107
С зажатым шифтом скобка фигурная. А так конечно же попробовал первым делом.
 
Верх