2011-04-25 120 views
0

私はkeybd_event()でいくつかの「タイピング」を行う簡単なプログラムを持っています。問題は、プログラムウィンドウにフォーカスを合わせると、(ブラウザなどで)入力したいテキストボックスに焦点が合わなくなることです。それをどのように修正するのですか?keybd_eventの使用

+1

[documentation](http://msdn.microsoft.com/en-us/library/ms646304.aspx)の巨大な警告にもかかわらず、今すぐにいくつの人が 'keybd_event'関数を使用しようとしているのか驚いています。 )** ** Note:この関数は代わりに使用されています。代わりに['SendInput'](http://msdn.microsoft.com/en-us/library/ms646310.aspx)を使用してください。" ** –

+0

'SendInput ) 'は正しいことですが、本当に問題を解決するのに役立つわけではありません。 –

+0

いいえ、問題は解決しません。問題は、UIの自動化が困難で壊れやすいことです。実際に問題を解決するにはここに十分な情報がありません。ウィンドウ内の別のコントロールが、「入力」したいテキストボックスではなく、フォーカスを取得しています。 –

答えて

0

所有しているウィンドウの代わりに入力したいテキストボックスのhwndを渡すと、問題が解決するはずです。テキストボックスの正しいリソースIDを取得するには、子ウィンドウを列挙する必要があります。 SendInputをどのように使用すればよいのでしょうか。特定の状況では動作しない方法がありますので、すべてのコメントを参照してください。

0

キーボードイベントを生成しているアプリケーションでフォーカスが得られないようにするには、拡張スタイルのWS_EX_NOACTIVATEを使用してアプリケーションのウィンドウを作成します。