1

Тема: OFF: Обновления AutoHotkey

У меня просьба к англо-языко-сведущим коллегам. Может ли кто то завести тему в ветке АНК, и пояснять changelog новых версий?
Можно начать например с перевода изменений трёх последних версий, и по надобности прокомментировать. Из машинных переводов, понять что либо сложно, да и будет оперативно для остальных узнавать о факте и смысле обновления. Также можно будет обсудить нововведения. Надеюсь на инициативу наших уважаемых модераторов.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

2

Re: OFF: Обновления AutoHotkey

Прочитал изменения двух последних версий и мало что понял. Тут надо быть в курсе происходящего на данный момент с АНК. Пользоваться теми фичами, баги в которых фиксятся. Иначе толком не понятно, о чём речь.

3

Re: OFF: Обновления AutoHotkey

Фиксы комментировать, имхо, нет особого смысла. Просто исправляется то, что работает не так, как заявлено в мануале. Другое дело нововведения. Но в трёх последних версиях их как раз не было.

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

4

Re: OFF: Обновления AutoHotkey

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

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

5

Re: OFF: Обновления AutoHotkey

1.1.15.00 - May 4, 2014

Changed the Hotkey command to apply/remove passthrough behavior on existing hotkey variants depending on whether the tilde (~) prefix is present.

Кто нибудь подскажет, что это значит?

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

6

Re: OFF: Обновления AutoHotkey

[v1.1.15+]: If the hotkey variant already exists, its behavior is updated according to whether KeyName includes or excludes the tilde (~) prefix.

Видимо, при переназначении хоткея принимается во внимание наличие или отсутствие в его имени тильды и соответственно меняется его поведение.

7

Re: OFF: Обновления AutoHotkey

1.1.15.02 - July 7, 2014

Fixed debugging negative integer keys in objects.

1.1.15.01 - June 30, 2014

Changed built-in error and warning dialogs to be always-on-top.

Fixed Until not breaking out of recursive file/registry loops.

Кто нибудь сможет прокомментировать.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

8

Re: OFF: Обновления AutoHotkey

Дебаггингом не пользуюсь, поэтому первое понял лишь приблизительно: исправлено отображение количества ключей в объектах в виде отрицательных чисел при дебаггинге.

Изменено: окна встроенного диалога ошибок теперь always-on-top.
Исправлено: команда Until не прерывала циклы рекурсивного просмотра файлов и ключей регистра.

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

9

Re: OFF: Обновления AutoHotkey

1.1.15.04 - August 12, 2014

Fixed a performance issue with &var_containing_long_string_of_digits.

Fixed built-in variables corrupting memory when an object is assigned.

Fixed parser to disallow continue where appropriate even if the current function is defined inside a Loop.

Fixed File.Encoding := x "-RAW" breaking encoding/decoding of non-ASCII characters. The -RAW suffix is now ignored.

Ничего не понял, но кажется что то насущное.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

10

Re: OFF: Обновления AutoHotkey

1.1.16.04 - September 16, 2014

Fixed a crash which occurred when overwriting a non-writable property.

Fixed a crash which occurred when a RegExMatch object is created with uncaptured subpatterns during a regex callout.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

11

Re: OFF: Обновления AutoHotkey

В последнем обновлении (от 5 января 2015 г.) я увидел документацию, оформленную в кислотно-зелёных тонах. Режет глаза. Кто-нибудь знает, можно chm-файл пересобрать с изменением стилей?

12

Re: OFF: Обновления AutoHotkey

Вроде так же выглядит. С какой версией вы сравниваете?

13

Re: OFF: Обновления AutoHotkey

Я могу исправить и пересобрать. Только напишите в каких файлах (html или css) по маске что искать и какую замену произвести. Если знаете Яваскрипт, то можете на нем написать регулярное выражение или на словах поясните.

14

Re: OFF: Обновления AutoHotkey

Вот для сравнения было / стало.

Правда здесь таблицы ещё переделали, так что шрифты всего не исправят.

15

Re: OFF: Обновления AutoHotkey

Вроде уже давненько так.

16

Re: OFF: Обновления AutoHotkey

Да, давненько я не обновлялся. Может зря я это затеял? Будет новый файл - не переделывать же его снова.

17

Re: OFF: Обновления AutoHotkey

ypppu пишет:

... Правда здесь таблицы ещё переделали, так что шрифты всего не исправят.

После декомпиляции с помощью htm2chm (использовалась v3.0.9.3) файл ...\docs\commands\SoundBeep.htm c вышеупомянутой страницей выглядит в разных версиях следующим образом:

Фрагмент v1.1.19.01:

