プロが教えるわが家の防犯対策術!

windows APIを使い、実際にマウスを使わずにクリックしたことにできるソフトを作りたいのですが方法がわかりません。

実際にマウスでクリックした場合、WM_LBUTTONDOWN等のメッセージが発生し
そのメッセージに対する処理を書けばいいことはわかるのですが、
この場合にはこの方法ではできないように思います。

WM_LBUTTONDOWN等のメッセージを任意に発生させる方法があるのか、
それともまったく別な方法なのか見当もつきません。

どのようにすれば実際にマウスを使わずにクリックしたことにできるのか教えてください。

よろしくお願いします。

A 回答 (3件)

mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);


mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

これで、現在マウスカーソルがある位置でクリックしたことになります。
あとは、これを適切な場所に書くだけですが、何のイベントが起きたときにクリックしたことにするのでしょうね?
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/04/01 19:04

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ですよー。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/04/01 19:06

システムキューに突っ込むか


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

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

お礼日時:2008/03/31 14:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!