1

Тема: AHK v2: Новые возможности AHK v2

Пока такие вопросы:
Что то появилось по защите исходного кода?
Есть ли многопоточность?
Есть ли DLL аналогично AHK_H?
Какие новые возможности добавлены?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

2

Re: AHK v2: Новые возможности AHK v2

1) Нет.
2) Нет.
3) Нет.
4) https://www.autohotkey.com/docs/v2/v2-changes.htm

3

Re: AHK v2: Новые возможности AHK v2

Всё тяжело прочитать. Кто что для себя выделил интересного?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

4

Re: AHK v2: Новые возможности AHK v2

Я думаю тут только teadrinker тебе сможет что-то подсказать.
Лично для себя я там не увидел ничего интересного, чтобы тратить время на изучение нового синтаксиса.

5

Re: AHK v2: Новые возможности AHK v2

Весь интерес как раз и заключается в новом синтаксисе. В v2 используется объектно-ориентированный подход и соответствующий удобный синтаксис. Любые методы встроенных классов могут быть переопределены, в любой объект могут быть добавлены новые свойства, например в объект окна можно записать какую-либо сопутствующую информацию, воспользовавшись простым синтаксисом через точку.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: AHK v2: Новые возможности AHK v2

teadrinker пишет:

В v2 используется объектно-ориентированный подход

http://forum.script-coding.com/viewtopic.php?id=17648
Тогда подскажи как это унифицировать? Функции там объекты? Я их могу пройти циклом в начале?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7

Re: AHK v2: Новые возможности AHK v2

Я имею ввиду как в JS.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

8

Re: AHK v2: Новые возможности AHK v2

Функции объекты. Но вопрос не совсем понял.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

9

Re: AHK v2: Новые возможности AHK v2

teadrinker пишет:

Функции объекты

Как выглядит цикл перебора функций в скрипте анк?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

10

Re: AHK v2: Новые возможности AHK v2

Можно так:

#Requires AutoHotkey v2

for fn in [SubStr, MsgBox, FileAppend] {
    MsgBox 'Type: ' . Type(fn) . '`nName: ' . fn.Name . '`nIsBuiltIn: ' . fn.IsBuiltIn
}

