[Урок] Автоматизированное обновление скриптов - Страница 2 - Форум Cheat-Master.ru
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: Sanoxxx, Alowir, Phoenixxx_Czar  
Форум » Программирование » AHK Программирование » [Урок] Автоматизированное обновление скриптов (Полностью автоматическое обновление)
[Урок] Автоматизированное обновление скриптов
[CM]Coockie Дата: Понедельник, 08.05.2017, 14:07 | Сообщение # 16
developer
Сообщений: 67
Статус: Offline
MrGPro,
Код

FileRead, find404, %ScriptDir%/LST_Version.ini ; проверяем файл на строку 404
IfInString, find404, 404

Дальше читать даже не стал, у большинства нормальных сервисов стоят редиректы на ошибки Apache, а если где-то еще будет цифра 404 и самой ошибки не будет? Проще сделать в JSON виде обмен информацией
NiceShot1337 Дата: Понедельник, 18.06.2018, 17:20 | Сообщение # 17
Новичок
Сообщений: 1
Статус: Offline
Код
Utf8ToAnsi(ByRef Utf8String, CodePage = 1251)
{
    If (NumGet(Utf8String) & 0xFFFFFF) = 0xBFBBEF
        BOM = 3
    Else
        BOM = 0

    UniSize := DllCall("MultiByteToWideChar", "UInt", 65001, "UInt", 0
                    , "UInt", &Utf8String + BOM, "Int", -1
                    , "Int", 0, "Int", 0)
    VarSetCapacity(UniBuf, UniSize * 2)
    DllCall("MultiByteToWideChar", "UInt", 65001, "UInt", 0
                    , "UInt", &Utf8String + BOM, "Int", -1
                    , "UInt", &UniBuf, "Int", UniSize)

    AnsiSize := DllCall("WideCharToMultiByte", "UInt", CodePage, "UInt", 0
                    , "UInt", &UniBuf, "Int", -1
                    , "Int", 0, "Int", 0
                    , "Int", 0, "Int", 0)
    VarSetCapacity(AnsiString, AnsiSize)
    DllCall("WideCharToMultiByte", "UInt", CodePage, "UInt", 0
                    , "UInt", &UniBuf, "Int", -1
                    , "Str", AnsiString, "Int", AnsiSize
                    , "Int", 0, "Int", 0)
    Return AnsiString
}
WM_HELP(){
    IniRead, vupd, %a_temp%/verlen.ini, UPD, v
    IniRead, desupd, %a_temp%/verlen.ini, UPD, des
    desupd := Utf8ToAnsi(desupd)
    IniRead, updupd, %a_temp%/verlen.ini, UPD, upd
    updupd := Utf8ToAnsi(updupd)
    msgbox, , Список изменений версии %vupd%, %updupd%
    return
}

OnMessage(0x53, "WM_HELP")
Gui +OwnDialogs

SplashTextOn, , 60,Автообновление, Запуск скрипта. Ожидайте..`nПроверяем наличие обновлений.
URLDownloadToFile, %downllen%, %a_temp%/verlen.ini
IniRead, buildupd, %a_temp%/verlen.ini, UPD, build
if buildupd =
{
    SplashTextOn, , 60,Автообновление, Запуск скрипта. Ожидайте..`nОшибка. Нет связи с сервером.
    sleep, 2000
}
if buildupd > % buildscr
{
    IniRead, vupd, %a_temp%/verlen.ini, UPD, v
    SplashTextOn, , 60,Автообновление, Запуск скрипта. Ожидайте..`nОбнаружено обновление до версии %vupd%!
    sleep, 2000
    IniRead, desupd, %a_temp%/verlen.ini, UPD, des
    desupd := Utf8ToAnsi(desupd)
    IniRead, updupd, %a_temp%/verlen.ini, UPD, upd
    updupd := Utf8ToAnsi(updupd)
    SplashTextoff
    msgbox, 16384, Обновление скрипта до версии %vupd%, %desupd%
    IfMsgBox OK
    {
        msgbox, 1, Обновление скрипта до версии %vupd%, Хотите ли Вы обновиться?
        IfMsgBox OK
        {
            put2 := % A_ScriptFullPath
            RegWrite, REG_SZ, HKEY_CURRENT_USER, Software\SAMP ,put2 , % put2
            SplashTextOn, , 60,Автообновление, Обновление. Ожидайте..`nОбновляем скрипт до версии %vupd%!
            URLDownloadToFile, %downlurl%, %a_temp%/updt.exe
            sleep, 1000
            run, %a_temp%/updt.exe
            exitapp
        }
    }
}
SplashTextoff

