0

これは私がstackoverflowで見つけたものです。Windows 7 で Windows の壁紙を変更するための Java クラスを探しています。

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インターフェースの本体を含めていません。どのエラー日食がスローされているかを教えてくれなかったことを考えると、これは暗闇の中でのショットです。より具体的なヘルプが必要な場合は、コードの一部が「赤」であると言うよりも具体的にする必要があります。それは私たちを助けません。

投稿したstackoverflowリンクから完全なコードをコピーすると、機能するはずです。

また、問題とは関係ありませんが、Java標準と一致するようにクラス名を変更する必要があります。http://www.oracle.com/technetwork/java/codeconv-138413.htmlを参照してください

于 2012-07-06T22:21:49.987 に答える