Selon the documentation pour la fonction SystemParametersInfo
et SPI_SETMOUSE
:
Définit les deux valeurs de seuil de la souris et de l'accélération de la souris. Le paramètre pvParam
doit pointer vers un tableau de trois entiers qui spécifie ces valeurs. Voir mouse_event pour plus d'informations.
Vous avez donc besoin d'un tableau contenant 3 valeurs, et que vous spécifiez un pointeur sur ce tableau comme paramètre pvParam
lors de l'appel SystemParametersInfo
. Comme tout ce qui vous intéresse est de changer l'accélération (la dernière valeur), vous voulez probablement conserver les valeurs actuelles pour les deux premières valeurs de seuil de la souris. Pour ce faire, appelez le SystemParametersInfo
avec le drapeau SPI_GETMOUSE
pour obtenir ces valeurs, puis modifiez le dernier (l'accélération), puis appelez SystemParametersInfo
à nouveau, cette fois avec le drapeau SPI_SETMOUSE
.
Exemple de code (sans vérification d'erreur recommandé):
// Turns mouse acceleration on/off by calling the SystemParametersInfo function.
// When mouseAccel is TRUE, mouse acceleration is turned on; FALSE for off.
void SetMouseAcceleration(BOOL mouseAccel)
{
int mouseParams[3];
// Get the current values.
SystemParametersInfo(SPI_GETMOUSE, 0, mouseParams, 0);
// Modify the acceleration value as directed.
mouseParams[2] = mouseAccel;
// Update the system setting.
SystemParametersInfo(SPI_SETMOUSE, 0, mouseParams, SPIF_SENDCHANGE);
}
Et vous le savez probablement déjà, mais il y a trop d'applications mal comportés là-bas pour moi de ne pas en parler au cas où. Si vous faites cela dans votre application, assurez-vous de sauvegarder la valeur d'origine afin de pouvoir la restaurer lorsque votre application est fermée! Ceci est juste l'étiquette de base lorsque vous modifiez les paramètres à l'échelle du système.
Quelqu'un a-t-il vérifié si le réglage des valeurs de seuil fait une différence? J'ai essayé de les modifier et je ne remarque aucun changement dans la façon dont le curseur bouge. – GetFree