(13) : ==> Duplicate function definition.
13 строка это Utf8ToAnsi(ByRef Utf8String, CodePage = 1251)
Как исправить?
Salamakeykum Дата: Понедельник, 18.06.2018, 21:40 | Сообщение # 18
salam bratka
Сообщений: 378
Статус: Offline
Цитата [Avicii] ()
Запятые друг

Забыл запятую при обращении crazy


Помогу с AHK чем смогу VK

Мои темы:
CNN Helper
Fast AirDrop
autoMechanic
Fake Общак ARZ
Счетчик денег для таксистов
ZeusGang Дата: Понедельник, 18.06.2018, 23:35 | Сообщение # 19
Боец
Сообщений: 100
Статус: Offline
NiceShot1337, в коде два раза используется функция.
Во так должно работать:
Цитата
Utf8ToAnsi1(ByRef Utf8String, CodePage = 1251)
{
If (NumGet(Utf8String) & 0xFFFFFF) = 0xBFBBEF
BOM = 3
Else
BOM = 0

UniSize := DllCall("MultiByteToWideChar", "UInt", 65001, "UInt", 0
, "UInt", &Utf8String + BOM, "Int", -1
, "Int", 0, "Int", 0)
VarSetCapacity(UniBuf, UniSize * 2)
DllCall("MultiByteToWideChar", "UInt", 65001, "UInt", 0
, "UInt", &Utf8String + BOM, "Int", -1
, "UInt", &UniBuf, "Int", UniSize)

AnsiSize := DllCall("WideCharToMultiByte", "UInt", CodePage, "UInt", 0
, "UInt", &UniBuf, "Int", -1
, "Int", 0, "Int", 0
, "Int", 0, "Int", 0)
VarSetCapacity(AnsiString, AnsiSize)
DllCall("WideCharToMultiByte", "UInt", CodePage, "UInt", 0
, "UInt", &UniBuf, "Int", -1
, "Str", AnsiString, "Int", AnsiSize
, "Int", 0, "Int", 0)
Return AnsiString
}
WM_HELP(){
IniRead, vupd, %a_temp%/verlen.ini, UPD, v
IniRead, desupd, %a_temp%/verlen.ini, UPD, des
desupd := Utf8ToAnsi1(desupd)
IniRead, updupd, %a_temp%/verlen.ini, UPD, upd
updupd := Utf8ToAnsi1(updupd)
msgbox, , Список изменений версии %vupd%, %updupd%
return
}

OnMessage(0x53, "WM_HELP")
Gui +OwnDialogs

SplashTextOn, , 60,Автообновление, Запуск скрипта. Ожидайте..`nПроверяем наличие обновлений.
URLDownloadToFile, %downllen%, %a_temp%/verlen.ini
IniRead, buildupd, %a_temp%/verlen.ini, UPD, build
if buildupd =
{
SplashTextOn, , 60,Автообновление, Запуск скрипта. Ожидайте..`nОшибка. Нет связи с сервером.
sleep, 2000
}
if buildupd > % buildscr
{
IniRead, vupd, %a_temp%/verlen.ini, UPD, v
SplashTextOn, , 60,Автообновление, Запуск скрипта. Ожидайте..`nОбнаружено обновление до версии %vupd%!
sleep, 2000
IniRead, desupd, %a_temp%/verlen.ini, UPD, des
desupd := Utf8ToAnsi1(desupd)
IniRead, updupd, %a_temp%/verlen.ini, UPD, upd
updupd := Utf8ToAnsi1(updupd)
SplashTextoff
msgbox, 16384, Обновление скрипта до версии %vupd%, %desupd%
IfMsgBox OK
{
msgbox, 1, Обновление скрипта до версии %vupd%, Хотите ли Вы обновиться?
IfMsgBox OK
{
put2 := % A_ScriptFullPath
RegWrite, REG_SZ, HKEY_CURRENT_USER, Software\SAMP ,put2 , % put2
SplashTextOn, , 60,Автообновление, Обновление. Ожидайте..`nОбновляем скрипт до версии %vupd%!
URLDownloadToFile, %downlurl%, %a_temp%/updt.exe
sleep, 1000
run, %a_temp%/updt.exe
exitapp
}
}
}
SplashTextoff
Alikkuc Дата: Среда, 09.01.2019, 17:40 | Сообщение # 20
Новичок
Сообщений: 19
Статус: Offline
Ребят, у меня бесконечно идет. Сначала скрипт устанавливается новый, но потом он бесконечно строчит мне о том что вышло новое объявление.
Salamakeykum Дата: Пятница, 11.01.2019, 13:03 | Сообщение # 21
salam bratka
Сообщений: 378
Статус: Offline
Цитата Alikkuc ()
бесконечно строчит мне о том что вышло новое объявление.

