• ベストアンサー

クリック連打ソフトの作り方

windows APIを使い、実際にマウスを使わずにクリックしたことにできるソフトを作りたいのですが方法がわかりません。 実際にマウスでクリックした場合、WM_LBUTTONDOWN等のメッセージが発生し そのメッセージに対する処理を書けばいいことはわかるのですが、 この場合にはこの方法ではできないように思います。 WM_LBUTTONDOWN等のメッセージを任意に発生させる方法があるのか、 それともまったく別な方法なのか見当もつきません。 どのようにすれば実際にマウスを使わずにクリックしたことにできるのか教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jyugemu55
  • ベストアンサー率68% (11/16)
回答No.2

mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); これで、現在マウスカーソルがある位置でクリックしたことになります。 あとは、これを適切な場所に書くだけですが、何のイベントが起きたときにクリックしたことにするのでしょうね?

noname#82191
質問者

お礼

ありがとうございます 実現することができました。

その他の回答 (2)

noname#58606
noname#58606
回答No.3

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ですよー。

noname#82191
質問者

お礼

こんなに簡単にできるとは思いませんでした。 私の調べ方が悪かったようです。 ありがとうございました

  • shred
  • ベストアンサー率35% (25/70)
回答No.1

システムキューに突っ込むか それともアプリケーションのメッセージキューに直接突っ込むか、はたまたウィンドウプロシージャを直接呼び出すかなどの方法があります。 いずれも対応するapiが存在しますのでお調べください。

noname#82191
質問者

お礼

ありがとうございます 深いきりがかかっていた部分が少し晴れました。 教えていただいたことを参考にいろいろ調べてみます

関連するQ&A

専門家に質問してみよう