最近剛好在整理一些漂亮的電腦桌布,
雖然 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 設定桌布的相關資訊.
可以將這個基本範例改良後, 就可以實現自身的桌布需求了.