<h3>Parameters</h3>
<dl>

  <dt>Frequency</dt>
  <dd><p>The frequency of the sound, which can be an <a href="../Variables.htm#Expressions">expression</a>. It should be a number between 37 and 32767. If omitted, the frequency will be 523.</p></dd>

  <dt>Duration</dt>
  <dd><p>The duration of the sound, in milliseconds (can be an <a href="../Variables.htm#Expressions">expression</a>). If omitted, the duration will be 150.</p></dd>

</dl>

Фрагмент v1.1.13.01:

<h3>Parameters</h3>
<table class="info">
  <tr> 
    <td>Frequency</td>
    <td>The frequency of the sound, which can be an <a href="../Variables.htm#Expressions">expression</a>. It should be a number between 37 and 32767. If omitted, the frequency will be 523. </td>
  </tr>
  <tr> 
    <td width="15%">Duration</td>
    <td width="85%">The duration of the sound, in milliseconds (can be an <a href="../Variables.htm#Expressions">expression</a>). If omitted, the duration will be 150.</td>
  </tr>
</table>

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

1. Декомпилировать AutoHotkey.chm htm2chm.
2. Скриптом или еще как-либо автоматизированно заменить в каждом декомпилированном файле .htm теги:

  • <dl> на <table class="info">,

  • <dt> на <tr><td width="15%">,

  • <dd><p> или <dd> на <td width="85%">,

  • расставив закрывающие теги соответственно.

3. Добавить таблицу стилей ...\docs\static\theme.css стиль таблицы из ...\docs\css\default.css предыдущей версии:

/* table of command parameters */
table.info {
    border: solid 2px #C0C0C0;
    border-collapse: collapse;
    width: 100%;
    /*table-layout: fixed;*/
}

4. Изменить неугодный кислотно-зелёный цвет заголовка <h3> в таблице стилей ...\docs\static\theme.css

h3 {
    color:  #008800;
}

5. Заново скомпилировать, указав home page ...\docs\AutoHotkey.htm (правда размер моего скомпилированного .chm уменьшился в 2 раза, хотя на первый взгляд содержимое вроде всё на месте, и почему-то пропала вкладка "поиск").

ypppu пишет:

... Может зря я это затеял? Будет новый файл - не переделывать же его снова.

Собственно, автоматизировав эти действия один раз, можно все последующие версии справки достаточно быстро привести к желаемому виду (судя по последним версиям, изменения не так уж часты). На мой взгляд, сделать это проще на том же VBS, используя цикл с перебором всех .htm, и split() для парсинга.

Щт Уккщк Куыгьу Туче

18

Re: OFF: Обновления AutoHotkey

Попробовал с помощью MS HTML Help Workshop. Только заменил все заголовки на чёрные. Поиск есть, но нету меню окна. В настройках пошарил, но не нашёл, можно ли его как-то сделать. Ещё нету кнопки, меняющей размер шрифта, тоже непонятно, откуда она берётся.

Глянуть результат можно тут: https://yadi.sk/d/nFIX4sTHdt6G6.

19

Re: OFF: Обновления AutoHotkey

Изменил цвет заголовков и вернул таблицы методом, описанным выше, файл выложил тут: https://yadi.sk/d/tmVLnk1SdtQYe.
Шаг 3 оказался не нужен, а 2 и 4 выполнены скриптом VBS (для запуска - перетащить на скрипт папку с декомпилированным файлом .chm), может пригодится для следующих версий:

Dim aFiles()

If WScript.Arguments.Count = 0 then
    MsgBox "Drag'n'Drop folder(s) or file(s) onto script to process"
    WScript.Quit
End If

Set oFSO = CreateObject("Scripting.FileSystemObject")
Redim aFiles(-1)
For Each sSrc In WScript.Arguments
    AddFiles sSrc
Next
If UBound(aFiles) = -1 Then
    MsgBox "No files selected"
    WScript.Quit
End If

