1 (изменено: Indomito, 2016-10-28 12:54:25)

Тема: AHK: Не срабатывает AHK UpDater

Приветствую.

Я пользуюсь скриптом Update.ahk и пользуюсь весьма давно. Нашёл его где - то на форуме.

Вот первые его строчки.

/*
[AutoHotkey Updater]
version = 0.013
*/

SelfUpdate = 1 ; Set to 0 to prevent the script from checking for updates to itself.

URL_Base    = https://autohotkey.com/download
URL_Script  = %URL_Base%/Update.ahk
URL_Setup   = %URL_Base%/ahk-install.exe
URL_Version = %UpdateURL%/1.1/version.txt


#NoEnv
#Include *i %A_ScriptDir%\UpdateDebug.ahk

В чём проблема то?

P.S. Проблем с интернетом нет.

Post's attachments

3.png 19.11 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.
"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AHK 1.1.25.05

2

Re: AHK: Не срабатывает AHK UpDater

У меня сейчас так же, но вопрос не по адресу, пишите на офф. форум. Я пользуюсь инсталлером для обновлений.

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

3 (изменено: Indomito, 2016-10-28 13:36:20)

Re: AHK: Не срабатывает AHK UpDater

teadrinker
Да, новая версия лежит на офф. форуме, правда вызывает туже ошибку.
Я скачал в ZIP-формате и установил поверх старой.

Попробую найти рабочую версию и дать на неё линк.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AHK 1.1.25.05

4 (изменено: wisgest, 2016-11-11 17:14:23)

Re: AHK: Не срабатывает AHK UpDater

Indomito пишет:

Я пользуюсь скриптом Update.ahk и пользуюсь весьма давно. Нашёл его где - то на форуме.

Вот первые его строчки…

Скрипт лежит на прежнем месте и имеет прежнюю версию.

Похоже, что в нём по меньшей мере две программные ошибки — строки:

URL_Version = %UpdateURL%/1.1/version.txt
    whr.Open("GET", VersionURL, false), whr.Send()

более правдоподобно смотрелись бы в виде:

URL_Version = %URL_Base%/1.1/version.txt
    whr.Open("GET", URL_Version, false), whr.Send()
Indomito пишет:

Да, новая версия лежит на офф. форуме, правда вызывает туже ошибку.
Я скачал в ZIP-формате и установил поверх старой.

Где?

5

Re: AHK: Не срабатывает AHK UpDater

Но если в нём и нет других ошибок, то даже с учётом указанных исправлений скрипт у меня работать не будет — см. «Re: VBS/ANY: CDO.Message не может отправить почту,"не далось подключиться"». В то же время https://ahkscript.org у меня открывается, но с предупреждением, что сертификат выдан другому сайту.

autohotkey.com пишет:

Error:  0x80072F8F -
Source: WinHttp.WinHttpRequest
Description: A security error occurred

ahkscript.org пишет:

Error:  0x80072F06 -
Source: WinHttp.WinHttpRequest
Description: The host name in the certificate is invalid or does not match

Насколько я могу судить, это полные зеркала, за исключением того, что на ahkscript.org есть кое-что, чего нет на autohotkey.com.

Но т.к. ссылки и адреса изображений на форуме являются абсолютными, то использовать ahkscript.org не удобно.

Прописал в файле hosts для autohotkey.com IP от ahkskript.org:

45.55.88.45	autohotkey.com
#104.24.122.247	autohotkey.com
#45.55.88.45	ahkscript.org

— пока работает. Забавно, что при этом http://autohotkey.com/foundation всё-равно перенаправляет на ahkscript.org, т.е. это действительно полные зеркала, но на сервере проверяется заголовок HTTP-запроса Host.

6 (изменено: wisgest, 2016-11-22 03:04:48)

Re: AHK: Не срабатывает AHK UpDater

Однако сертификат используемый ahkscript.org (но выданный autohotkey.com) истекает
2016-11-13 23:10:00 GMT.


Добавлено позже: Сертификат продлён:

Opera Internet Browser пишет:
Недействителен до...	2016-11-14 02:58:00 GMT
Недействителен после...	2017-02-12 02:58:00 GMT

7 (изменено: Malcev, 2016-11-13 15:10:22)

Re: AHK: Не срабатывает AHK UpDater

wisgest, а что именно у вас не работает?
У меня ахк загружается так (Win-7):

