- ベストアンサー
クリック連打ソフトの作り方
windows APIを使い、実際にマウスを使わずにクリックしたことにできるソフトを作りたいのですが方法がわかりません。 実際にマウスでクリックした場合、WM_LBUTTONDOWN等のメッセージが発生し そのメッセージに対する処理を書けばいいことはわかるのですが、 この場合にはこの方法ではできないように思います。 WM_LBUTTONDOWN等のメッセージを任意に発生させる方法があるのか、 それともまったく別な方法なのか見当もつきません。 どのようにすれば実際にマウスを使わずにクリックしたことにできるのか教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); これで、現在マウスカーソルがある位置でクリックしたことになります。 あとは、これを適切な場所に書くだけですが、何のイベントが起きたときにクリックしたことにするのでしょうね?
その他の回答 (2)
No1の方の書いてある通り、マウスを連打するだけなら、 procedure TForm1.Timer1Timer(Sender: TObject); begin mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); end; でいけますねー。 芸も工夫もないですが、Delphiで。(あまりにもNo2の方と同じなので、ポイントかはNo2の方に。^^; キーボードを自ソフト以外でフックするには、外部ライブラリー化しないといけないけど、マウスなら、OKですよー。
お礼
こんなに簡単にできるとは思いませんでした。 私の調べ方が悪かったようです。 ありがとうございました
- shred
- ベストアンサー率35% (25/70)
システムキューに突っ込むか それともアプリケーションのメッセージキューに直接突っ込むか、はたまたウィンドウプロシージャを直接呼び出すかなどの方法があります。 いずれも対応するapiが存在しますのでお調べください。
お礼
ありがとうございます 深いきりがかかっていた部分が少し晴れました。 教えていただいたことを参考にいろいろ調べてみます
お礼
ありがとうございます 実現することができました。