在Windows 7中更改壁纸的java代码

时间:2013-06-25 15:44:49

标签: java windows windows-7 wallpaper

我可以使用Java代码更改Windows 7的壁纸吗?

这是我的代码:

public class Changer {
    /**
     * @param args
     */
    public static native int SystemParametersInfo(int uiAction,int uiParam,String pvParam,int fWinIni);

    static
    {
        System.loadLibrary("user32");
    }

    public int Change(String path)
    {
       return SystemParametersInfo(20, 0, path, 0);
    }

    public static void main(String args[])
    {
        String wallpaper_file = "D:\\Photos\\walli\\dream girls\\jes54d.jpeg";
        Changer mychanger = new Changer();
        mychanger.Change(wallpaper_file);
    }
}

Eclipse IDE中的此代码失败。我收到了这个错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: com.changer.Changer.SystemParametersInfo(IILjava/lang/String;I)I
    at com.changer.Changer.SystemParametersInfo(Native Method)
    at com.changer.Changer.Change(Changer.java:18)
    at com.changer.Changer.main(Changer.java:25)

我是Java的新手,无法弄清楚可能的解决方案。

提前致谢。

1 个答案:

答案 0 :(得分:2)

函数调用SystemParametersInfo(20, 0, path, 0)错误。它期待SystemParametersInfo(UINT_PTR uiAction, UINT_PTR uiParam, String pvParam, UINT_PTR fWinIni)

请在此处参阅accepted答案。

您可以从here获取JNA。并参考javadocs here