link := "https://ahkscript.org"
http := ComObjCreate("Msxml2.XMLHTTP")
http.Open("GET", link, False)
http.Send()
msgbox % http.responseText

Либо так:

link := "https://ahkscript.org"
http := ComObjCreate("WinHTTP.WinHTTPRequest.5.1")
http.Option(4) := 0x3300
http.Open("GET", link, False)
http.Send()
msgbox % http.responseText

8 (изменено: wisgest, 2016-11-13 15:46:19)

Re: AHK: Не срабатывает AHK UpDater

Malcev, изначально речь шла всё-таки о https://autohotkey.com.

Сценарий с Msxml2.XMLHTTP работает с требованием подтверждения действия в диалоговом окне «Предупреждение системы безопасности»,
с WinHTTP.WinHTTPRequest.5.1— работает, если

http.Option(4) := 0x3300

Но если

link := "https://autohotkey.com"

ни один изначально не работает, и оба работают без предупреждений (вероятно, последние сутки) после предложенной мною правки файла hosts.

9

Re: AHK: Не срабатывает AHK UpDater

Значит, наверное, проблема у WinXP с данным сайтом.
У меня как-то с одним сайтом не работал WinHTTPRequest на Win7, а Msxml2.XMLHTTP работал.
А на Win10 работали оба.
http://forum.script-coding.com/viewtopic.php?id=11238

10 (изменено: Indomito, 2016-11-21 17:08:40)

Re: AHK: Не срабатывает AHK UpDater

Malcev, Приветствую.

У меня...
OS: MS Windows 7 Ultimate Ru SP1 x64

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

«Предупреждение системы безопасности» - я отключил.

REGEDIT4
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Attachments]
"SaveZoneInformation"=dword:00000001
 
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Associations]
"LowRiskFileTypes"=".exe;.bat;.reg;.msi;.htm;.html;.ico;.gif;.bmp;.jpg;.mkv;.mp4;.avi;.mpg;.mpeg;.mov;.mp3;.m3u;.wav;"  

P.S. Можно было использовать Групповые Политики, что менее безопасно и более радикально, но у меня защита реализована на уровне AVP.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AHK 1.1.25.05

11

Re: AHK: Не срабатывает AHK UpDater

У меня с изменениями, предложенными wisgest в 4 посте, всё работает.

12 (изменено: Indomito, 2016-11-26 18:56:07)

Re: AHK: Не срабатывает AHK UpDater

Спасибо за правки - Wisgest и Malcev, всё работает.

+ Скрипт AutoHotkey Updater version = 0.013 (ИСПРАВЛЕНЫЙ и РАБОЧИЙ)
/*
[AutoHotkey Updater]
version = 0.013
*/

SelfUpdate = 1 ; Set to 0 to prevent the script from checking for updates to itself.

URL_Base    = https://autohotkey.com/download
URL_Script  = %URL_Base%/Update.ahk
URL_Setup   = %URL_Base%/ahk-install.exe
URL_Version = %URL_Base%/1.1/version.txt


#NoEnv
#Include *i %A_ScriptDir%\UpdateDebug.ahk

if 0 > 0
{
    if IsFunc("_" %True%) ; Recursive call, used to swap exes or elevate the process.
    {
        prms := Object()
        Loop %0%
            prms.Insert(%A_Index%)
        func := prms.Remove(1), _%func%(prms*)
        ExitApp
    }
    else if 1 = SuppressUpToDate ; Suppress "AutoHotkey is up to date" message.
        SuppressUpToDate := true
}

