Raspberry Pi & Desktop

오토핫키 | 컴퓨터 부팅시 하루에 한번만 작동하는 스크립트 만들기 본문

Play Android & Windows

오토핫키 | 컴퓨터 부팅시 하루에 한번만 작동하는 스크립트 만들기

#RPIE 2023. 4. 6. 00:40

컴퓨터 부팅시에 '웹사이트 자동 출석 체크' 같은걸 오토핫키로 돌리고 싶은데, 컴퓨터 부팅 시간이 매번 다르고 하루에도 여러번 껐다 켰다 하는 경우를 고려해서 '컴퓨터 부팅시 하루에 한번만 진행하는 오토핫키 스크립트' 를 만들어봤습니다.

 

검색 실력이 후달려서 그런가 '오토핫키 하루에 한번만 실행' 등으로 검색해보니, 기껏 찾은게 '웹사이트에서 인터넷으로 날짜값을 Intdate.txt 다운로드 받아서 어쩌고 저쩌고' 쓸데없이 복잡한 스크립트만 나오고 제대로 작동하지도 않아서 결국 직접 만들어 보게 되었네요. 🥶😭

; "ShortDate 형식의 오늘 날짜를 TodayShortDate 라는 변수로 지정"
FormatTime, TodayShortDate,, ShortDate

; "date.ini 파일에서 IniShortDate 에 해당하는 값을 IniShortDate 라는 변수로 지정"
IniRead, IniShortDate, date.ini, Date, IniShortDate

; "두 변수를 비교해서 날짜 값이 같으면 메세지 박스 2초 띄우고 종료, 날짜가 다르면 출석 체크 매크로 스크립트를 진행하고, 마지막에 date.ini 에 오늘 날짜 기록"
if (TodayShortDate = IniShortDate)
{
MsgBox, 0, 오토핫키, 오늘 출석 체크는 이미 진행되었습니다., 2
ExitApp
}
else
{
; "자기만의 출석 체크 매크로 스크립트 넣을 자리 (여기서 예제는 웹사이트 방문)"
Run, https://rpie.tistory.com/
; "스크립트가 끝났으면 마지막에 date.ini 의 IniShortDate 값에 오늘 날짜 기록"
IniWrite, %TodayShortDate%, date.ini, Date, IniShortDate
}

'하루에 한번만' 작동시키는 주된 방식은 ini 파일 오토핫키에서 읽고, 쓰는 명령어를 이용했습니다. 오늘 날짜와 ini 파일에 기록된 날짜 비교해서 날짜가 같으면 출석을 진행하지 않고 종료, 날짜가 다르면 출석 체크 매크로를 다 진행하고 나서 스크립트 완료 날짜를 ini 파일에 기록하고 마무리합니다. 그외 자세한 내용은 주석에 다 달아두었고요. 예제 스크립트에서는 웹사이트 방문까지만 해놨는데 실제 출첵 매크로를 구현하려면 ImageSearch 를 활용하시면 됩니다.

 

일단 저렇게 만들어서 '윈도우 시작프로그램 폴더(shell:startup)'에 오토핫키 스크립트를 걸어두고 사용해보니 출석 체크를 허용하지 않는 새벽 시간대에 PC를 켰을 경우에 문제가 있더라고요. 그래서 00시 ~ 06시에 PC를 부팅하였을 경우 이 시간대를 제외하는 방법까지 추가해봤습니다.

; "현재 00시 00분 시간을 CurrentTime 이라는 변수로 지정"
FormatTime, CurrentTime, , HH:mm

; "00시 00분 보다 크고 06시 00분 보다 작으면 바로 종료하고 아니면 다음 스크립트 진행"
if (CurrentTime >= "00:00" && CurrentTime <= "06:00")
{
MsgBox, 0, 오토핫키, 지금은 출석 체크 시간이 아닙니다., 2
ExitApp
}
else
{
; "<<<<<< 첫번째 스크립트 전체 삽입할 자리 >>>>>>"
}

두가지 조건으로 며칠 돌려보니 별 문제 없이 잘 작동했습니다. 😆👍

 


 

P.S. 오토핫키 스크립트에서 주석을 전부 삭제하고 ChatGPT에 올려봤더니 ChatGPT의 코드 리뷰는 소름돋게 정확하더군요. ChatGPT를 이용해서 오토핫키 스크립트 예제를 만들어보니 비교적 간단한 것도 작동 자체가 안되는 오류 스크립트를 꽤나 만들어주기도 하고 명령어를 모르는 초보자 입장에서 원하는 대답을 뽑기가 좀 힘들긴한데, 이렇게 다 만들어 놓은 스크립트를 던져주니 그걸 설명해주는건 기가 막힐 정도로 정말 잘 합니다. 🥶😱