Excel 11のフォームコントロールをクリックしてサウンドをトリガーしようとしています。クリップボードに特定のテキストが見つかった場合、clickイベントのハンドラはsndPlaySound32を使用してサウンドを再生しようとします。フォームコントロールをクリックして再生サウンドが発生する
場合、私は(機能sndPlaySound32宣言、および(簡体字)とそれを呼び出す私がコントロールをクリックしたときに
whatSound$ = "C:\WINDOWS\Media\Office97\Drop.wav"
sndPlaySound32 whatSound$, &H0
限り、Excelが前のアプリですと、その後すべてが正常に動作し、サウンドの再生しましたターゲットテキストはクリップボードにあります)、メモ帳のような別のアプリケーション(クリップボードにテキストを持ってきて、クリックが発生したときにExcelがフロントアプリケーションではない場合、コントロールの最初のクリックは生成されません)どんな音。以降のクリックは正常に動作します。フォーム上の他のイベントはこれに問題はなく、最初のクリックに対して正常に応答し続けます。
Excelがフロントアプリケーションでないときに、コントロールの最初のクリックでサウンドを再生するにはどうすればよいですか?
編集11/25/10: 私はボードのコメントを作成できません。私は[コメントを追加]をクリックしますが、私のコメントは表示されませんので、これはBoostへの返信です。
Excelの最初のクリックだけではなく、他のアプリが前面に表示されている間に、Excelの最初のクリックで正常にトリガされるアクションがいくつかあるため、彼らはすべてうまく動作します。それ以降のクリックまで機能しないのはplaySoundだけです。
私は、各クリックで発生するはずの他のアクション(フォントの変更、テキストのサイズ変更など)のリストの先頭と最後の両方にplaySoundコマンドを移動しようとしましたが、様々な場所で、しかし喜びはありません。コードをステップ実行すると、最初のクリックでplaySoundプロシージャが正しく呼び出されますが、サウンドは生成されません。
メモ帳がインフォーカスのアプリケーションである場合、正しく画像を取得した場合、Excelをクリックすると何も起こりませんが、その後のクリックが機能します。ここで問題となるのは、最初のクリックでExcelにフォーカスが移った後、Excelのコントロールがマウスのクリックを受け入れることです。これについて考える必要がありますか... – bugmagnet