본문 바로가기
Study/MFC

화면 보호기 설정(Screensaver) MFC, API

by 뿡뿡대마왕 2013. 7. 17.
반응형

 

화면 보호기 설정 방법 ~~~ !슈퍼맨

코드로 화면보호기를 설정하는 방법을 공유합니다.~~

코드로 화면 보호기 설정 셋팅해야 하는 일이 생겨 확인해 보니 간단하게 처리 할 수 있는 방법이 있기에

메모해 둡니다...워낙 머리가 안좋아서..ㅠㅠ

 

SystemParametersInfo 라는 함수를 쓰면 되는데 이 함수의 정의는

Syntax

BOOL WINAPI SystemParametersInfo(
  _In_     UINT uiAction,
  _In_     UINT uiParam,
  _Inout_  PVOID pvParam,
  _In_     UINT fWinIni
);

 

헐...이거에 대한 파라미터 설명을 붙여 넣으려 했지만 뭐이리..양이 많어..

url: http://msdn.microsoft.com/en-us/library/windows/desktop/ms724947(v=vs.85).aspx

보고 싶은 사람은 가서 확인하면 될듯..

 

자 이제 실질적인 코드를 보자면

1. 화면보호기가 설정되어 있는가?BOOL bVal = FALSE;
 SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, &bVal, 0) 

 -> bVal값이 TRUE : 화면보호기 설정됨

-> bVal값이 FALSE: 화면보호기 사용안함

 

2. 화면보호기 활성화

SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, TRUE, 0, 0)

 ->이렇게 화면 화면보호기가 활성화됨

3. 화면보호기 시간 설정

->화면 보획 설정을 30분으로 설정시

DWORD dwTime = 30  * 60; //60을 곱한이유는 분단위로 변환해서 넣을려고, 기본적으로 화면보호기 설정은 분단위로 설정 

SystemParametersInfo(SPI_SETSCREENSAVETIMEOUT, dwTime, NULL, 0)

 

4. 만약 화면보호기 설정에 아예 없음으로 설정되어 있다거나 아예 화면보호기를 '없음' 으로 설정하는 방법

-> 화면보호기가 '없음' 으로 설정되어 있어서 위 방법대로 처리해도 화면보호기를 구동할 수 없을 경우

    default값으로 화면 보호 설정파일을 셋팅해 줄 수 있다.

   이는 레지스트리에 값을 변경하므로 가능하다.

 HKEY_CURRENT_USER\\Control Panel\\Desktop에 가서 ,SCRNSAVE.EXE가 존재하면 화면보호기로 설정한

테마가 있는 것이고 아예 SCRNSAVE.EXE 값이 존재하지 않는다면 화면보호기 설정에서 화면보호기를 '없음' 으로

설정한 상태이다.

따라서 화면보호기가 '없음' 상태에서 벗어나기 위해서는 SCRNSAVE.EXE 값을 만들어 주고(value 타입은 REG_SZ)

그안에 화면보호기 파일을 값을 셋팅해 주면된다.

일반적으로 화면보호기 파일은 확장자가 src파일로 system32폴더 내에서 가면 기본적인 것들이 존재하는데

Bubbles.scr  이나 Ribbons.scr 등 기본적이것들로 레지스트리 에 저 파일 경로를 넣어주면 설정된다.

반대로 화면 보호기를 '없음' 으로 하기 싶으면 저 레지 파일을 삭제 하면 된다...

 

정보는 공유 되어야 한다 쭈욱~~~~!멍2

 

 

 


 

반응형

댓글