HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0630
西井マウスで指定の位置・時間にクリックさせるにはどうしたらいいですか?6解決


西井

リンク

2011/6/30(Thu) 16:52:51|NO.39884

かなりの初心者です。
マウスで指定の位置・時間にクリックさせるにはどうしたらいいですか?

例えば、x座標100、y座標100の位置で、
3秒毎に、マウスの左クリックをするスクリプトはどうすれば良いでしょうか?



この記事に返信する


test

リンク

2011/6/30(Thu) 18:09:08|NO.39885

「指定の座標でマウスをクリックする」ということと、「一定時間ごとに処理(今回はマウスをクリック)を行う」ということは切り離して考えてみましょう。
さらに、「一定時間ごとに処理」というのは、「処理を行った後、一定時間待って再び処理を行う」と考えることができます。
これらを調べてみましょう。



ひらまる

リンク

2011/6/30(Thu) 18:12:35|NO.39887

さらに「指定の座標にマウスを移動すること」と「マウスを左クリックさせること」も
全く別として考えた方が良いと思います。

問題があるとすれば「マウスを左クリックさせること」ですね。
標準命令では不可能? だったと思いますが、llmodにmouse_eventという命令があります。



西井

リンク

2011/7/1(Fri) 10:32:54|NO.39896

質問した者です。

他の方のを参考に以下のように強引に作ってみましたが、
これだと全ての時間を指定しなければ出来ません。

3秒毎に10分間行わせたいのですが、
3秒から600秒まで全て指定させるしか方法はないのでしょうか?

効率よくするためにはどうすれば良いでしょうか?


#include "llmod3/llmod3.hsp" #include "llmod3/input.hsp" *@ repeat cls mes "経過"+time time=time+1 wait 100 if time=3:break ;3秒後 if time=6:break ;6秒後 if time=9:break ;9秒後 ;〜〜〜〜 if time=600:break;600秒後 loop mouse 100,100 ;クリックを行うマウス座標 mouse_event $2 |$4 goto *@b



ORZ

リンク

2011/7/1(Fri) 11:39:21|NO.39897

そこを考えるのが、所謂『プログラミング』なのですよ

#include "llmod3/llmod3.hsp" #include "llmod3/input.hsp" *@ repeat cls mes "経過"+time time=time+1 wait 100 if time\3=0:break if time=600:end loop mouse 100,100 ;クリックを行うマウス座標 mouse_event $2 |$4 goto *@b
time\3というのは、timeを3で割った時のあまりを意味する。
timeが2のときは0あまり2だが、3のときは1あまり0となりifを満たす。
同様に、6や9のときもそれぞれ2あまり0、3あまり0となりifを満たす。



ひらまる

リンク

2011/7/1(Fri) 11:52:53|NO.39898

なんだか初心者なんだか上級者なんだかわからない不思議なスクリプトと質問ですね…
方法はいくらでもあると思いますが、\演算子を使った割った余りが一番スマートだと思います。
\演算子は割った余りを出します。3で割った余りが0のとき = 3の倍数のとき です。

#include "llmod3/llmod3.hsp" #include "llmod3/input.hsp" gsel 0, 2 repeat 600 ;600回ループする cls mes "経過"+time time += 1 wait 100 ;3秒ごとに指定した座標をクリック if time \ 3 == 0 { mouse 100,100 mouse_event $2 |$4 } ;ECSキーで強制的に終了 getkey key, 27 if key : break loop mes "終了"



西井

リンク

2011/7/1(Fri) 12:25:21|NO.39900

解決しました。ありがとうございます。



ONION software Copyright 1997-2021(c) All rights reserved.