2012-07-06 161 views
0

这是我在stackoverflow上找到的。我要寻找一个Java类来改变窗口的墙纸,我在Windows 7如何在java中设置windows壁纸

public class changewallpaper {  
    public static void main(String[] args) { 
     //supply your own path instead of using this one 
     String path = "C:\\Users\\d1j5\\Pictures\\asgardrealmofthegods.jpg"; 
     SPI.INSTANCE.SystemParametersInfo(  
       new UINT_PTR(SPI.SPI_SETDESKWALLPAPER),  
       new UINT_PTR(0),  
       path,   
       new UINT_PTR(SPI.SPIF_UPDATEINIFILE | SPI.SPIF_SENDWININICHANGE)); 
     }  public interface SPI extends StdCallLibrary { 
      //from MSDN article 
      long SPI_SETDESKWALLPAPER = 20;  
      long SPIF_UPDATEINIFILE = 0x01; 
      long SPIF_SENDWININICHANGE = 0x02;  
      SPI INSTANCE = (SPI) Native.loadLibrary("user32", SPI.class, new HashMap<Object, Object>() { 
       {  
        put(OPTION_TYPE_MAPPER, W32APITypeMapper.UNICODE);  
        put(OPTION_FUNCTION_MAPPER, W32APIFunctionMapper.UNICODE);  
        }  });  boolean SystemParametersInfo(  
          UINT_PTR uiAction,  
          UINT_PTR uiParam,   
          String pvParam,  
          UINT_PTR fWinIni 
          ); 
        } 

    } 

source for the code from stackoverflow

+0

问题是什么? – 2012-07-06 21:55:27

+0

好的,你发现了,发生了什么? – Alfabravo 2012-07-06 21:59:00

+0

我没有完成它发布时,但问题是如何,示例代码是来自另一个职位,不适合我的答案。 – jerhynsoen 2012-07-06 22:12:52

回答

0

假设您已经发布的代码正是你正在尝试使用...你什么没有包含SPI接口的主体。这是在黑暗中拍摄的,因为你没有告诉我们日食正在抛出什么错误。如果你想得到更具体的帮助,你需要更具体,而不是说你的代码的某些部分是“红色的”。这对我们没有帮助。

从你发布的stackoverflow链接复制完整的代码,它应该工作。

此外,虽然与您的问题无关,但应将您的类名更改为与Java标准一致。请参阅http://www.oracle.com/technetwork/java/codeconv-138413.html

+0

大声笑,所以它的星期五,我没有复制所有的代码。但它不会改变我的壁纸。它现在的作品...谢谢! – jerhynsoen 2012-07-06 22:31:27