2013-06-25 79 views
0

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

这里是我的代码:

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

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

请参阅accepted这里回答。

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