0

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

    }

来自stackoverflow的代码源

4

1 回答 1

0

假设您发布的代码正是您要使用的代码……您没有包含 SPI 接口的主体。考虑到您没有告诉我们 eclipse 抛出了什么错误,这是在黑暗中拍摄的。如果您需要更具体的帮助,您需要更具体,而不是说您的代码的某些部分是“红色的”。这对我们没有帮助。

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

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

于 2012-07-06T22:21:49.987 回答