2012-07-06 61 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