最近剛好在整理一些漂亮的電腦桌布,
雖然 Windows 有隨機桌布功能,
但只能選一個目錄, 且沒有包含子目錄內的檔案, 也沒有過濾功能,
就乾脆自己寫個 Java Application 透過 JNA (Java Native Code Access) 來滿足以上需求,
點選此處: 下載 JNA Sample Code (裡面包含 jna.jar 檔案)
設定桌布的基本範例, 參考如下 :
程式碼
import java.util.HashMap; import com.sun.jna.Native; import com.sun.jna.win32.StdCallLibrary; import com.sun.jna.win32.W32APIFunctionMapper; import com.sun.jna.win32.W32APITypeMapper; public class HelloTomKuo { // -------------------- // 以下這段程式碼很重要 // -------------------- private 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
點選此處: 上述範例, 參考 Stack Overflow 討論 JNA 設定桌布的相關資訊.
可以將這個基本範例改良後, 就可以實現自身的桌布需求了.