Turn Off Display - 간단한 모니터 끄기 프로그램

 

컴퓨터를 사용하다 보면 잠시 자리를 비울 때가 있습니다. 그럴 때면 간단하게 잠시 모니터만이라도 꺼두는 경우가 많죠. 또는 아예 이러한 경우를 대비해서 윈도우의 전원 관리 옵션에서 디스플레이 끄기 시간을 적절히 설정해두어 자리를 비운 후 일정 시간이 지나면 자동으로 모니터가 꺼지도록 설정해 두는 경우도 흔합니다.

 

그런데 가끔은 윈도우가 자동으로 디스플레이를 끌 때까지 기다리는 게 아니라, 바로 지금 당장 모니터를 꺼서 대기 상태로 만들고 싶을 때도 있습니다. 물론 그럴 땐 모니터 전원 버튼을 눌러서 끄면 되긴 합니다. 하지만 사용 중인 시스템이 노트북이나 태블릿과 같이 디스플레이를 끄는 것이 여의치 않은 기기일 수도 있고, 데스크탑이라고 할 지라도 모니터를 완전히 끄고 돌아와서 다시 켜는 것 자체가 귀찮을 때도 있습니다.

 

지금 즉시! 롸잇 나우!

 

 

Turn Off Display 는 바로 그럴 때 사용하는 프로그램입니다. 이 프로그램은 실행하면 즉시 모니터를 꺼서 대기(절전) 상태 만들어 줍니다. 간단하게 윈도우의 디스플레이 끄기 설정의 즉시 실행 버전이라고 생각하시면 됩니다. 윈도우의 기본 디스플레이 끄기 기능과 마찬가지로 모니터를 대기 모드로 만드는 것이기 때문에 마우스를 움직이는 것과 같이 컴퓨터를 사용하면 모니터는 곧바로 켜지게 됩니다.

 

 

프로그램은 단일 실행 파일로 윈도우 8 이상 사용자를 위한 N4 버전과, 윈도우 7 이하 사용자를 위한 N2 버전이 있습니다. 자신의 윈도우에 맞는 버전을 다운로드 받으셔서 사용하시면 됩니다.

 

블로그 다운로드 [.NET 4.0 기반]

 TurnOffDisplayN4.exe

블로그 다운로드 [.NET 2.0 기반]

 TurnOffDisplayN2.exe

제작캐플(CApple)

 

 

파일을 다운로드 받으신 후 바탕 화면에 두고 사용하시거나, 작업 표시줄 같은 곳에 바로 가기로 고정하여 사용하시는 등 취향에 맞춰 사용하시면 될 듯 합니다. 필요에 의해서 간단하게 만들어 봤는데 다른 분들께도 나름 쓸만할 것 같아서 올려 봅니다. 그럼 잘 사용하세요. ^^

 

※ 다운로드시 아래와 같은 경고 메시지가 출력될 수도 있습니다. 아무런 문제 없는 파일이니 걱정하지 마세요. ^^

 

 

 

 

※ 일반적으로 처음 실행시 <파일 열기 - 보안 경고> 창이 뜨게 됩니다. 이 파일을 열기 전에 항상 확인의 체크를 풀어주시면 앞으로 해당 창이 뜨지 않고 바로 실행됩니다.

 

 

※ 이 프로그램은 VB.NET 으로 제작하였으며, N4 버전은 .NET Framework 4 Client Profile 기반, N2 는 .NET Framework 2.0 기반입니다. 일반적으로 윈도우 8, 윈도우 8.1 사용자는 N4 버전을 윈도우 7 이하 사용자는 N2 버전을 사용하시면 됩니다. 물론 관련 .NET 버전이 설치되어 있으면 아무거나 사용하셔도 상관 없습니다.

 

  - TurnOffDisplayN4 : 윈도우 8 이상 버전 사용자용

  - TurnOffDisplayN2 : 윈도우 7 이하 버전 사용자용

 

 

 

 

 

 

 

Turn Off Display - 소스 설명

 

이 단락은 나중에 제가 참고하기 위해서 남겨두는 겁니다. 제가 프로그래밍 전공도 아니고 완전 쌩초보이기 때문에 코드에 대해서 질문하시면 도움을 드릴 수 없습니다. 아무튼, Turn Off Display 는 VB.NET 을 통해 만들었으며, 참고한 소스는 아래와 같습니다.

 

http://vbcity.com/forums/t/16459.aspx

 

Const WM_SYSCOMMAND = &H112

Const SC_MONITORPOWER = &HF170

 

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

 

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim pow As Integer = Cmonitor(1)

Power on = -1
'Standby = 1
'OFF = 2

End Sub

 

Function Cmonitor(ByVal state As Integer) As integer

Dim power As Integer = SendMessage(Me.Handle.ToInt32, WM_SYSCOMMAND, SC_MONITORPOWER, state)

End Function

 

 

간단하게 디스플레이를 끄는 것은 윈도우의 User32.dll 라이브러리에서 함수로 제공되고 있고, API 호출을 통해 디스플레이를 제어할 수 있는 듯 합니다. 위의 소스에서 필요한 건 모니터를 끄는 것뿐이니 간략하게 아래와 같이 프로그램을 실행하면 폼을 로드하자마자 바로 모니터를 끄고 프로그램을 종료하도록 코드를 단순화시켰습니다.

 

Public Class Form1

 

Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hWnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer

 

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

SendMessage(Me.Handle.ToInt32, &H112, &HF170, 2)
End

End Sub

 

End Class

 

* 모니터 끄기 = (Handle, 0x0112, 0xF170, 2)

 

 

 

이상입니다.

 


[출처] http://cappleblog.co.kr/596

'프로그래밍 유틸' 카테고리의 다른 글

로켓독 (RocketDock) 설치 및 사용법 - PC방 바탕화면처럼 깔끔하게!  (0) 2015.11.20
MySQL 접속, 관리 프로그램  (0) 2015.11.06
Fiddler  (0) 2015.10.10
EditPlus 3  (0) 2015.10.10
Search Everything  (0) 2015.10.10
블로그 이미지

532

처음 프로그래밍을 시작한 개발자들은 Hello World!를 기억 할 것이다. Hello world가 Hell World가 될 줄 몰랐던 한 개발자의 이야기. 게시글의 출처를 표기하며, 출처를 남기지 않고 펌을 하는것에 대해 법적 책임을 묻지 않습니다.

,