2009-06-25 12 views
0

キーボード入力をキャプチャしてスクリプトに格納する必要があるwinformsアプリケーションがあります。スクリプトをIronPythonで再生して、アプリケーションを自動化することができます。私の現在の取り組みは、KeyPressイベントを待ち受け、SendKeys.Send()で押された文字を再送することです。モディファイア(alt、ctrl)で入力を処理するには、KeyDownイベントを待ち受けますが、ここではスクリプトで押されたキーをどのように表現するか分かりません。これは私がやりたいものです。UIオートメーションのキーボード入力を保存して再送信する方法は?

public void TextBox_KeyDown(KeyEventArgs e) 
{ 
    Script.AddStatement(string.Format("SendKeys.Send('{0}')", ????)); 
} 

私は手動でのSendKeysが理解KeyEventArgsから文字列を作成する必要がありますか?
たとえばshift + Aの場合、shift + BはSendKeys.Send( "+(AB)")になります。詳細はMSDNです。

別の方法がありますか?多分、KeyEventArgs.KeyDataを格納し、新しいKeyEventArgsインスタンスを作成し、それを何とか送信するのでしょうか?

+0

スクリプトはどのような種類ですか? –

+0

パラメータとして期待しているSendKeys.Send()とは何ですか?たぶん(char)e.KeyCodeは既にいいです... –

答えて

0

この質問に対する回答は、SendKeysの使用をやめ、代わりにkeybd_eventのp/invokeを使用することでした。 SendKeysには、タイミングの問題やその他の予期しない動作があります。

関連する問題