컴퓨터 커뮤니티


명령어로 윈도우 모니터 '진짜로' 끄기

썸썸 0 203 2020.12.24 19:11

예전에 모니터 끄는 방법을 한글로 검색했더니 아래와 같은 명령어를 바로가기로 추가하라고 안내합니다.

제가 원하는 방법은 잠금 화면으로 진입 후 모니터가 꺼지는 효과와 동일한 효과를 원했죠.

 

%windir%\System32\scrnsave.scr /s

 

파일 보면 눈치챘겠지만 화면보호기로 까만 화면(화면 보호기 속성 -> 빈 화면)이 나올 뿐이죠.

그리고 모니터 램프를 보면 실질적으로 모니터가 꺼지지는 않습니다. 원하던 방식은 아닙니다.

 

그래서 해외에서 실질적으로 모니터를 끄는 스크립트를 검색했더니 역시 실망시키지 않고, 테스트 결과 원하는 대로 동작했습니다.

간단하게 이 한줄을 .bat 파일로 저장하거나

powershell (Add-Type '[DllImport(\"user32.dll\")]^public static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas)::SendMessage(-1,0x0112,0xF170,2)

아래 명령어를 바로가기 추가 명령어로 넣으면 됩니다.

%windir%\system32\cmd.exe /c powershell (Add-Type '[DllImport(\"user32.dll\")]^public static extern int SendMessage(int hWnd, int hMsg, int wParam, int lParam);' -Name a -Pas)::SendMessage(-1,0x0112,0xF170,2)

왜 cmd 명령어냐면, 이 명령어가 배치 파일 문법에 맞춰져 있어서 그렇습니다. 고치기는 귀찮군요 ㅎㅎ.

아무튼 위 명령어를 테스트 해보고 마우스가 움직이지만 않는다면, 조금 있다가 모니터가 꺼집니다.

(왠만한 모니터면 신호가 없다거나 대기 모드로 진입한다는 메시지가 뜨겠죠)

그리고 마우스 움직이서나 아무 키를 누르면 다시 켜집니다. 잠금 화면 진입 시 1분 내외로 모니터가 꺼지는 효과와 동일합니다.

 

스크립트를 보면 악명높은(?) user32.dll 파일이 보일 겁니다. 그렇습니다. 파워 유저나 시스템 개발자라면 알 만한 WINAPI죠.

그래서 bat 스크립트로는 매우 어렵고 고급 시스템 스크립팅이나 개발 방법을 이용해야 합니다.

예를 들면 위처럼 powershell과 .net 의 pinvoke 방식을 쓰거나, 다른 시스템 접근 가능한 개발 방법(C++ 등)을 이용해야죠.

 

아주 좋네요

Comments


Category
State
  • 현재 접속자 88 명
  • 오늘 방문자 513 명
  • 어제 방문자 641 명
  • 최대 방문자 1,229 명
  • 전체 방문자 839,617 명
  • 전체 게시물 32,965 개
  • 전체 댓글수 19 개
  • 전체 회원수 275 명
Facebook Twitter GooglePlus KakaoStory NaverBand