Comportement étrange de l'événement mousemove

cs_User8 Messages postés 30 Date d'inscription jeudi 24 juillet 2008 Statut Membre Dernière intervention 13 novembre 2012 - 13 nov. 2012 à 11:51
korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 - 17 nov. 2012 à 18:06
Bonjour,

je viens de constater un comportement étrange lorsqu'on exécute une application en debug avec un point d’arrêt dans un événement mousemove. L'événement est exécuté en boucle même si la souris ne bouge pas.

Pour le reproduire :
- Créer une application avec juste un TMemo en alignement client sur la fiche principale.
- Ajouter un événement MouseMove sur le mémo contenant la ligne suivant :
Memo1.Lines.Append(Format('line %d: x %d y %d', [memo1.Lines.Count+1,x,y]));

- Exécuter normalement ---> les déplacements de la souris sont affichés normalement. Si la souris s’arrête, le log s’arrête!
- Maintenant rajouter un point d’arrêt dans le mousemove. Vous pouvez décocher l'actions 'arrêter' dans les options avancées du point d’arrêt.
- Exécuter en debug --> On peut voir que même si la souris est immobile, l'événement onmousemove est appelé en boucle.

Quelqu'un a-t-il déjà constaté et trouvé une explication à ce comportement qui peut être problématique dans certains cas?
j'ai regardé un peu sur la toile mais je ne trouve rien.

Est-il possible que le point d’arrêt bloque la propagation du message? Le message est il relancé tant qu'il n'est pas correctement interprété?

Merci.

23 réponses

korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
16 nov. 2012 à 21:05
utilisation préférable de nil en 3ème paramètre :

SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, nil, SPIF_SENDWININICHANGE);
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
17 nov. 2012 à 12:21
Toujours aussi rapide et efficace !
MERCI, Korgis.


En fait, j'étais persuadé que cette API n'existait pas et que Windows interdisait cette manip.

Tout le monde peut donc utiliser un petit utilitaire pour éviter l'écran de veille sur son poste de travail, ne serait-ce que pour ne pas avoir à re-saisir son mot de passe à chaque fois.
Mais je trouve que cela peut poser un grave problème de sécurité dans des domaines ou la confidentialité est sensible (banques, santé, défense...), et même dans le commerce, tout simplement.

Je me demande même si l'utilisation d'un tel utilitaire ne peut pas constituer un motif de licenciement pour faute grave.
0
korgis Messages postés 420 Date d'inscription samedi 17 mai 2003 Statut Membre Dernière intervention 6 mai 2019 17
17 nov. 2012 à 18:06
Mais je trouve que cela peut poser un grave problème de sécurité dans des domaines ou la confidentialité est sensible (banques, santé, défense...), et même dans le commerce, tout simplement

Oui, ça pourrait.
Reste à voir si on peut faire appel à cet API avec des droits restreints.
Après, c'est à chaque entreprise d'appliquer ses propres règles de sécurité.
Si quelqu'un qui a des connaissances avancées en administration réseau peut nous éclairer
0
Rejoignez-nous