본문 바로가기
카테고리 없음

윈도우종료 초보타이머 프로그램 만들기

by r2d 2023. 11. 25.

윈도우 종료 프로그램은 많이 있지만, 한번 만들어 보고 싶다는 생각을 해봤을 것입니다

구글링으로 오픈 소스를 찾아봤는데 딱히 없어서 초보자의 생각으로 IF문으로 만들면 되지 않을까 싶어서

그래서 초보가 만들어 봤습니다

윈도우종료 초보타이머 프로그램을 다같이 만들어  봅시다

 

 

 

 

[오토핫키]AutoHotkey.오토핫키 설치하고, 초보프로그램 만들기

주로 게임에 많이 사용하기로 유명한 매크로 오토핫키로 많이 알려져 있다 레드도 처음 던파의 x키 연타버튼을 혹은 디아블로 반오토, 아이템줍기 등등으로 많이 사용 했던 시절이 있습니다 다

r2dme.tistory.com

 

윈도우종료 초보타이머 구성 미리보기

 

 

첫째줄 검은 글씨는 종료 될 시간을 맞추는 시간 설정부분이고,

둘째줄 빨간 글씨는 종료 될 시간 타이머 입니다

 

 

폰트 사이즈, 색상, 버튼 크기에 대한 디자인은 간단하고 잘보이게 하고,일단은 타이머 기능이 잘 작동하는지 확인 후에

실제로 타이머가 0초가 되었을때 윈도우가 잘 종료가 되는지 확인 해보니 작동은 잘되는 것을 확인 되네요

 

일단은 초보자 다운 윈도우종료 타이머를 만들어 봤습니다

그리고 만들고 보니 사용하기에 나쁘지 않더라구요

 

추후 업데이트

시간 설정 하는 창만 나오고, 타이머 시작을 하면, 시간 설정은 없어지고, 타이머만 나오게 하려고 합니다

창 크기도 조금 줄이는 것으로 쓰기 좋게 업데이트 예정입니다

 

 

 

코딩소스

Gui, Font, S20 Bold
Gui, Add, Edit, x20 y5 w60 +Center +Number Limit2 vHourN, 00
Gui, Add, Text, x+1 y9 vTxtH, 시간
Gui, Add, Edit, x+10 y5 w60 +Center +Number Limit2 vMinN, 00
Gui, Add, Text, x+1 y9 vTxtM, 분
Gui, Add, Edit, x+10 y5 w60 +Center +Number Limit2  vSecN, 00
Gui, Add, Text, x+1 y9 vTxtN, 초
Gui, Font, S20 Bold Cred
Gui, Add, Text, x0 y55 w360 +Center vCount, 00시간 00분 00초 후 종료
Gui, Add, Button, x105 y100 w150 h50 gStop vStop, 종료 취소
Gui, Add, Button, x105 y100 w150 h50 Default gStart vStart, 시작
Gui, Show, w360 h160, 윈도우종료 초보타이머
GuiControl, Hide, Stop
return

Start:
Gui, Submit, NoHide
Hour=%HourN%
Min=%MinN%
Sec=%SecN%

If(Hour>0 || Min>0 || Sec>0){
GuiControl, Disable, HourN
GuiControl, Disable, MinN
GuiControl, Disable, SecN
GuiControl, Disable, TxtH
GuiControl, Disable, TxtM
GuiControl, Disable, TxtN
GuiControl, Hide, Start
GuiControl, Show, Stop

	Loop{
		If(Sec>0){
			Sec--
			GuiControl, , Count, %Hour%시간 %Min%분 %Sec%초후 종료
			Sleep, 1000
		}Else If (Min>0){
			Min--		
			Sec=60
		}Else If (Hour>0){
			Hour--
			Min=60
		}Else If (Hour<1 && Min<1 && Sec = 0){
			goto, WinExit
		}
	}

}Else {
	Msgbox, 종료 시간을 설정하세요
}
return

WinExit:
	Run, cmd shutdown /s /t 1
return

Stop:
	Reload
return

GuiClose:
	ExitApp
return

 

코드의 이해

텍스트와 버튼 생성 코드소스 부분은 앞에서도 계속 해왔기에 생략하고 새로 생긴 부분위 주로 가겠습니다

다시 코딩을 보고 싶으신 분들은 아래 링크를 클릭해서 간단한 코딩이니 만들어 보면 이해가 쉽습니다

 

 

[오토핫키] 모니터 화면끄기(바로끄기) 소스 코딩 만들기

