質問

他のコードが実行されている間、キー(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にエンキューすることです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top