質問 |
||
| 質問者:notenoto | クリック連打ソフトの作り方 | |
|---|---|---|
困り度:
|
windows APIを使い、実際にマウスを使わずにクリックしたことにできるソフトを作りたいのですが方法がわかりません。 実際にマウスでクリックした場合、WM_LBUTTONDOWN等のメッセージが発生し そのメッセージに対する処理を書けばいいことはわかるのですが、 この場合にはこの方法ではできないように思います。 WM_LBUTTONDOWN等のメッセージを任意に発生させる方法があるのか、 それともまったく別な方法なのか見当もつきません。 どのようにすれば実際にマウスを使わずにクリックしたことにできるのか教えてください。 よろしくお願いします。 |
|
質問投稿日時:08/03/31 13:42 質問番号:3909978 |
||
回答 |
|
| 回答者:noname#58606 | 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ですよー。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/03/31 21:48 回答番号:No.3 |
|
| この回答へのお礼 | こんなに簡単にできるとは思いませんでした。 私の調べ方が悪かったようです。 ありがとうございました |
回答良回答20pt |
|
| 回答者:jyugemu55 | mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); これで、現在マウスカーソルがある位置でクリックしたことになります。 あとは、これを適切な場所に書くだけですが、何のイベントが起きたときにクリックしたことにするのでしょうね? |
|---|---|
| 種類:アドバイス どんな人:経験者 自信:参考意見 |
|
| |
回答日時:08/03/31 19:45 回答番号:No.2 |
|
| この回答へのお礼 | ありがとうございます 実現することができました。 |
回答良回答10pt |
|
| 回答者:shred | システムキューに突っ込むか それともアプリケーションのメッセージキューに直接突っ込むか、はたまたウィンドウプロシージャを直接呼び出すかなどの方法があります。 いずれも対応するapiが存在しますのでお調べください。 |
|---|---|
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| |
回答日時:08/03/31 14:00 回答番号:No.1 |
|
| この回答へのお礼 | ありがとうございます 深いきりがかかっていた部分が少し晴れました。 教えていただいたことを参考にいろいろ調べてみます |