컴퓨터를 하다보면 화면보호기가 10분, 5분,, 설정해서 사용은 하지만, 급하게 자리를 비우는데 누군가 화면을 보면 안되는 창들을 켜놨을때나, 가끔 바로 모니터 화면만 꺼야하는 상황이 생길때

r2dme.tistory.com

Gui, Add, Button, x105 y100 w150 h50 gStop vStop, 종료 취소

종료 취소라는 버튼 생성 명령어인데 여기서 다음 코드를 주목해봅시다

GuiControl, Hide, Stop

GuiControl 앞에 사용한 Gui를 재설정 컨트롤 하겠다는 명령어 입니다

Hide 숨겨라

Stop 버튼 생성한 v라벨 Stop이 해당되는 것을 찾아라

한마디로 Stop가 해당되는 v라벨을 찾아서 숨겨라 라는 명령어 입니다

 

이번 소스에서 주목 할것은 논리 연산자 입니다

if문을  쓰다보면 둘다 참일때 실행을 할것인지? 세개다 참일때 실행을 할것인지? 하나이상 참일때 실행을 할것인지?

결과 같에 따른 실행을 필요로 합니다

아래 표를 참고 하고 사용하면 쉬워요

 

-논리 연산자

연산자 이름 사용법 결과
&& 그리고 and 연산자 a && b 모두 참일 때만 참
|| 또는 or 연산자 a || b 하나라도 참이면 참
! 거짓 not 연산자 !a 참은 거짓으로,
거짓은 참으로

첫 if문에서는 시간설정에 대한것이기에 시간, 분, 초가 하나라도 0이상의 숫자가 입력이 되면,

타이머가 실행이 되는것이다

 

If(Hour>0 || Min>0 || Sec>0)

논리연산자 또는 하나라도 참이면 참이다

시간, 분, 초 하나라도 0보다 숫자가 크면 실행이 됩니다

 

loop문은 타이머가 0시간, 0분, 0초가 될때까지 계속 실행을 하는것이다

언제까지 계속 실행을 할것이냐?

loop문 안에 마지막 if문으로 결과 값이 되었을때 까지 하라는 명령을 내리면 된다

마지막 if문은 시간, 분, 초가 모두 0시간, 0분, 0초가 될때 윈도우 종료라는 명령어를 실행 해야하기때문에

&& 그리고 연산자를 사용했습니다

 

Gui, Add, Edit, x20 y5 w60 +Center +Number Limit2 vHourN, 00

다른 부분은 해당되는 v라벨을 시간,  분, 초를 변수로 변경하는 것입니다

Hour=%HourN%
Min=%MinN%
Sec=%SecN%

변수로 선언를 하는 이유는 If문에서 v라벨을 바로 불러오는데 있어서 편하게가 아닌, v라벨을 바로 불러오면 명령어가 먹지 않는 것 때문에 변수로 변경을 해서 사용을 했습니다

 

If문은 간단하게 설명 드리면 초가 00이되면 분이 0이상이면 분이 -1로 차감이 되면서 초가 60로 변환 되어 다시 카운팅

그리고 00초, 00분일때 시간이 0보다 크면, 당연히 시간이 -1 차감이 되어, 분이 60분으로 변환이 되고, 다시 분이 -1 차감되어, 초가 60로 변환이 되라라는 If명령어를 짜봤습니다

 

Else If (Hour<1 && Min<1 && Sec = 0)
goto, WinExit

If문에  마지막 부분은 모든지간이 00이 되었을때 실행 부분입니다

중요한 부분은 빨간색 부분인데요 &&이기 때문에 모두 참일때 실행하라는 명령입니다

시간이 1보다 작고, 분이 1보다 작고, 초가 0이 되면, 다음 명령어를 실행하라 WinExit으로 이동해라

여기서 시간하고 분은 Sec = 0 초처럼 = 0으로 해도 상관은 없습니다

 

Run, cmd shutdown /s /t 1

윈도우 종료 명령어인데요

오토핫키에서 윈도우 종료 명령어를 따로 찾지를 못해서 배치파일를 실행 해서 종료 명령어를 실행했습니다

 

 

 

윈도우종료 초보타이머.exe
1.16MB

파일 다운 받아서 작동법을 확인 할 수 있습니다

 

오른쪽 아래 r2d 티스토리 주소를 클릭하면, r2d 티스토리 사이트로 연결 됩니다.

누구나 만들수 있고 자기가 만들어서 자기가 사용하는 프로그램을 마니마니 업데이트 하려고 합니다

언제든지 마니마니 들려주세요

반응형