Puis-je changer mon fond d'écran Windows par programmation en Java/Groovy?
Est-il une manière que je peux utiliser Java (ou Groovy) pour changer mon fond d'écran sous Windows XP? J'ai un programme qui crée une nouvelle image chaque jour (ou chaque fois) et je voudrais un moyen de mettre à jour automatiquement mon bureau.
J'ai semblent quelques questions sur ce site à propos de C++ ou .NET, mais je n'ai pas vu quelque chose de spécifique à Java.
OriginalL'auteur Matt N | 2011-01-20
Vous devez vous connecter pour publier un commentaire.
Désolé, je suis un peu en retard @ataylor de répondre parce que je préparais un extrait de le faire. Oui, JNA est une bonne approche. Ici, vous allez:
Vous devez avoir la JNA des bibliothèques sur le chemin de la classe pour que cela fonctionne. Cela a été testé sous Windows 7, il pourrait y avoir quelques nuances dans XP, mais je pense que cela devrait fonctionner. Cette API est probablement stable.
Références
Modifier (2010/01/20):
Auparavant, j'avais omis les options
SPIF_UPDATEINIFILE
etSPIF_SENDWININICHANGE
. Ces sont maintenant utilisés comme ils ont été proposées dans la Coding4Fun article MSDN.Edit: mon problème n'était pas la fermeture du fichier de sortie avant de la définir comme fond d'écran!
Vous devez télécharger le platform.jar en plus jna.jar. Qui aura UINT_PTR. Vous pouvez trouver les dernières versions des deux ici.
Je sais que c'est vieux, mais j'obtiens une erreur:
The method loadLibrary(String, Class<WallpaperChanger.SPI>, new HashMap<Object,Object>(){}) is undefined for the type Native
Ce JNA version est-ce à l'aide de, et si plus de 4.1.0, où puis-je trouver un téléchargement pour cela?changement de type HashMap de
new HashMap<Object, Object>()
ànew HashMap<String, Object>
. Aussi, sa ne fonctionne pas pour mon image. La pensée de son travail par défaut l'image de ce qui est mentionné.OriginalL'auteur Mark Peters
Vous pouvez le faire plus facile:
Son travail avec par défaut mentionné image. Mais sa ne fonctionne pas avec mon image, Même si mon fichier existe à l'emplacement donné.
OriginalL'auteur Andrey
Vous pouvez écrire un fichier de commandes pour changer le papier peint, et exécuter ce fichier de commandes à l'aide,
Runtime.getRuntime.exec()
Merci pour l'affichage. Cela a parfaitement fonctionné pour moi, même si aucun de la JNA exemples a fonctionné pour moi (malgré l'absence d'erreurs figurant, pas de papier peint des modifications ont été apportées...).
OriginalL'auteur Eternal Noob
La JNA bibliothèque java vous permet d'appeler facilement appels Win32 API. En particulier, pour changer l'arrière-plan du bureau, vous devez appeler le SystemParametersInfo fonction.
Prendre un coup d'oeil à cet article pour une introduction à la JNA: http://today.java.net/article/2009/11/11/simplify-native-code-access-jna
OriginalL'auteur ataylor