1

送信キーを使用して1つのウィンドウから別のウィンドウに移動するWindowsアプリケーションがあります。キーの送信シーケンスは、アプリで別のウィンドウをアクティブにして、そのウィンドウにキーストロークを送信するようなものです。しかし、私が送信しているキーストロークは、他のウィンドウをアクティブにしているのと同じウィンドウで更新されています。

しかし、数回のキーストロークの後、別のウィンドウに移動します。送信キーの同期の問題のようです。次の送信キーを送信する前に、現在の送信キーの操作が終了したことを指定する方法はありますか?

4

2 に答える 2

2

私は、sendkeys が信頼できないものであることに気づきました。代わりに入力シミュレーターを試してください。

于 2010-05-21T07:49:04.503 に答える
0

SendKeys.SendWaitを使用してみましたか。これは、キーが送信され、アクションが処理されるまで待機してから続行します。

ウィンドウは独自のアプリケーション内にあるため、SendKeysを使用するのではなく、アクションを実行するための一連の関数を提供してみませんか。関数は、ウィンドウが作成されてアクティブになるとウィンドウを作成できます。これは、Activatedイベントを処理することで検出できます。必要に応じて、SendKeysを使用して新しいウィンドウにキーストロークを送信できます。それ以外の場合は、ウィンドウクラスに関数があります。キーストロークによって誘発される操作を実行するために呼び出すことができます。この相互作用を容易にするために、ウィンドウが実装する共通のインターフェースをおそらく定義することができます。

于 2010-05-21T07:01:32.517 に答える