Я хотел изменить мои обои 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)
Я никогда не работал с ЮНОЙ раньше, и я действительно не имею представления о том, что код делает именно , поэтому я не знаю, откуда возникает ошибка.
Я импортировал эти банки в мой путь сборки:
Я надеюсь, что кто-то может мне помочь в поиске решения или дать мне еще один способ изменить мои обои с Java.
Удалено тег groovy, так как это не слишком похоже на groovy. –
Вы должны расширить библиотеку 'User32', предоставленную в' platform.jar', и инициализировать свое отображение в (при условии, что методы, которые вам нужны, еще не существуют в сопоставлении). – technomage