タイトル : Re^9: クリックで素早く押して離すと反応しません。 投稿日 : 2017/06/12(Mon) 05:05 投稿者 : susu
魔界の仮面弁士 さん ご教示により解決することができました。 >処理対象のウィンドウを指定させるためのクリック操作を監視しようというのが >今回の目的ということだとすれば、マウス操作をリアルタイムに捉える必要があるわけで、 >その場合、タイマーの利用はお薦めできません。仕組み上、取りこぼしが発生します。 取りこぼしが発生していましたので、下記のように変更、追加をしまいた。 >タイマーの利用はお薦めできません。 処理でのタイマーの利用は中止しました。 >リアルタイムに捉える必要があるわけで 新たにタイマーを追加しその中にGetAsyncKeyState関数と 処理用のタイマーを開始するようにしました。 動作確認 クリックで素早く押して離しても反応するようになりました。 極端に処理用タイマー(Timer1)の時間を5秒に定め、マウスを 素早く押して離しても5秒後には反応するようになりました。 また、取りこぼしが発生しないようになりました。 (もう少し問題ないかテストを続けます) Timer1_Timer > Timer2_Timer ご指摘をして頂きましたことから大変、参考になり解決に繋がりました。 Private Sub Timer1_Timer() 'If (GetAsyncKeyState(vbKeyRButton) < 0) then '中止 Form1.Timer1.Enabled = 0 'イベント停止を追加しました。 処理 'end if '中止 End Sub 新たにタイマーを追加しました。 Private Sub Timer2_Timer() If (GetAsyncKeyState(vbKeyRButton) < 0) then Form1.Timer1.Enabled = 1 'イベント開始 End Sub 大変、お世話になりました。心より感謝申し上げます。 |