2009-05-31 3 views
2

나는 간단한 벽지 체인저를 만들고있어. 그것은 벽지를 변경할 때 작동하지만 나는 벽지의 패턴을 바꿀 수 없습니다. 나는 이것과 같은 것을 시도했지만 작동하지 않는다. :C# 바탕 화면 패턴 변경

SystemParametersInfo(SPI_SETDESKPATTERN, 0, "Center", 
SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE); 

some1은 나에게 벽지 패턴을 설정하는 적절한 방법을 보여 주시겠습니까?

+1

오지 될 것 중심으로/늘어나는 것과/타일 설정을 의미 가정 당신이 얻었거나 당신의 코드에 어떤 잠재적 인 문제라도 있다고 생각한다면 –

+1

나는 틀린 질문을 한 것 같습니다. 나는 벽지 (중앙, 스트레치 등)를 배치하는 방법을 원하지 않았지만 setdeskpattern은 내가 필요로하는 것이 아니다. 나는 그것을 지금 tho하는 방법을 발견했다 :) – Ozzy

+1

그럼 당신은 자신의 질문에 답할 수있어서 미래의 탐구자들은 대답을 찾기 위해 고생 할 필요가 없을 것입니다;) –

답변

3

는 당신이 사람들이 얼마나 멀리 볼 수 있도록 당신은 몇 가지 코드를 게시하는 것은 도움이 될 수있는 두 번째 과거 값 INT 1-3

[DllImport("user32.dll", CharSet = CharSet.Auto)] 
     private static extern Int32 SystemParametersInfo(UInt32 action, UInt32 uParam, String vParam, UInt32 winIni); 
     private static readonly UInt32 SPI_SETDESKWALLPAPER = 0x14; 
     private static readonly UInt32 SPIF_UPDATEINIFILE = 0x01; 
     private static readonly UInt32 SPIF_SENDWININICHANGE = 0x02; 

     private void SetWallpaper(string path) 
     { 
      if (File.Exists(path)) 
      { 
       Image imgInFile = Image.FromFile(path); 
       try 
       { 
        imgInFile.Save(SaveFile, ImageFormat.Bmp); 
        SystemParametersInfo(SPI_SETDESKWALLPAPER, 3, SaveFile, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE); 
       } 
       catch 
       { 
        MessageBox.Show("error in setting the wallpaper"); 
       } 
       finally 
       { 
        imgInFile.Dispose(); 
       } 
      } 
     } 
+0

이 이미지를 bmp로 변환합니까? 기와 같은 것에 대한 나의 해결책은 레지스트리를 편집하는 것이었다. 이 방법이 더 효율적입니까? – Ozzy

+0

나는 당신의 방식이 어떻게 작동하는지 모르겠다. 나는 말할 수 없다. 나는 이것이 잘 작동한다는 것을 알고있다. 파일을 임시 bmp로 저장하는 또 다른 방법이 있습니다. – Crash893

+0

imgInFile 개체를 사용하여이 메서드에서 전송을 수행 한 것 같습니다. – Crash893