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

10초 카초운팅 후 모니터 화면끄기 코딩 만들어 사용하기

by r2d 2023. 11. 30.

앞서서 만든 모니터 화면 바로끄기를 할때, 가끔 마우스 흔들림으로 인한 모니터가 다시 켜지는 현상이 생겨버렸습니다

이놈의 수전증.. 그래서 10초 카운팅후 모니터가 꺼지게 업그레이드를 해봤습니다

따라서 만드실떄 10초가 길면 3초, 5초 바꿔서 코딩하시고, 10초 카운팅 모니터 화면끄기를 시작합니다

 

 

 

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

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

r2dme.tistory.com

 

모니터 화면끄기 구성 미리보기

역시 소스는 어렵지 않아서 처음부터 만들어도 되고, 전에 만들었던 코드에 수정/추가만 해도 됩니다

디자인은 건드리지 않고, 코드에 추가 업데이트만 하였습니다

오토핫키 프로그램을 만들면서 이렇게 한가지를 만들어서 종종 다른경우로 이런식으로도 생각해서 만들수 있다라는 방식으로 업데이트를 많이 하려고 합니다

 

종종 놀러와주세요~!~

자~ 시작합니다~!~

 

디자인 레이아웃은 그대로 가져와서 너무 큰듯 하여, 많은 차이는 없지만 버튼 사이즈와 전체 사이즈만 약간 줄였습니다

디자인은 어디까지나 개인의 몫이니 코드에 집중 해주시고, 하다 보면 자신도 모르게 x좌표, y좌표 옮겨 가며, 레이아웃을 하고 있는 자신을 보고 있을 겁니다^^

 

코딩소스

Gui, Font, S15
Gui, Add, Button, x100 y100 w200 h100 vbtn Default gbtn, 확인
Gui, Font

Gui, Font, S15 Bold cFF0000 ;RGB
Gui, Add, Text, Center x2 y30 w400 h20 vLog0, 모니터 화면을 끄고,
Gui, Add, Text, Center x2 y50 w400 h20 vLog00, 프로그램은 자동 종료 됩니다.
Gui, Font

Gui, Show, xCenter yCenter w400 h250, 모니터 화면끄기
return

btn:
 Sleep, 10000
 PostMessage, 0x112, 0xF170, 2,, Program Manager
 ExitApp
return

GuiClose:
ExitApp

 

여기에서 추가된 아주 쉬운 명령어 한가지가 추가 되었습니다.

Sleep이라는 명령어 인데요

프로그램이 명령어를 받아 실행하는 중간에 잠깐만 쉬었다 가라는 명령어입니다

저 레드같은 경우 때로는 중간에 명령어가 잘 실행 되고 있는지 중간중간 너무빠르게 넘어갈때 천천히 실행되게 하여,눈으로 확인할때나, 어떤창을 띄울때 창이 뜨는 시간을 기다릴때도 종종 사용합니다

 

btn: 버튼 명령어에 보면,  Sleep 명령어가 들어가 있는데,  버튼을 눌렀을때 잠깐 쉬었다가 다음줄에 있는 명령어를 실행하라라고 합니다

 

Sleep, 10000은 오토핫키에서는 1초를 Sleep명령어 1000으로 되어 있습니다

그러므로 10초를 딜레이 시켜서 모니터을 끄고 싶으니, 1000에 x10을 해서 10000을 해주면 됩니다

버튼을 눌러서 실행을 해보면 아무 반응이 없을 겁니다

하지만 버튼을 누르고 기다리고 있으면, 프로그램은 10초 카운팅을 시작했고 10초뒤에 모니터는 꺼집니다

그래서 다음으로 넘어가서 부록을 준비 해봤습니다

 

 

부록 - 추가 코드소스

여기서 하나더 기교를 한번더 부려서 카운팅 화면을 만들어 보겠습니다

그런데 기교를 부리기 위해서는 노가다가 필요합니다

그 노가다가 어렵지 않고, 그냥 복사/붙여넣기 하면됩니다

 

 

이제는 버튼을 누르면 10초 카운팅화면으로 넘어가 숫자가 카운팅 되게 됩니다

그러면 프로그램이 작동을 하는구나 하는 느낌과 언제 다음 명령어가 실행이 되서 모니터가 꺼지는지 알수 있습니다

 

 

Gui, Font, S15
Gui, Add, Button, x100 y100 w200 h100 vbtn Default gbtn, 확인
Gui, Font

Gui, Font, S15 Bold cFF0000 ;RGB
Gui, Add, Text, Center x2 y30 w400 h20 vLog0, 모니터 화면을 끄고,
Gui, Add, Text, Center x2 y50 w400 h20 vLog00, 프로그램은 자동 종료 됩니다.
Gui, Font
Gui, Font, S100 cFF0000 ;RGB
Gui, Add, Text, Center x2 y70 w400 h140 vLog10, 10
Gui, Add, Text, Center x2 y70 w400 h140 vLog9, 9
Gui, Add, Text, Center x2 y70 w400 h140 vLog8, 8
Gui, Add, Text, Center x2 y70 w400 h140 vLog7, 7
Gui, Add, Text, Center x2 y70 w400 h140 vLog6, 6
Gui, Add, Text, Center x2 y70 w400 h140 vLog5, 5
Gui, Add, Text, Center x2 y70 w400 h140 vLog4, 4
Gui, Add, Text, Center x2 y70 w400 h140 vLog3, 3
Gui, Add, Text, Center x2 y70 w400 h140 vLog2, 2
Gui, Add, Text, Center x2 y70 w400 h140 vLog1, 1
Gui, Add, Text, Center x2 y70 w400 h140 vLog11, 0
Gui, Font
 
