Projet gus05 de développement Java
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le deal à ne pas rater :
Disque dur SSD CRUCIAL P3 1 To (3D NAND NVMe PCIe M.2)
65.91 €
Voir le deal

Changer le wallpaper avec JNA

Aller en bas

Changer le wallpaper avec JNA Empty Changer le wallpaper avec JNA

Message  Gus Mer 19 Déc - 16:45

Et voici comment changer le fond d'écran de votre Windows avec JNA. Ca ressemble au code source du post précédent sauf qu'on passe directement une String pour le paramètre pvParam de la méthode SystemParametersInfo (alors qu'on était contraint de passer un pointeur dans le cas précédent).

Code:
    private void change(File path)
   {
      User32_set.INSTANCE.SystemParametersInfo(
            new UINT_PTR(User32_set.SPI_SETDESKWALLPAPER),
            new UINT_PTR(0),
            path.getAbsolutePath(),
            new UINT_PTR(User32_set.SPIF_UPDATEINIFILE | User32_set.SPIF_SENDWININICHANGE));
   }
   
    public interface User32_set extends StdCallLibrary
    {
      long SPI_SETDESKWALLPAPER = 0x14;
      long SPIF_UPDATEINIFILE = 0x01;
      long SPIF_SENDWININICHANGE = 0x02;
      
      User32_set INSTANCE = (User32_set) Native.loadLibrary("user32", User32_set.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);
   }
Gus
Gus
Admin

Messages : 249
Date d'inscription : 01/09/2009

http://www.gus05.com

Revenir en haut Aller en bas

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum