マウスを5分おきにクリックするには?


VBデビュー  2005-05-20 19:10:52  No: 121821  IP: [192.*.*.*]

今使用しているシステム(XP)が、5分間入力がないとログイン画面(システム専用設計)に戻るシステムなので、ちょっと席を外しただけでログインし直さなくてはならず便なので、

VB6&XPの環境で、5分ごとにPrtScキー等操作に支障のないキーを押す。
5分ごとに画面のタイトルバーを左クリックする。といった、疑似継続入力ソフトを作りたいのですが、どうもうまくいきません。

どなたかご教授お願いします。

編集 削除
ガッ  2005-05-20 19:20:49  No: 121822  IP: [192.*.*.*]

肝心なのが抜けているのだが、どこがどううまく行かないんだ…?

編集 削除
VBデビュー  2005-05-20 19:44:30  No: 121823  IP: [192.*.*.*]

最初は、コマンドボタンをタイマー使って自動で押すプログラム

Private Sub Timer1_Timer()
Call Command1_Click

End Sub

を作ったのですが、だめでした。次にカーソルが自動的に画面上部に動くプログラムを作りましたが、カーソルは動くのですが、テストするとだめでした。

実際に、キーを押したり、マウスを動かすのと同じ動きをするプログラムにしたいのですが・・・・

編集 削除
ガッ  2005-05-20 19:51:29  No: 121824  IP: [192.*.*.*]

ノ<なるほど、その辺りですたかw;

・Windowsに対してキーストロークを発生させそうなのは、
  VB6標準だとSendKeyメソッドになりますね
・WinAPIだとkeybd_event()やmouse_event()等になります。
  使用方法などはググれば十分に見つかると思います。

※実験はしていませんので、あくまでヒントとして受け取ってくれればうれしいです。

…しかし、システムのセキュアな部分をごまかして使ってもいいのだろうか?
という疑問はのこりますが(orz

編集 削除
VBデビュー  2005-05-20 21:03:43  No: 121825  IP: [192.*.*.*]

おっしゃるとおり、いけないことですが、システムがトロクて再ログインまで3分位かかります。

mouse_eventは試しましたがエラーで動かず、今度Keybd_eventを試してみます。

編集 削除
3−t  2005-05-20 22:16:15  No: 121826  IP: [192.*.*.*]

どうでもいいことですが
>mouse_eventは試しましたがエラーで動かず
というのは、コーディングが間違っているからじゃ?
XPでもmouse_eventはちゃんと動きますよ。

編集 削除
VBデビュー  2005-05-20 22:49:22  No: 121827  IP: [192.*.*.*]

はい、明らかに私のコードが間違っていたのだと思います。
もう少し勉強したいと思います。

でも、なんで最初の
Private Sub Timer1_Timer()
Call Command1_Click
End Sub
だけじゃダメなんでしょうね。
End Subの前にBeepを付けたら、ちゃんと音は鳴るのに・・・・・

編集 削除
ガッ  2005-05-20 23:09:07  No: 121828  IP: [192.*.*.*]

とりあえず簡単な解説
> Private Sub Timer1_Timer()
> Call Command1_Click
> End Sub
・Timer1_Timer()はFormのプライベートなメソッドです。
・(多分)Command1_Clickも同様にメソッドです。
で、
Timer1_Timer()でCommand1_Clickを呼び出しているだけのコードなので、
Windowsは全く関与していません。
「あたかもCommand1をクリックしたかのように、自分に思い込ませる」
くらいしか出来ていません。

で、参考までにmouse_event()をググってみますた。
http://www.google.co.jp/search?hl=ja&q=vb6+mouse_event%28%29&lr=
ぃぇ、ググっているとは思いますが、一応ですよ。
ぇぇ。

編集 削除