Comment simuler une touche (ctrl) maintenue enfoncée alors qu'un autre code est exécuté? Quelle serait la mise en œuvre de la méthode suivante?Simulation de l'événement keydown
self ctrlDownWhile: [self doSomething]
Comment simuler une touche (ctrl) maintenue enfoncée alors qu'un autre code est exécuté? Quelle serait la mise en œuvre de la méthode suivante?Simulation de l'événement keydown
self ctrlDownWhile: [self doSomething]
Vous pouvez essayer de "tromper" l'état d'entrée en modifiant son état "ctrlDown". Les mauvaises nouvelles est qu'il ne dispose pas d'un setter méthode pour y accéder (peut-être que dans ma version), donc vous pouvez avoir à y arriver avec un truc:
ctrlDownWhile:aBlock
"aBlock will see ctrlDown as true"
|indexOfCtrlState|
indexOfCtrlState := InputState allInstVarNames indexOf:'ctrlState'.
InputState default instVarAt:indexOfCtrlState put:1.
aBlock
ensure: [
InputState default instVarAt:indexOfCtrlState put:0.
].
une alternative est de créer keyPress & keyRelease-events pour la clé CTRL, et mettez-les dans le WindowSensor, avant et après l'évaluation du bloc.
désolé - moi stupide - commentaire supprimé. – blabla999