dポイントプレゼントキャンペーン実施中!

こんにちは、VBのプログラミングについて教えて下さい。

VBでメトロノームみたいなプログラムを作ろうと思い、タイマーコントロールを使って一定の間隔でWAVを鳴らすプログラムを作りました。とりあえず完成し、それなりに動くのですが、実行中に他のアプリケーションを操作すると一瞬リズムが乱れてしまいます・・・。

出来れば他のアプリケーションを操作しても、リズムが乱れないようにしたいのですが、どのような手法がありますでしょうか?

どうぞ宜しくお願いします!

A 回答 (3件)

MMTimerに対して補足しておきます。


「Intervalプロパティに 55 以下を指定すると、正確なイベントを発生できません。」
と書かれていましたが、55というのはマシンスペックなどの環境に左右されますし
1000と設定しても実際は徐々にずれていきます。
そもそもタイマーイベント(タイマーコントロールの発生するイベント)というのは
時間を測る為のものではなく定期的に実行する為のイベントです。

通常Windowsで時間を測るにはGetTickCount()APIを使用します。
ゲームプログラミング的な手法ですが、
Timerイベントは1ms毎に実行するように設定しておき
そこでGetTickCount()APIで監視すればどうでしょうか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。GetTickCount()APIを使うような手法もあるんですね。複数のイベントを実行する場合に使えそうです(複数の音を違うタイミングで鳴らすような場合)。大変参考になりました!どうもありがとうございます!!

お礼日時:2002/12/18 11:57

プロセスの優先度は,WindowsAPIでできます.


↓(参考)
http://tokyo.cool.ne.jp/kanain/APIHTM/Propri.html

加えて,タイマーにMMTimerを使えば,ほぼずれないと思います.

http://www1.harenet.ne.jp/cgi-bin/cgiwrap/unaap/ …
    • good
    • 0
この回答へのお礼

参考URLありがとうございます!早速参考にしてプログラムを修正してみようと思います。どうもありがとうございました!!

お礼日時:2002/12/18 11:35

 貴方のOSが判らないのですが。



Win2K等の場合、Ctrl+Alt+Deleteで、タスクマネージャーを起動し、「プロセス」タブの中で当該のプログラムを右クリックし、その中の「優先度の設定」で、優先度を上げてみて、如何でしょう。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!OSはWIN2Kを使ってます。タスクマネージャの「優先度の設定」は知りませんでした。大変参考になりました。どうもありがとうございます!早速優先度を「高」に設定してテストしてみました。今までのように頻繁にリズムがずれることは無くなりましたが、たまに若干ずれる時があります。さらに優先度が高い「リアルタイム」も試してみたいと思います。どうもありがとうございました。

お礼日時:2002/12/18 11:33

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