2016-02-21 7 views
0

Я хотел изменить мои обои Windows с помощью Java и искать в Интернете решение. If found this code on StackOverflow.Изменение Windows 10 Обои в Java

import java.util.HashMap; 

import com.sun.jna.Native; 
import com.sun.jna.platform.win32.WinDef.UINT_PTR; 
import com.sun.jna.win32.*; 

public class WallpaperChanger { 
    public static void main(String[] args) { 
     //supply your own path instead of using this one 
     String path = "D:\\stone.png"; 

     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; 

     @SuppressWarnings("serial") 
     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 
     ); 
    } 
} 

Но это не работает для меня, я получаю эту ошибку:

Exception in thread "main" java.lang.NoSuchMethodError: com.sun.jna.IntegerType.(IJZ)V at com.sun.jna.platform.win32.WinDef$UINT_PTR.(WinDef.java:566) at de.dogyman.bc.main.WallpaperChanger.main(WallpaperChanger.java:15)

Я никогда не работал с ЮНОЙ раньше, и я действительно не имею представления о том, что код делает именно , поэтому я не знаю, откуда возникает ошибка.

Я импортировал эти банки в мой путь сборки:

JNA Platform

JNA

Я надеюсь, что кто-то может мне помочь в поиске решения или дать мне еще один способ изменить мои обои с Java.

+0

Удалено тег groovy, так как это не слишком похоже на groovy. –

+0

Вы должны расширить библиотеку 'User32', предоставленную в' platform.jar', и инициализировать свое отображение в (при условии, что методы, которые вам нужны, еще не существуют в сопоставлении). – technomage

ответ