2012-02-21 16 views
0

他のコードが実行されている間にキー(ctrl)を押してシミュレーションする方法はありますか?次の方法の実装は何ですか?keydownイベントのシミュレート

self ctrlDownWhile: [self doSomething] 
+0

申し訳ありません - 私の愚かな - コメントは削除されました。 – blabla999

答えて

1

"ctrlDown"状態を変更することで、入力状態を「トリック」することができます。

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キーのkeyReleaseイベントをブロックの評価の前後にWindowSensorにエンキューします。

+0

もちろん、これをInputStateの拡張として追加することができます。 instVar-offsetsに手を加えることは必要ありません。 – blabla999

+0

また、上記のスレッドは保存されていないので、より良いウィンドウセンサーの代替を試してください... – blabla999

関連する問題