wav再生後に余計な音が出ます

解決


めちゃうす  2005-10-25 11:15:54  No: 126846  IP: [192.*.*.*]

テキストボックスにキーボードから文字を入力し、その入力した値が
正しければ音を出し、そのテキストボックスをクリアするというプロ
グラムで、

  ①        Call sndPlaySound(".\Sound\quiz2.wav", 0)
  ②        txtAnswerWin(Index).Text = ""

①の効果音再生終了後に「ポンッ」と音が鳴り、テキストボックスを
クリアします。
この「ポンッ」と言う音はWindowsのシステムの音で、効かないキー
を押したときなどに出る音です。
①や②でブレイクすると音は出ません。①や②のあいだにSleepを挟ん
でも②のところで音が出ます。
この音を出さないようにするにはどうすればよろしいでしょうか。

編集 削除
めちゃうす  2005-10-25 11:40:41  No: 126847  IP: [192.*.*.*]

「ポンッ」と言う音は、Windowsのサウンドの「一般の警告音」でした。
どうしてこれが鳴るのでしょう。

編集 削除
ガッ  2005-10-25 11:42:47  No: 126848  IP: [192.*.*.*]

sndPlaySound()はSND_NODEFAULTフラグが立っていない場合、
ファイルがない時に警告音を発します。

かも。

編集 削除
めちゃうす  2005-10-25 11:53:00  No: 126849  IP: [192.*.*.*]

そのようですね。
今回は指定のファイルも存在しますし、指定したファイルの音も鳴ります。
SND_NODEFAULTのフラグを入れても、入れなくても同じく、音の再生後に
「一般の警告音」が出ます。(ToT)

編集 削除
めちゃうす  2005-10-25 11:57:29  No: 126850  IP: [192.*.*.*]

存在しないフィルを指定すると、この警告音が2度出ます。

編集 削除
ガッ  2005-10-25 12:22:33  No: 126851  IP: [192.*.*.*]

> テキストボックスにキーボードから文字を入力し、その入力した値が
> 正しければ音を出し…
あー、もしかして
一行テキストボックスで
KeyDown、KeyUp、KeyPressイベントのいずれかでエンターキーの入力を監視していますか?
その場合はKeyAsciiまたはKeyCodeを0としてみてください。

編集 削除
めちゃうす  2005-10-25 13:14:03  No: 126852  IP: [192.*.*.*]

ガッさん、ありがとうございます。仕組みはそのとおりです。
Key_Downを使って、

    'Return(Enter)が押された!
    If KeyCode = vbKeyReturn Then

の中で、入力データが正しいか、否かを見ています。

> その場合はKeyAsciiまたはKeyCodeを0としてみてください。

これをこの判断の後に入れると言うことでしょうか。

編集 削除
名無し  2005-10-25 14:03:17  No: 126853  IP: [192.*.*.*]

>これをこの判断の後に入れると言うことでしょうか。
聞く前にやってみればいいんじゃな〜い?

編集 削除
めちゃうす  2005-10-25 14:08:37  No: 126854  IP: [192.*.*.*]

KeyDownだと、KeyCodeを0にしても「一般の警告音」がでました。
KeyPressだと、KeyAsciiを0にすれば出なくなりました。(0にしないと
出ました。)

ガッさん、ありがとうございました。

編集 削除
めちゃうす  2005-10-25 14:09:36  No: 126855  IP: [192.*.*.*]

KeyDownにこだわる必要がないので、問題は解決しました。

編集 削除