GuiControl, hide, Log10
GuiControl, hide, Log9
GuiControl, hide, Log8
GuiControl, hide, Log7
GuiControl, hide, Log6
GuiControl, hide, Log5
GuiControl, hide, Log4
GuiControl, hide, Log3
GuiControl, hide, Log2
GuiControl, hide, Log1
GuiControl, hide, Log11

Gui, Show, xCenter yCenter w400 h250, 모니터 화면끄기
return

btn:
 GuiControl, hide, Log0
 GuiControl, hide, Log00
 GuiControl, hide, btn
 GuiControl, hide, btn2
 GuiControl, Show, Log10
 Sleep, 1000
 GuiControl, Show, Log9
 Sleep, 1000
 GuiControl, Show, Log8
 Sleep, 1000
 GuiControl, Show, Log7
 Sleep, 1000
 GuiControl, Show, Log6
 Sleep, 1000
 GuiControl, Show, Log5
 Sleep, 1000
 GuiControl, Show, Log4
 Sleep, 1000
 GuiControl, Show, Log3
 Sleep, 1000
 GuiControl, Show, Log2
 Sleep, 1000
 GuiControl, Show, Log1
 Sleep, 1000
 GuiControl, Show, Log11
 Sleep, 1000
 PostMessage, 0x112, 0xF170, 2,, Program Manager    ; 2는 모니터 끔,
 ExitApp
return

GuiClose:
ExitApp

 

전에 만들었더 모니터 화면끄기에서 필요없던 소스가 v라벨이었는데, 여기서 v라벨을 사용하게 됩니다

여기서 v라벨은 해당 글씨나 버튼을 hide, show로 보였다 숨겼다를 목적으로 사용하게됩니다

 

Gui, Add, TextCenter x2 y70 w400 h140 vLog110

Gui, Add, Text 텍스트를 만든다, 생성한다

Center 말그대로 가운데 정렬입니다

x2 y70 가로, 세로 위치 할곳 정하기

w400 h140 글씨 사이즈는 font 명령어로 글씨 크기를 크게하면 글씨가 짤려서 나오기 때문에 너비와, 높이를 설정합니다

vLog11 여기서 추가한 v라벨 입니다 v(변수) 입력하면 됩니다

0은 이름이니 10, 9.....2,1,0 카운팅에 보여줄 이름을 넣으면 됩니다

복사해서 10개를 만들고 이름은 0부터 10까지 넣어주고, 주의 할점은 v라벨도 이름을 틀리게 0부터 지정을 합니다

 

그리고 메인화면에 GuiControl 명령어를 추가 해줍니다

위에 텍스트나 버튼을 추가할때 맨앞에 Gui라고 꼭 기입을  하게 된는데,,

이거는 그냥 봐도 Graphic User Interface 인같네요 (그냥 레드는 디자인 공부를 좀 했습니다)

GuiControl은 앞에 만든 텍스트나 버튼을 추가 명령어를 부여하여 업데이트 한다고 보면 됩니다

 

GuiControlhideLog11

GuiControl 명령어는 gui를 수정/변경에 대한 추가 명령 이라고 보면 됩니다

hide 숨겨라

Log11에 대한 v라벨 변수를 가지고 있는 놈을 찾아라

 

그리고 btn: 버튼 명령어에 먼가 길게 또 노가다가 되어있습니다

메인에서는 텍스트와, 버튼이 보여지고 로그변수들은 hide로 숨겨놨었습니다

그리고 버튼을 클릭하게 되면, 메인에 있던 텍스트와 버튼은 hide로 숨기고,

Sleep을 1000씩 1초 쉬고 로그변수를 10부터 0까지  하나씩 show로 보여지게 됩니다

쉽게 이해 했으리라 생각하고 버튼을 눌러보세요

 

이제 버튼을 누르면 10초 카운팅이 들어가고, 10초가 지나 0이 되면 다음 명령어인 모니터 화면 끄기가 실행이 됩니다

 

다른 방법으로는 if문을 이용하여,  x=10에서 x를 -1하여 0까지 되게 하는 방법도 있습니다

if문 인터넷 검색 하면 쉽게 찾을 수 있습니다

if문은 추후에 사용할때 다시 설명 드리겠습니다

 

그리고 Loop문은 뒤에 숫자를 붙여 몇번 반복해라로써 1초씩 10번 반복해라 라고 하면 됩니다

Loop 10 { Sleep, 1000 }를 하게 되면, 간단하게 sleep 1초를 10번만 반복하고 다음 명령어로 실행해라 입니다

하지만 이렇게 하면 처음 만들었던 버튼 누르면 카운팅만 되고, 카운팅 숫자는 보이지 않기 때문에

변수를 사용하여 Loop문 안에 Sleep명령어 다음줄에 log11부터에 대한 변수와 -1 이라는 함수를 넣어줘야 합니다

코드가 길지 않아 지금 것으로도 충분하니, 현재는 그냥 넘어가고 추후에 만들어 올릴지 아니면,

다른 프로그램을 만들면서 Loop문을 사용할 기회가 만을 것 같습니다

 

 

 

 

모니터 화면끄기_카운팅.exe
0.79MB

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

 

 

 

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

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

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

반응형