プロが教える店舗&オフィスのセキュリティ対策術

決められた時刻(秒単位もしくはそれ以下)に

決まったボタンを押せる様なソフトは無いでしょうか?

例えば19時0分5秒にスタートボタンをクリックする、

あるいは19時0分5秒50ミリ秒にスタートボタンをクリックする

という様な操作の事です。

始めはロケットマウスを試したのですが、コントロールできる

時間の最小単位が分だった為に使えませんでした。

ロケットマウスの様に高機能でなくても構いません。

よろしくお願いします。

A 回答 (4件)

修正版です。


(ちょっと確率UPです。が、やはり実用レベルとは言えませんね。)

stopform(true)

msgbox("OKを押した3秒後にクリックします。")

gettime()
time0=COPY(G_TIME_HH2+G_TIME_NN2+G_TIME_SS2+G_TIME_ZZ2,1,7)
PRINT "開始時刻:"+time0
time0=val(time0)+30
PRINT "設定時刻:"+time0

while true
gettime()
time1=COPY(G_TIME_HH2+G_TIME_NN2+G_TIME_SS2+G_TIME_ZZ2,1,7)

ifb time1=time0 then
msgbox("クリック出来ました。")
exitexit
elseif time1>time0
msgbox("クリックに失敗しました。(設定時刻を通りすぎました。)")
exitexit
endif
sleep(0.005)
wend
    • good
    • 0
この回答へのお礼

お礼が大変遅くなってしまい、申し訳ありません。
わざわざサンプルプログラムまで作成頂き
大変感謝しています。
これを自分用にカスタマイズして使用しています。
ありがとうございました。

お礼日時:2008/11/09 09:45

以下のプログラムで 10 ミリ秒を確かに SLEEP が刻んでいるようですので、この while ループによる CPU 使用率が影響のない PC 環境でしたら、質問者のやりたいことを UWSC で実現可能かもしれません。



最終的に(スタートボタンが)クリックされたアプリケーションにイベントが届くまでの時間を考慮して微調整は必要だとは思いますが・・・。

prev = 0

while !GETKEYSTATE(VK_ESC)
  SLEEP(0.01)
  prev = d(prev)
wend

function d(prev)
  now = GETTIME() * 1000 + G_TIME_ZZ
  print now - prev
  result = now
fend

この回答への補足

お二人とも回答の内容は甲乙つけがたいです。
そこで、勝手ながら投稿順にポイントを
つけたいと思います。
ありがとうございました。

補足日時:2008/11/09 09:49
    • good
    • 0
この回答へのお礼

お礼が大変遅くなってしまい申し訳ありません。
サンプルプログラムまで作成して頂き
感謝致します。
確かに微調整は必要みたいですね。
いろいろトライしてみようと思います。
ありがとうございました。

お礼日時:2008/11/09 09:47

>どうやらBASICの様にプログラミングが必要みたいですね。


ですね。ヘルプが非常に良くできていますので、良く目を通して下さい。

>あるいは19時0分5秒50ミリ秒にスタートボタンをクリックする
ミリ秒単位で取得は出来ても、クリックとなると・・・

秒単位では、問題は発生しないと思いますが、ミリ秒となると
スキャンタイム(プログラムがループする速度)相当早くないと、
指定した時刻を取りこぼしてしまいます。

と、いうことでテストプログラムを雑(タイミングによっては存在しない設定時刻となる)
ですが書きましたのでお試し下さい。

ちなみに私の環境では、五分五分といった所でした。


下記メモ帳に張り付け、拡張子を.uwsとし、uwscと関連づけて使用して下さい。

stopform(true)

msgbox("OKを押した3秒後にクリックします。")

gettime()
time0=COPY(G_TIME_HH2+G_TIME_NN2+G_TIME_SS2+G_TIME_ZZ2,1,7)
PRINT "開始時刻:"+time0
time0=val(time0)+30
PRINT "設定時刻:"+time0

while true
gettime()
time1=COPY(G_TIME_HH2+G_TIME_NN2+G_TIME_SS2+G_TIME_ZZ2,1,7)

ifb time1=time0 then
msgbox("クリック出来ました。")
exitexit
elseif time1>time0
msgbox("クリックに失敗しました。(設定時刻を通りすぎました。)")
exitexit
endif
wend
    • good
    • 0

フリーの UWSC というソフトは如何でしょうか?



下記ホームページです。
http://www.uwsc.info/index.html

GETTIME という関数で日時をミリ秒の単位まで取得できます。
    • good
    • 0
この回答へのお礼

harapeco7さん

ご回答ありがとうございます。

どうやらBASICの様にプログラミングが必要みたいですね。

でもミリ秒単位まで扱えるとの事なので、

それは大変魅力的です。

お礼日時:2008/09/09 22:29

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