-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupdate_version.ahk
61 lines (47 loc) · 2 KB
/
update_version.ahk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#Requires AutoHotkey v2.0
if not FileExist(A_ScriptDir "\muhenkan.exe")
{
MsgBox "muhenkan.exe がありません。`nアップデートを中止します。"
return
}
modifiedString := StrReplace(StrReplace(A_ScriptName, "update_", ""), ".exe", "")
CurrentVersion := StrReplace(modifiedString, "_", ".")
req := ComObject("Msxml2.XMLHTTP")
req.open("GET", "https://api.github.com/repos/kimushun1101/muhenkan-switch/releases/latest", false)
req.send()
; https://www.autohotkey.com/boards/viewtopic.php?t=107697
htmlfile := ComObject('htmlfile')
htmlfile.write('<meta http-equiv="X-UA-Compatible" content="IE=edge">')
LatestVersion := htmlfile.parentWindow.JSON.parse(req.responseText).tag_name
if CurrentVersion = LatestVersion
{
MsgBox "現在のバージョン:" CurrentVersion "`n現在のバージョンは最新です。"
return
}
else
{
if MsgBox("現在のバージョン:" CurrentVersion "`n最新のバージョン:" LatestVersion "`nアップデートしますか?", , "YesNo") = "No"
return
}
DetectHiddenWindows True
try WinKill A_ScriptDir "\muhenkan.exe"
URL := "https://github.com/kimushun1101/muhenkan-switch/releases/latest/download/muhenkan-switch.zip"
LatestZip := A_ScriptDir "\latest.zip"
Download URL, LatestZip
LatestDir := A_ScriptDir "\latest"
try DirDelete LatestDir, 1
DirCreate LatestDir
while not FileExist(LatestZip)
Sleep 1000
RunWait("powershell -Command `"Expand-Archive -Path `'" LatestZip "`' -Destination `'" LatestDir "`'`"")
; ini ファイルを退避
FileMove A_ScriptDir "\*.ini", LatestDir "\*.ini"
; 現在のフォルダとimg フォルダの中身を削除
try FileDelete A_ScriptDir "\*"
try FileDelete A_ScriptDir "\img\*"
; latest フォルダのファイルを移動して、latest フォルダを削除
FileMove LatestDir "\img\*", A_ScriptDir "\img\*"
FileMove LatestDir "\*", A_ScriptDir "\*"
DirDelete LatestDir, 1
MsgBox "アップデートが完了しました。"
Run A_ScriptDir "\muhenkan.exe"