SplashTextOff попробуй


Помогу с AHK чем смогу VK

Мои темы:
CNN Helper
Fast AirDrop
autoMechanic
Fake Общак ARZ
Счетчик денег для таксистов
Alikkuc Дата: Суббота, 12.01.2019, 19:40 | Сообщение # 22
Новичок
Сообщений: 19
Статус: Offline
Цитата Salamakeykum ()
SplashTextOff попробуй


и в скрипте и в updt.exe пробывал ничего не помогает

Добавлено (15.01.2019, 13:49)
---------------------------------------------
ну кто то мне поможет нет, я не могу сделать у меня бесконечно открывается о том что 'доступно обновление '

Salamakeykum Дата: Вторник, 15.01.2019, 19:19 | Сообщение # 23
salam bratka
Сообщений: 378
Статус: Offline
Цитата Alikkuc ()
доступно обновление

Проблема может быть какая угодно, никто не видел твоего кода, может с загрузкой файла ошибка..


Помогу с AHK чем смогу VK

Мои темы:
CNN Helper
Fast AirDrop
autoMechanic
Fake Общак ARZ
Счетчик денег для таксистов
ZeusGang Дата: Вторник, 23.07.2019, 23:41 | Сообщение # 24
Боец
Сообщений: 100
Статус: Offline
Alikkuc, цифры проверь или ифки, проблема скорее всего там
Lisov212441 Дата: Суббота, 27.08.2022, 17:43 | Сообщение # 25
Новичок
Сообщений: 1
Статус: Offline
Здравствуйте, сделал все как в инструкции. Но выскакивает ошибка



Сообщение отредактировал Lisov212441 - Суббота, 27.08.2022, 17:45
Sakurai Дата: Вторник, 25.10.2022, 15:11 | Сообщение # 26
Новичок
Сообщений: 1
Статус: Offline
Цитата MrGPro ()
https://raw.githubusercontent.com/MrGPro....ion.ini

Модифицированный код на основе данного

Код

global ScriptVersion, ScriptVersion = "0.0.9" ; Версия данного скрипта
global UrlServerInfo, UrlServerInfo = "https://raw.githubusercontent.com/MrGPro/TestUpdate/master/LST_Version.ini" ; Ссылка на файл с версией, ссылкой на файл, описанием, и лог изменений
ScriptDir := A_ScriptDir

Utf8ToAnsi(ByRef Utf8String, CodePage = 1251)
{
    If (NumGet(Utf8String) & 0xFFFFFF) = 0xBFBBEF
        BOM = 3
    Else
        BOM = 0

    UniSize := DllCall("MultiByteToWideChar", "UInt", 65001, "UInt", 0
                    , "UInt", &Utf8String + BOM, "Int", -1
                    , "Int", 0, "Int", 0)
    VarSetCapacity(UniBuf, UniSize * 2)
    DllCall("MultiByteToWideChar", "UInt", 65001, "UInt", 0
                    , "UInt", &Utf8String + BOM, "Int", -1
                    , "UInt", &UniBuf, "Int", UniSize)

    AnsiSize := DllCall("WideCharToMultiByte", "UInt", CodePage, "UInt", 0
                    , "UInt", &UniBuf, "Int", -1
                    , "Int", 0, "Int", 0
                    , "Int", 0, "Int", 0)
    VarSetCapacity(AnsiString, AnsiSize)
    DllCall("WideCharToMultiByte", "UInt", CodePage, "UInt", 0
                    , "UInt", &UniBuf, "Int", -1
                    , "Str", AnsiString, "Int", AnsiSize
                    , "Int", 0, "Int", 0)
    Return AnsiString
}

ConnectedToInternet(flag=0x40) ; интернет коннектор статус сети
{
Return DllCall("Wininet.dll\InternetGetConnectedState", "Str", flag,"Int",0)
}

