본문 바로가기
programming language/Autohotkey

Autohotkey 새로운 버전 체크/자동 다운로드 실행하기

by __observer__ 2021. 8. 30.
반응형

Autohotkey 를 사용하시는 분들은 아시겠지만 1.1.33.10 버전이 8월 29일에 릴리즈 했습니다. 많은 프로그램들이 프로그램 시작시 자동 업데이트 기능들이 있는데~ 오늘은 Autohotkey 를 자동으로 업데이트 하는 방법에 대해 소개해 보려 합니다.

코드는 아래와 같습니다.

whr := ComObjCreate("WinHttp.WinHttpRequest.5.1")
whr.Open("GET", "https://www.autohotkey.com/download/1.1/version.txt", true)
whr.Send()
whr.WaitForResponse()	
version := whr.ResponseText			; 버전 확인
ObjRelease(whr)		

if (A_AhkVersion  != version)		; 현재 설치 버전과 사이트의 버전이 다르면
{		
	MsgBox, 260, Autohotkey 설치 확인, 
	(LTrim
	현재 설치 버전은 %A_AhkVersion% 입니다.
	%version% 버전을 설치하시겠습니까?
	),3
	
	IfMsgBox, Yes
	{
		Run, https://www.autohotkey.com/download/						; Autohotkey 사이트 실행
		newPath=C:\Users\%A_UserName%\AutoHotkey_%version%_setup.exe	; 새로운 파일 path

		if FileExist(newPath)
		{
			FileDelete, %newPath%
		}
		UrlDownloadToFile, https://www.autohotkey.com/download/ahk-install.exe, %newPath%	; 설치 파일 다운로드
		Sleep,800
		
		Run, %newPath%		; 설치 파일 실행
		Sleep, 800
		Run, %comspec% /c taskkill /PID AutoHotkey.exe /F,,Min		; 새로운 버전의 Autohotkey 설치를 위해 Process Kill
	}
}

해당 코드는 아래 주소의 UrlDownloadToFile 매뉴얼을 보다가 힌트를 얻어서 만들어 보게 되었습니다.

https://www.autohotkey.com/docs/commands/URLDownloadToFile.htm

주요한 키워드로는 UrlDownloadToFile, ComObjCreate 가 될 것 같네요~

UrlDownloadToFile 함수는 이름에서부터 보시면 아시겠지만, 사이트 주소의 파일을 로컬 PC 에 다운로드 하는 함수 입니다. ComObjCreate 함수는 말그대로 “WinHttp.WinHttpRequest.5.1” COM 개체를 만드는 함수입니다. 해당 개체를 통해 신규 버전이 변경 된 것을 확인 할 수 있습니다.

저는 위 코드를 제가 사용하는 Autohotkey 코드의 제일 위에 넣어놔서 Autohotkey 가 로드 될때 자동으로 업데이트를 확인해서 다운로드 하도록 하고 있습니다.

이글을 읽고 계신걸로 봐서, Autohotkey 사용자 이신것 같은데~ 도움이 되었길 바랍니다.

반응형

댓글