• 締切済み

クリックする時間の計測

音楽のソフトでテンポを表示するプログラムを考案中です。 マウスでクリックする時間を1秒を60として 0.5秒間隔であれば120となります。 実現のためにVisual BASICで クリックからクリックする時間の計測をしたいのですが 1/100秒程度の精度がほしいです。 時間の下一桁の数字が変わるまでの時間を単にインクリメントしているだけではこのソフトが重くなりすぎるので実用になりません。 どなたか教えてください。

みんなの回答

  • uruz
  • ベストアンサー率49% (417/840)
回答No.3

Timer関数を調べてください Timer関数は午前0時からの経過時間を秒でかえします 戻り値には小数点以下の値も含まれますので 1/1000秒位まで使用できます ただし、No.1さんの言われるようにOSのオーバーヘッドは どうにもなりませんが1/100秒程度なら実用になると 思います

LHS07
質問者

お礼

お返事ありがとうございます。

LHS07
質問者

補足

以下のように少数点以下の表示ができないのですがDebug.Printでも同じです。 Private Sub Form_Load() Dim NowTime As Date NowTime = Now Text1.Text = NowTime End Sub 2009/08/06 15:58:10 よろしくお願いします。

回答No.2

>精度を荒くして1/10にした場合はできるのでしょうか? そのくらいであれば問題はないレベルにはなると思います。 No.1でも簡単に書きましたが「マルチタスクOS」の仕組み上、どうしても短い時間の精度については誤差が発生しやすくなります。 人間の見た目上は「瞬時」かもしれませんが、短い時間で見ると相当のずれは発生しています。 >Cで関数を作ってBASICから使うとか >ところで、バージョンは古くて6.0です。 .netを持っていますがつかっていません。 VBでもタイマメソッドはありますからそのままで大丈夫だと思いますよ。

LHS07
質問者

お礼

お返事ありがとうございます。

回答No.1

>クリックからクリックする時間の計測をしたいのですが >1/100秒程度の精度がほしいです。 は、既存のPCシステムとしてはまず無理です。 簡単にクリックを認識する動作概略を書くと ---------- マウスをクリックする  ↓ 電気信号に変換しPCへ  ↓ PC(HW)でクリックした電気信号を受信  ↓ PC(H/W)のデータをドライバーでアプリ(S/W)に通知  ↓ OSのマルチタスク管理により、アプリ(S/W)の処理がきたら処理される ---------- の為、クリックしたものがそのまま瞬時に処理されるわけではありません。 その為、短い時間の精度を求めることは非常に困難です。 それと >マウスでクリックする時間を1秒を60として >0.5秒間隔であれば120となります。 「1秒?」 「1分」では?

LHS07
質問者

お礼

お返事ありがとうございます。感謝いたします。

LHS07
質問者

補足

音楽の拍子を確認するために使うのですので2秒に1回から0.5秒に1回程度のテンポです。 2回クリックした場合でもそのときのテンポを表示させたいのですが 精度を荒くして1/10にした場合はできるのでしょうか? Cで関数を作ってBASICから使うとか ところで、バージョンは古くて6.0です。 .netを持っていますがつかっていません。

関連するQ&A