キーダウンイベントをシミュレートします
-
28-10-2019 - |
質問
他のコードが実行されている間、キー(CTRL)を押さえつけてシミュレートするにはどうすればよいですか?次の方法の実装は何ですか?
self ctrlDownWhile: [self doSomething]
解決
「ctrdown」状態を変更することにより、入力状態を「トリック」しようとすることができます。悪いニュースは、それにアクセスするセッターメソッドがないことです(おそらく私のバージョンでのみ)ので、トリックでそこに着く必要があるかもしれません。
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.
].
別の方法は、Ctrl-Key用のKeypress&KeyRelease-Ieventsを作成し、ブロックの評価の前後にWindowsensorにエンキューすることです。
所属していません StackOverflow