2010-01-06 3 views
4

나는 바탕 화면 배경 무늬를 변경하는 방법을 알아 냈습니다. (인터넷에 수십 가지 예가 있습니다.)벽지가 변경되면 어떻게 감지하나요 (Windows XP 이상)?

여전히 한 가지 분명한 사실은 벽지가 변경되었을 때 어떻게 감지합니까? (디스플레이 제어판이나 다른 프로그램을 변경한다고 가정하십시오.)

+0

어떤 프로그래밍 언어/환경입니까? .그물? MFC? Win32? –

답변

4

다음은 C#에서 배경 화면을 검색하는 예입니다. 추가 할 필요가있는 것은 마지막 배경 화면을 저장하고 그것이 다른지 확인하기위한 몇 가지 추가 코드입니다. 이 값이 변경된 경우 확인하기는 Win32 API RegNotifyChangeKeyValue 기능을 사용할 수있는 비 .NET 언어로 무언가를 작성한다면

RegistryKey wallpaper = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop",false); 
string wallpapername = wallpaper.GetValue("wallpaper").ToString();   
wallpaper.Close(); 

:

HKEY_CURRENT_USER\Control Panel\Desktop\Wallpaper 
7

은 WM_SETTINGCHANGE에 대한 메시지 처리기를 추가, .NET의 SystemEvents.UserPreferenceChanged. 벽지가 여전히 동일한 지 확인하십시오.

+0

그것은'WM_SETTINGCHANGE'이지만, 그렇습니다. 이것은 통보받는 좋은 방법이라고 말할 수 있습니다. –