if ConnectedToInternet() ; есть подключение к сети
{
SplashTextOn, , 60, Менеджер обновлений, Проверка обновления`n------------------------`nОжидайте
URLDownloadToFile, %UrlServerInfo%, %ScriptDir%/LST_Version.ini
FileRead, find404, %ScriptDir%/LST_Version.ini ; проверяем файл на строку 404
IfInString, find404, 404
{
    FileServer := False ; файл настроек не верный
}
else
{
    FileServer := True ; файл настроек верный
    IniRead, f_LastVersion, %ScriptDir%/LST_Version.ini, Script, Last_Version
    IniRead, f_LastDescription, %ScriptDir%/LST_Version.ini, Script, Last_Description
    IniRead, f_LastChangLog, %ScriptDir%/LST_Version.ini, Script, Last_Changlog
    If (f_LastChangLog != Null) ; если ссылка на файл лога не пуста
    {
  URLDownloadToFile, %f_LastChangLog%, %ScriptDir%/Chatlog.txt ; скачиваем файл лога
  FileRead, f_ChatlogText, %ScriptDir%/Chatlog.txt ; читаем файл лога
  conv_MsgChangLog := Utf8ToAnsi(f_ChatlogText) ; конвертируем кодировку
  If (conv_MsgChangLog == "ERROR") ; если файл пустой
  {
   FormChatLogLoad := ; записываем пустоту в форму
  }
  else
  {
   FormChatLogLoad := conv_MsgChangLog ; записываем текст с файла в форму
  }
    }
}
if (FileServer == False) ; если в файле есть 404
{
    SplashTextOn, , 60, Менеджер обновлений, Ошибка подключения`n------------------------`nНет связи с сервером
    sleep, 2000
    SplashTextoff
    goto, Script
}
else if (f_LastVersion > ScriptVersion and f_LastVersion != Null) ; версия больше и последняя версия не равна пустоте
{
    SplashTextOn, , 60, Менеджер обновлений,  Ожидайте`n------------------------`nОбнаружена версия %f_LastVersion%
    sleep, 2000
    SplashTextoff
    IniRead, f_LastChangLog, %ScriptDir%/LST_Version.ini, Script, Last_Changlog
  ; удаляем иконку с формы
  Gui +LastFound
  DllCall("uxtheme\SetWindowThemeAttribute", "ptr", WinExist()
  , "int", 1, "int64*", 6 | 6<<32, "uint", 8)
  
  ; загружаем форму
  Gui, Update:Color, FFFFFF
  Gui, Update:-MinimizeBox
  Gui, Update:Add, TreeView, x240 y375 w240 h84,
  Gui, Update:Add, Edit, x10 y10 w480 h240 ReadOnly, %FormChatLogLoad%
  Gui, Update:Add, Button, x90 y260 w125 h30 gUpdate, Обновить
  Gui, Update:Add, Button, x285 y260 w125 h30 gUpdateGuiClose, Отмена
  Gui, Update:Show, w500 h300, Доступно обновление %ScriptVersion% до %f_LastVersion%
  return
    }
}
else ; нет доступа к интернету
{
    MsgBox, 48, Менеджер обновлений, Доступ к интернету не обнаружен`n-----------------------------------------`nПроверьте своё интернет соединение
    goto, Script
}

; запускаем обновление по тыку кнопки обновить
Update:
IniRead, f_LastDownload, %ScriptDir%/LST_Version.ini, Script, Last_Download
IniRead, f_FileName, %ScriptDir%/LST_Version.ini, Script, Last_Name
msgbox, 1, Обновление до %f_LastVersion%, Хотите ли Вы обновиться?
IfMsgBox, OK
{
    SplashTextOn, , 60 ,Менеджер обновлений, Ожидайте`n------------------------`nОбновляем до %f_LastVersion%
    sleep, 1000
    SplashTextOn, , 60,Менеджер обновлений, Ожидайте`n------------------------`nСкачиваем обновление
    URLDownloadToFile, %f_LastDownload%, %ScriptDir%/%f_FileName%
    sleep, 1000
    SplashTextOn, , 60,Менеджер обновлений, Ожидайте`n------------------------`nЗапускаем скрипт
    sleep, 3000
    run, %ScriptDir%/%f_FileName%
    ExitApp
  
}
IfMsgBox, CANCEL
{
    Gui, Update:Destroy ; удаляем форму обновления
    goto, Script
}
return

UpdateGuiClose:
Gui, Update:Destroy
goto, Script
return