if !A_IsCompiled && SelfUpdate
{
    ; First, check for a newer version of this script.
    URLDownloadToFile %URL_Script%, %A_Temp%\Update.ahk
    IniRead rver, %A_Temp%\Update.ahk, AutoHotkey Updater, version, %A_Space%
    IniRead lver, %A_ScriptFullPath%,  AutoHotkey Updater, version, %A_Space%
    if (lver < rver)
    {
        MsgBox 3, AutoHotkey Updater,
        (LTrim Join`s
        A newer version of this script is available.  It is recommended
        that you use the updated version of the script to install further
        updates.  *** WARNING: If you click yes, any modifications you
        have made to this script will be lost. ***
        `n`nUse the updated script?
        )
        ifMsgBox Yes
        {
            _SelfUpdate(A_Temp "\Update.ahk")
            ExitApp
        }
        ifMsgBox Cancel
        {
            FileDelete %A_Temp%\Update.ahk
            ExitApp
        }
    }
    FileDelete %A_Temp%\Update.ahk
}


; Retrieve latest version number.
try
{
    whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
    whr.Open("GET", URL_Version, false), whr.Send()
    version := whr.ResponseText
    if !(version ~= "^\d+\.\d")
        throw ; 404?
}
catch
{
    MsgBox 48, AutoHotkey Updater, There was a problem checking for updates.  Please check your internet connection or try again later.
    ExitApp
}


if (version <= A_AhkVersion)
    && !RegExMatch(A_AhkVersion, "^\Q" version "\E-")  ; Quick hack for beta -> final version.
{
    if !SuppressUpToDate
        MsgBox 64, AutoHotkey Updater,
        (Ltrim
        AutoHotkey is up to date.
        
        Installed version:`t%A_AhkVersion%
        Latest version:`t%version%
        )
    ExitApp
}

MsgBox 68, AutoHotkey Update Available,
(
An update for AutoHotkey is available.

Installed version:`t%A_AhkVersion%
Latest version:`t%version%

Would you like to install it now?
)
ifMsgBox No
    ExitApp

TempFile := A_Temp "\ahk-install.exe"

; Download the new package
if !Download(URL_Setup, TempFile)
{
    MsgBox 16, AutoHotkey Updater, Update failed due to a download error.
    ExitApp
}

; Run setup
try Run "%TempFile%" /exec kill %A_ScriptHwnd% /exec Downloaded "%TempFile%"
ExitApp


_SelfUpdate(source_path)
{
    ; Copy and Delete instead of Move so that file permissions are inherited correctly.
    FileCopy %source_path%, %A_ScriptFullPath%, 1
    if ErrorLevel
    {
        if !A_IsAdmin
        {   ; Try again as admin.
            if Elevate("SelfUpdate", source_path)
                ExitApp
        }
        MsgBox 16, AutoHotkey Updater, Script update failed.  Error %err%.
        ExitApp
    }
    FileDelete %source_path%
    Reload
}


Elevate(func, prms*)
{
    cmd := func
    for i,prm in prms
    {
        StringReplace prm, prm, `", "", All
        cmd .= " """ prm """"
    }
    if A_IsCompiled
        exe := A_ScriptFullPath
    else
        exe := A_AhkPath, cmd := """" A_ScriptFullPath """ " cmd
    return DllCall("shell32\ShellExecute", "ptr", 0, "str", "RunAs"
                    , "str", exe, "str", cmd, "ptr", 0, "int", 1) > 32
}


; Based on code by Sean and SKAN @ http://www.autohotkey.com/forum/viewtopic.php?p=184468#184468
Download(url, file)
{
    static vt
    if !VarSetCapacity(vt)
    {
        VarSetCapacity(vt, A_PtrSize*11), nPar := "31132253353"
        Loop Parse, nPar
            NumPut(RegisterCallback("DL_Progress", "F", A_LoopField, A_Index-1), vt, A_PtrSize*(A_Index-1))
    }
    global _cu
    SplitPath file, dFile
    SysGet m, MonitorWorkArea, 1
    scale := A_ScreenDPI ? A_ScreenDPI/96 : 1, y := mBottom-52*scale-2, x := mRight-330*scale-2
    , VarSetCapacity(_cu, 100), VarSetCapacity(tn, 520)
    , DllCall("shlwapi\PathCompactPathEx", "str", _cu, "str", url, "uint", 50, "uint", 0)
    Progress Hide CWFAFAF7 CT000020 CB445566 x%x% y%y% w330 h52 B1 FS8 WM700 WS700 FM8 ZH12 ZY3 C11,, %_cu%, AutoHotkeyProgress, Tahoma
    if (0 = DllCall("urlmon\URLDownloadToCacheFile", "ptr", 0, "str", url, "str", tn, "uint", 260, "uint", 0x10, "ptr*", &vt))
        FileCopy %tn%, %file%, 1
    else
        ErrorLevel := 1
    Progress Off
    return !ErrorLevel
}
DL_Progress( pthis, nP=0, nPMax=0, nSC=0, pST=0 )
{
    global _cu
    if A_EventInfo = 6
    {
        Progress Show
        Progress % P := 100*nP//nPMax, % "Downloading:     " Round(np/1024,1) " KB / " Round(npmax/1024) " KB    [ " P "`% ]", %_cu%
    }
    return 0
}
"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
OS Windows 7 x64
AHK 1.1.25.05