lSaved = 0
For Each sSrc In aFiles
    If LCase(oFSO.GetExtensionName(sSrc)) = "htm" Then
        If LCase(oFSO.GetBaseName(sSrc)) <> "license" and instr(ssrc, "-mod.htm") = 0 Then
            sCont = ReadFromFile(sSrc)
            If sCont <> "" then
                bChanged = False
                sRes = ""
                lEnd = 1
                Do
                    If lEnd > Len(sCont) Then Exit Do
                    sCont = Mid(sCont, lEnd)
                    If GetFragment(sCont, "<dl>", "</dl>", sTmp0, lBeg, lEnd) Then
                        bChanged = True
                        sRes = sRes & Left(sCont, lBeg - 1)
                        sRes = sRes & "<table class=""info"">" & vbCrLf
                        lLast = 1
                        Do
                            If lLast > Len(sTmp0) Then Exit Do
                            sTmp0 = Mid(sTmp0, lLast)
                            If Not GetFragment(sTmp0, "<dt>", "</dt>", sTmp1, 0, 0) Then Exit Do
                            If Not GetFragment(sTmp0, "<dd>", "</dd>", sTmp2, 0, lLast) Then Exit Do
                            sRes = sRes & "  <tr>" & vbCrLf
                            sRes = sRes & "    <td width=""15%"">" & sTmp1 & "</td>" & vbCrLf
                            sRes = sRes & "    <td width=""85%"">" & sTmp2 & "</td>" & vbCrLf
                            sRes = sRes & "  </tr>" & vbCrLf
                        Loop
                        sRes = sRes & vbCrLf & "</table>"
                    Else
                        sRes = sRes & sCont
                        Exit Do
                    End If
                Loop
                If bChanged Then
                    WriteToFile sRes, sSrc, lSaved
                End If
            End If
        End If
    ElseIf LCase(oFSO.GetFileName(sSrc)) = "theme.css" Then
        sCont = ReadFromFile(sSrc)
        If sCont <> "" then
            If GetFragment(sCont, vbCrLf & "h3 {", "}", "", lBeg, lEnd) Then
                sCont = Left(sCont, lBeg - 1) & Mid(sCont, lEnd)
            End If
            sCont = sCont & vbCrLf & "h3 {" & vbCrLf & "    color:  #000000;" & vbCrLf & "}" & vbCrLf
            WriteToFile sCont, sSrc, lSaved
        End If
    End If
Next

MsgBox lSaved & " Files saved"

Function ReadFromFile(sPath)
    REM OpenTextFile(<Filename>,<Iomode>,<Create>,<Format>)
    With oFSO.OpenTextFile(sSrc, 1, False, 0)
        ReadFromFile = ""
        If Not .AtEndOfStream Then ReadFromFile = .ReadAll
        .Close
    End With
End Function

Sub WriteToFile(sCont, sPath, lCount)
    With oFSO.OpenTextFile(sPath, 2, True, 0)
        .Write(sCont)
        .Close
    End With
    lCount = lCount + 1
End Sub

Function GetFragment(sText, sBeg, sEnd, sRes, lBeg, lEnd)
    REM InStr([start,] str1, str2[, compare])
    REM Mid(str, start[, len]))
    Dim lBegExcl, lEndExcl
    lBeg = InStr(1, sText, sBeg)
    If lBeg > 0 Then
        lBegExcl = lBeg + Len(sBeg)
        lEndExcl = InStr(lBegExcl, sText, sEnd)
        lEnd = lEndExcl + Len(sEnd)
        If lEndExcl > 0 Then
            sRes = Mid(sText, lBegExcl, lEndExcl - lBegExcl)
            GetFragment = True
            Exit Function
        End If
    End If
    sRes = ""
    GetFragment = False
End Function

Sub AddFiles(sPath)
    Dim oItem
    If oFSO.FileExists(sPath) Then
        AddFile sPath
        Exit Sub
    End If
    If oFSO.FolderExists(sPath) Then
        For Each oItem In oFSO.GetFolder(sPath).Files
            AddFile oItem.Path
        Next
        For Each oItem In oFSO.GetFolder(sPath).SubFolders
            AddFiles oItem.Path
        Next
        
    End If
End Sub

Sub AddFile(sPath)
    Redim Preserve aFiles(UBound(aFiles) + 1)
    aFiles(UBound(aFiles)) = sPath
End Sub
Щт Уккщк Куыгьу Туче

20

Re: OFF: Обновления AutoHotkey

Готово!
Для разборки/сборки использовал MS HTML Help Workshop. Спасибо за помощь и участие omegastripes, YMP, JSman!
За основу взял вариант omegastripes.

  • Стили заголовков <h1>, <h2>, <h3>, <h4> изменены на прежний

  • Фон кода теперь не столь кислый

  • Описание команд в виде таблиц

  • Рамки таблиц потолще

  • Добавил графу поиска

Post's attachments

AutoHotkey Help v1.1.19.01.rar 1.26 mb, 8 downloads since 2015-01-11 

You don't have the permssions to download the attachments of this post.

21

Re: OFF: Обновления AutoHotkey

Ну сколько раз твердили миру (с) не выкладывать файлы на форум. Опять косяки какие-то.

22

Re: OFF: Обновления AutoHotkey

YMP, у меня аналогично . Подтверждаю.

23 (изменено: ypppu, 2015-01-11 19:39:14)

Re: OFF: Обновления AutoHotkey

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

Добавлено: Как выясняется, проблема не связана со статусом пользователя. У меня файл прекрасно скачивается и открывается. Значит, у меня какая-то волшебная версия архиватора, не совместимая с большинством из них.

24

Re: OFF: Обновления AutoHotkey

Облако маил.ру.

По вопросам возмездной помощи пишите письма
E-Mail: serzh82saratov@mail.ru
OS: Win7x64, AutoHotkey_L v1.1.29.01 (Unicode 32-bit).

25

Re: OFF: Обновления AutoHotkey

serzh82saratov, как минимум, требует регистрации.