FileAppend(params*) {
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

11 (изменено: Malcev, 2023-03-22 16:05:19)

Re: AHK v2: Новые возможности AHK v2

teadrinker пишет:

Весь интерес как раз и заключается в новом синтаксисе. В v2 используется объектно-ориентированный подход и соответствующий удобный синтаксис.

Только зачем он нужен в автохотки, который изначально создавался для автоматизации и горячих клавиш для непрограммистов?
Всё-равно по популярности и количеству библиотек пайтона ему не переплюнуть, а порог вхождения при таком же функционале, что и в первой версии, теперь гораздо сложней.

12

Re: AHK v2: Новые возможности AHK v2

Любой язык должен развиваться, что не развивается — то умирает. При этом развитии у разработчика возникло желание исправить несуразности с синтаксисом, видимо одно потянуло за собой другое, и он пришёл к необходимости внедрить парадигму ООП, так как большинство современных ЯП её используют.
Насколько сложнее порог вхождения, нам наверно уже судить трудно. Но новичку ведь не обязательно сразу вникать в сложные концепции, он всё ещё может написать простой код, просто посмотрев пример из справки.
Я вот сейчас изучаю Java, вот там действительно есть порог вхождения.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

13

Re: AHK v2: Новые возможности AHK v2

Развиваться можно разными путями.
Например переносить новое винапи.
Но в данном случае определенно стало сложнее.
Например возьми пример из справки по ImageSearch.
На ahk v1:

CoordMode Pixel  ; Interprets the coordinates below as relative to the screen rather than the active window.
ImageSearch, FoundX, FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, *Icon3 %A_ProgramFiles%\SomeApp\SomeApp.exe
if (ErrorLevel = 2)
    MsgBox Could not conduct the search.
else if (ErrorLevel = 1)
    MsgBox Icon could not be found on the screen.
else
    MsgBox The icon was found at %FoundX%x%FoundY%.

И на ahk v2:

CoordMode "Pixel"  ; Interprets the coordinates below as relative to the screen rather than the active window.
try
{
    if ImageSearch(&FoundX, &FoundY, 0, 0, A_ScreenWidth, A_ScreenHeight, "*Icon3 " A_ProgramFiles "\SomeApp\SomeApp.exe")
        MsgBox "The icon was found at " FoundX "x" FoundY
    else
        MsgBox "Icon could not be found on the screen."
}
catch as exc
    MsgBox "Could not conduct the search due to the following error:`n" exc.Message

В первом случае достаточно почитать, что такое errorlevel, а во-втором - функции, объекты, try catch.
Кстати, этого всего пытался избежать автор автохотки Chris:
https://www.autohotkey.com/board/topic/ … e-changes/

14

Re: AHK v2: Новые возможности AHK v2

Я здесь вижу такие ключевые моменты:

  • Язык изначально создавался как простой инструмент для непрограммистов

  • Язык приобрёл некоторую популярность, появилось сообщество

  • Появились опытные пользователи, они захотели более продвинутых возможностей

  • Соответственно, язык стал усложняться, на первое место стали выходить потребности постоянных пользователей, а не новичков

Се ля ви, не новички же поддерживают разработку.

В примере, который ты привёл, можно обойтись и без обработки исключений, исключение выбрасывается только в случае некорректного параметра, например, файл не существует. В самих сообщениях исключений больше подробностей, чем в первой версии. Но документацию, конечно, надо дорабатывать.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

15

Re: AHK v2: Новые возможности AHK v2

teadrinker пишет:

Можно так:

#Requires AutoHotkey v2

for fn in [SubStr, MsgBox, FileAppend] {
    MsgBox 'Type: ' . Type(fn) . '`nName: ' . fn.Name . '`nIsBuiltIn: ' . fn.IsBuiltIn
}

FileAppend(params*) {
}

Тут нет пресловутого глобального this, и перечисление имён как то не комильфо, и 2я версия в этом вопросе ничего не даёт.

А касательно диалога, мне низкий порог входа когда дал саму эту возможность входа. Зачем теперь АНК, если есть питон?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

16

Re: AHK v2: Новые возможности AHK v2

Честно, не уловил смысла, вообще никакого. Можешь как-то перефразировать?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

17

Re: AHK v2: Новые возможности AHK v2

serzh82saratov пишет:

глобального this

В JS такое есть, а в V2 не наблюдается. В JS в цикле ты можешь перечислить все объекты запускаемого сценария.

По второму Malcev ответил.

Malcev пишет:

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

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

18

Re: AHK v2: Новые возможности AHK v2

serzh82saratov пишет:

В JS такое есть, а в V2 не наблюдается.

Всё равно не понял. Разве где-то написано, что v2 должен повторить все до одной фичи JS?
По поводу питона — ну, там, скорее всего, кроме основного синтаксиса придётся изучать ещё кучу библиотек на каждый случай, а в AHK многое можно сделать "из коробки", например GUI.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

19

Re: AHK v2: Новые возможности AHK v2

Я увидел только упрощение общения с WINAPI, по подобию библиотеки которая давно есть. Хорошо, ты что для себя в новой версии увидел интересного?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

20

Re: AHK v2: Новые возможности AHK v2

teadrinker пишет:

Всё равно не понял. Разве где-то написано, что v2 должен повторить все до одной фичи JS?

Это не принцип ООП? Могу ошибаться, JS как пример привёл, но разве не везде так?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

21

Re: AHK v2: Новые возможности AHK v2

serzh82saratov пишет:

разве не везде так?

Если имеешь в виду иерархию объектов, то в большинстве случаев наверно так. Но тут имеется в виду не иерархия всех объектов вообще, а иерархия классов, то есть типов объектов. В AHK v2 тоже есть корневой класс Any. Но используя эту иерархию, нельзя перечислить все экземпляры какого-либо класса, так как класс-родитель ничего не знает о созданных в коде его экземплярах. Конкретная функция — это как раз экземпляр родительского класса Func.

serzh82saratov пишет:

что для себя в новой версии увидел интересного?

Сам по себе принцип ООП интересен, с его помощью можно создавать более понятный код, который проще менять.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

22

Re: AHK v2: Новые возможности AHK v2

teadrinker пишет:

Сам по себе принцип ООП интересен

А что нового, кроме того что команды в функции переделали?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

23

Re: AHK v2: Новые возможности AHK v2

https://www.autohotkey.com/docs/v2/v2-changes.htm

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

24

Re: AHK v2: Новые возможности AHK v2

Я это видел.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

25

Re: AHK v2: Новые возможности AHK v2

Других нет.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

26

Re: AHK v2: Новые возможности AHK v2

Мне понравилось создание GUI в v2, особенно обработчик нажатий допустим. Еще вроде можно стрелочные функции делать, а с ними удобнее работать, когда нужно callback передать.
Но лично не ковырял v2.

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)