如何在java中设置windows墙纸

如何在java中设置windows墙纸,java,Java,这是我在stackoverflow上找到的。我正在寻找一个java类来为我在Windows7中更改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\\a

这是我在stackoverflow上找到的。我正在寻找一个java类来为我在Windows7中更改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 
                            );   
                    }

    }
公共类更改壁纸{
公共静态void main(字符串[]args){
//提供您自己的路径,而不是使用此路径
String path=“C:\\Users\\d1j5\\Pictures\\asgardrealmofthegoods.jpg”;
SPI.INSTANCE.SystemParametersInfo(
新UINT_PTR(SPI.SPI_Setdesk壁纸),
新UINT_PTR(0),
路径
新UINT_PTR(SPI.SPIF_UPDATEINIFILE | SPI.SPIF_sendwinichange));
}公共接口SPI扩展StdCallLibrary{
//来自MSDN文章
长SPI_SETDESKWALLPAPER=20;
长SPIF_UpdateInFile=0x01;
长SPIF_sendwinichange=0x02;
SPI实例=(SPI)Native.loadLibrary(“user32”,SPI.class,new HashMap(){
{     
put(选项类型映射器,w32 pitypemapper.UNICODE);
put(选项函数映射器,W32APIFunctionMapper.UNICODE);
}});布尔系统参数sinfo(
行动,
UINT_PTR uiParam,
字符串pvParam,
乌恩图夫维尼尼酒店
);   
}
}

假设您发布的代码正是您试图使用的代码。。。您还没有包括SPI接口的主体。考虑到你没有告诉我们eclipse抛出了什么错误,这是一个冒险。如果你想要更具体的帮助,你需要比说代码的某些部分是“红色”更具体。这对我们没有帮助

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


另外,虽然与您的问题无关,但您的类名应该更改为与Java标准一致。请看

好的,你发现了,发生了什么事?发布时我还没有完成,但问题是如何完成,示例代码是另一篇文章的答案,对我来说不起作用。可能是重复的:哈哈,这是一个星期五,我没有复制所有的代码。但是它不会改变我的壁纸。它现在起作用了。。。谢谢