J'ai essayé de résoudre le problème des curseurs Windows. J'ai réussi à faire correspondre les valeurs du registre aux noms donnés aux différents types de curseurs dans la boîte de dialogue Propriétés de la souris (celle à laquelle on accède via le Panneau de configuration).
Par exemple, ce que le registre appelle le curseur "AppStarting", la boîte de dialogue Propriétés de la souris l'appelle le curseur "Working In Background", etc.
Là où j'ai des difficultés, c'est lorsque j'utilise Java pour définir ces curseurs, car pour beaucoup d'entre eux, il ne semble pas y avoir de constante. Dans Cursor.java, les différents curseurs sont définis :
public static final int DEFAULT_CURSOR = 0;
public static final int CROSSHAIR_CURSOR = 1;
public static final int TEXT_CURSOR = 2;
public static final int WAIT_CURSOR = 3;
public static final int SW_RESIZE_CURSOR = 4;
public static final int SE_RESIZE_CURSOR = 5;
public static final int NW_RESIZE_CURSOR = 6;
public static final int NE_RESIZE_CURSOR = 7;
public static final int N_RESIZE_CURSOR = 8;
public static final int S_RESIZE_CURSOR = 9;
public static final int W_RESIZE_CURSOR = 10;
public static final int E_RESIZE_CURSOR = 11;
public static final int HAND_CURSOR = 12;
public static final int MOVE_CURSOR = 13;
Mais, après quelques tests, il y a plusieurs valeurs de registre auxquelles aucune d'entre elles ne correspond. Par exemple, les entrées de registre 'App Starting', 'Help', 'No', 'NWPen', 'Person', 'Pin' et 'UpArrow' n'ont aucune définition correspondante (et il ne s'agit pas seulement des ints après 13 ; j'ai eu une violation lorsque j'ai utilisé 14 comme valeur).
Plus surprenant encore, la valeur "Hand" du registre ne correspond pas réellement à la valeur HAND_CURSOR. La définition d'un nouveau curseur pour la définition HAND_CURSOR ne modifie pas la valeur stockée dans le registre pour la clé "Hand".
Alors comment puis-je définir, par exemple, la valeur du curseur AppStarting en utilisant Java ?
Info : Windows 10 64-bit jdk1.8.0_151