정확히 말하자면 SHELLDLL_DefView 에 명령 넣기.

 

 

 

 

 

procedure 바탕화면_바꾸기(이미지파일: String; 바둑판형식: Boolean);
const 바탕화면_복구 = 29699;

var
  Reg: TRegIniFile;
  바탕화면_핸들: HWND;

 

begin
  // 레지스트리에 바탕화면에 대한 항목 세팅
  Reg := TRegIniFile.Create('Control Panel');
  Reg.WriteString('desktop', 'Wallpaper', 이미지파일);
  if 바둑판형식 then Reg.WriteString('desktop', 'TileWallpaper', '1')
  else               Reg.WriteString('desktop', 'TileWallpaper', '0');

 

  // 바탕화면 변경 메세지 보냄
  바탕화면_핸들:=FindWindow('ExploreWClass', nil);
  if 바탕화면_핸들=0 then 바탕화면_핸들:=FindWindow('CabinetWClass', nil);
  바탕화면_핸들:=FindWindowEx(바탕화면_핸들, 0, 'SHELLDLL_DefView', nil);
  SendMessage(바탕화면_핸들, WM_COMMAND, 바탕화면_복구, 0);
end;

 

 

 

 

 

 

출처: http://www.4eb.kr

 

 

 




Posted by bloodguy
,