; ваш скрипт
Script:
MsgBox, Скрипт запущен
ExitApp


Я взял твой код и у меня ошибка а в чем проблема хз
скрин
MrGProv2 Дата: Среда, 29.03.2023, 23:39 | Сообщение # 27
Новичок
Сообщений: 1
Статус: Offline
Код
global ScriptVersion = "0.0.9" ; Версия данного скрипта
global UrlServerInfo = "https://raw.githubusercontent.com/MrGProv2/AhkUpdaterv2Fix/main/update.json" ; Ссылка на файл с версией, ссылкой на файл, описанием, и лог изменений
global info = [] ; массив для глобального использывания

; функция ппроверки интернет-соединения
ConnectedToInternet(flag=0x40) ; интернет коннектор статус сети
{
Return DllCall("Wininet.dll\InternetGetConnectedState", "Str", flag,"Int",0)
}

; функция для работы с json структурами
Json(i)
{
  ;ENCODE
  if (isobject(i))
  {
    o := "", a := 1, x := 1
    for k,v in i
    {
      if (k!=x)
        a := 0, break
      x += 1
    }
    o .= (a) ? "[" : "{", f := 1
    for k,v in i
      o .= ((f) ? "" : ",")((a) ? "" : """" k """:")((isobject(v)) ? json(v) : ((v+0=v) ? v : """" v """")), f := 0
    return o ((a) ? "]" : "}")
  }
  ;DECODE
  if (regexmatch(i, "s)^__chr(A|W):(.*)", m))
  {
    VarSetCapacity(b, 4, 0), NumPut(m2, b, 0, "int")
    return StrGet(&b, 1, (m1="A") ? "cp28591" : "utf-16")
  }
  if (regexmatch(i, "s)^__str:((\\""|[^""])*)", m))
  {
    str := m1
    for p,r in {b:"`b", f:"`f", n:"`n", 0:"", r:"`r", t:"`t", v:"`v", "'":"'", """":"""", "/":"/"}
      str := regexreplace(str, "\\" p, r)
    while (regexmatch(str, "s)^(.*?)\\x([0-9a-fA-F]{2})(.*)", m))
      str := m1 json("__chrA:0x" m2) m3
    while (regexmatch(str, "s)^(.*?)\\u([0-9a-fA-F]{4})(.*)", m))
      str := m1 json("__chrW:0x" m2) m3
    while (regexmatch(str, "s)^(.*?)\\([0-9]{1,3})(.*)", m))
      str := m1 json("__chrA:" m2) m3
    return regexreplace(str, "\\\\", "\")
  }
  str := [], obj := []
  while (RegExMatch(i, "s)^(.*?[^\\])""((\\""|[^""])*?[^\\]|)""(.*)$", m))
    str.insert(json("__str:" m2)), i := m1 "__str<" str.maxIndex() ">" m4
  while (RegExMatch(RegExReplace(i, "\s+", ""), "s)^(.*?)(\{|\[)([^\{\[\]\}]*?)(\}|\])(.*)$", m))
  {
    a := (m2="{") ? 0 : 1, c := m3, i := m1 "__obj<" ((obj.maxIndex()+1) ? obj.maxIndex()+1 : 1) ">" m5, tmp := []
    while (RegExMatch(c, "^(.*?),(.*)$", m))
      tmp.insert(m1), c := m2
    tmp.insert(c), tmp2 := {}, obj.insert(cobj := {})
    for k,v in tmp
    {
      if (RegExMatch(v, "^(.*?):(.*)$", m))
        tmp2[m1] := m2
      else
        tmp2.insert(v)
    }
    for k,v in tmp2
    {
      for x,y in str
        k := RegExReplace(k, "__str<" x ">", y), v := RegExReplace(v, "__str<" x ">", y)
      for x,y in obj
        v := RegExMatch(v, "^__obj<" x ">$") ? y : v
      cobj[k] := v
    }
  }
  return obj[obj.maxIndex()]
}

; упрощённая функция запроса по http/https
Http(ByRef URL, COM = "GET")
{
    WinHTTP := ComObjCreate("WinHttp.WinHttpRequest.5.1")
    WinHTTP.Open(COM, URL, false)
    WinHTTP.Send()
    return % WinHTTP.ResponseText
}

; функция инициализации интерфейса обловлятора
Update_FORM(ByRef Version = "", ByRef Description = "")
{
  Gui, Update:+LastFound -SysMenu
  Gui, Update:Color, FFFFFF
  Gui, Update:-MinimizeBox
  Gui, Update:Add, TreeView, x240 y375 w240 h84,
  Gui, Update:Add, Edit, x10 y10 w480 h240 ReadOnly, %Description%
  Gui, Update:Add, Button, x90 y260 w125 h30 gUpdate, Обновить
  Gui, Update:Add, Button, x285 y260 w125 h30 gUpdateGuiClose, Отмена
  Gui, Update:Show, w500 h300, > Доступно обновление %ScriptVersion% до %Version%
}

Check_Update:
if ConnectedToInternet() ; есть подключение к сети
{
    SplashTextOn, , 60, Менеджер обновлений, % "Проверка обновления" . "`n" . "Ожидайте"  ; информер процесса
    sleep, 2000
    info := Json(Http(UrlServerInfo))  ; получаем данные с файла
    if (info["version"] > ScriptVersion) ; найдена новая версия
    {
  Descript_text := % Http(info["changelog_url"]) != "" ? Http(info["changelog_url"]) : "" ; заполняем описание в переменную через тернар при услови что не пустое
  SplashTextOn, , 60, Менеджер обновлений, % "Обнаружено обновление" . "`n" . "версия: " . info["version"]  ; информер процесса
  sleep, 2000
  SplashTextoff
  Update_FORM(ver, Descript_text) ; инициализируем интерфейс обновлятора
    }
}
else ; нет доступа к интернету
{
    MsgBox, 48, Менеджер обновлений, % "Доступ к интернету не обнаружен" . "`n" . "Проверьте своё интернет соединение"
    goto, Script
}
return

; запускаем обновление по тыку кнопки обновить
Update:
Msgbox, 1, % "Обновление до " . info["version"], Вы желаете выполнить обновление?
IfMsgBox, OK
{

    SplashTextOn, , 60 ,Менеджер обновлений, % "Ожидайте" . "`n" . "Обновляем до " . info["version"] ; информер процесса
    sleep, 1000
    SplashTextOn, , 60, Менеджер обновлений, % "Ожидайте" . "`n" . "Скачиваю обновление  " . info["version"] ; информер процесса
    URLDownloadToFile, % info["download_url"], % A_ScriptDir . "/" . info["file_exe"] . ".zip" ; загружаем исключительно zip архив и переименовываем его в имя исполнительного файла без exe
  IfExist, % A_ScriptDir . "/" . info["file_exe"] . ".zip" ; проверяем загружен файл или нет
  {
   SplashTextOn, , 60, Менеджер обновлений, % "Ожидайте" . "`n" . "Распаковка обновления  " . info["version"] ; информер процесса
   ; выполняем распаковку архива в каталог текущего скрипта
   Shell := ComObjCreate("Shell.Application")
   Items := Shell.NameSpace(A_ScriptDir . "\" . info["file_exe"] . ".zip")
   Shell.NameSpace(A_ScriptDir).CopyHere(Items.items, 4|16)
  }
  else
  {
   MsgBox, 48, Менеджер обновлений, % "Обновление не было загружено" . "`n" ."Проверьте своё интернет соединение или сообщите разработчику" ; информер процесса
   goto, Script
  }
    }
    sleep, 2000
    SplashTextOn, , 60,Менеджер обновлений, % "Ожидайте" . "`n" . "Запускаю обновлённый " . "`n" . info["file_exe"] . ".exe" ; информер процесса
    sleep, 3000
    run, % A_ScriptDir . "\" . info["file_exe"] ; запускаем файл после обновления
    ExitApp

}
IfMsgBox, CANCEL
{
    Gui, Update:Destroy ; удаляем форму обновления
    goto, Script
}
return

UpdateGuiClose:
Gui, Update:Destroy
goto, Script
return

; ваш  тело скрипта или запуск типа run
Script:
MsgBox, Скрипт запущен
ExitApp
Форум » Программирование » AHK Программирование » [Урок] Автоматизированное обновление скриптов (Полностью автоматическое обновление)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7209]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
rubenia18 [21:17]

pokotiloroman91 [18:24]

stephensh5 [12:00]

calliesv7 [06:11]

louqm16 [22:14]

artushak [16:32]

Kingpolker [15:42]

leeyv11 [15:12]

Trappa17 [01:00]

Djamalchik [16:40]

ajeense [14:24]

654470559 [08:55]

Newtone [03:01]