- 締切済み
クリックする時間の計測
音楽のソフトでテンポを表示するプログラムを考案中です。 マウスでクリックする時間を1秒を60として 0.5秒間隔であれば120となります。 実現のためにVisual BASICで クリックからクリックする時間の計測をしたいのですが 1/100秒程度の精度がほしいです。 時間の下一桁の数字が変わるまでの時間を単にインクリメントしているだけではこのソフトが重くなりすぎるので実用になりません。 どなたか教えてください。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- uruz
- ベストアンサー率49% (417/840)
Timer関数を調べてください Timer関数は午前0時からの経過時間を秒でかえします 戻り値には小数点以下の値も含まれますので 1/1000秒位まで使用できます ただし、No.1さんの言われるようにOSのオーバーヘッドは どうにもなりませんが1/100秒程度なら実用になると 思います
- SilverThaw
- ベストアンサー率32% (260/806)
>精度を荒くして1/10にした場合はできるのでしょうか? そのくらいであれば問題はないレベルにはなると思います。 No.1でも簡単に書きましたが「マルチタスクOS」の仕組み上、どうしても短い時間の精度については誤差が発生しやすくなります。 人間の見た目上は「瞬時」かもしれませんが、短い時間で見ると相当のずれは発生しています。 >Cで関数を作ってBASICから使うとか >ところで、バージョンは古くて6.0です。 .netを持っていますがつかっていません。 VBでもタイマメソッドはありますからそのままで大丈夫だと思いますよ。
お礼
お返事ありがとうございます。
- SilverThaw
- ベストアンサー率32% (260/806)
>クリックからクリックする時間の計測をしたいのですが >1/100秒程度の精度がほしいです。 は、既存のPCシステムとしてはまず無理です。 簡単にクリックを認識する動作概略を書くと ---------- マウスをクリックする ↓ 電気信号に変換しPCへ ↓ PC(HW)でクリックした電気信号を受信 ↓ PC(H/W)のデータをドライバーでアプリ(S/W)に通知 ↓ OSのマルチタスク管理により、アプリ(S/W)の処理がきたら処理される ---------- の為、クリックしたものがそのまま瞬時に処理されるわけではありません。 その為、短い時間の精度を求めることは非常に困難です。 それと >マウスでクリックする時間を1秒を60として >0.5秒間隔であれば120となります。 「1秒?」 「1分」では?
お礼
お返事ありがとうございます。感謝いたします。
補足
音楽の拍子を確認するために使うのですので2秒に1回から0.5秒に1回程度のテンポです。 2回クリックした場合でもそのときのテンポを表示させたいのですが 精度を荒くして1/10にした場合はできるのでしょうか? Cで関数を作ってBASICから使うとか ところで、バージョンは古くて6.0です。 .netを持っていますがつかっていません。
お礼
お返事ありがとうございます。
補足
以下のように少数点以下の表示ができないのですがDebug.Printでも同じです。 Private Sub Form_Load() Dim NowTime As Date NowTime = Now Text1.Text = NowTime End Sub 2009/08/06 15:58:10 よろしくお願いします。