none
コマンドプロンプトで、 rundll32 kernel32.dll,Beepでビープ音を鳴らす長さを指定するにはどうすればよいですか。 RRS feed

  • 質問

  • 毎度お世話になります。

    コマンドプロンプトで

    rundll32 kernel32.dll,Beep 数値を二つ指定するようですが、周波数は変えられても鳴らす長さを調節できません。

    もし指定するならミリ秒ですか?

    それとも秒単位ですか?

    450hzで1秒鳴らしたいときはどのように書けばよいか是非教えてください。

    多数の質問をさせていただいていますが是非お願いします。

    2017年10月1日 1:27

すべての返信

  • rundll は Win32API を呼び出すための仕組みなので、Win32API の説明自体を参照すれば良いかと。

    https://msdn.microsoft.com/ja-jp/library/cc428923.aspx

    2017年10月1日 1:41
  • 早速の返信に感謝します。

    ご提示いただいたurlは既に参照していますが、私の目指すところとずれているような気がします。

    最終的にはバッチファイルに書き込みたいのでこれは何の言語を使用しているのかよくわかりません。

    ごうか引き続き御教授お願いします。

    2017年10月1日 4:12
  • チャブーンです。

    Beep APIですけれど、Windows 10ではどうも想定通り動かないようです(少なくともコマンドプロンプト経由では)。

    Beep音が出っぱなしになってしまって、同じコマンドを実行すると止まるのですが、その次からまったく違う高さの音がでたりするので、サポート外のAPIになってしまっているのかもしれませんね。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2017年10月1日 4:13
  • Beep 関数の説明は C 言語が主体のものです。求めているものと違うと感じるかもしれませんが、あなたが使おうとしているものはこれで、rundll 経由で呼び出しているだけです。

    さて、チャブーンさんから振る舞いが怪しいとの情報が寄せられています。私は動作確認できていませんが、微妙そうなら使わないことを考えてください。

    WinPE はその性質上、アクセビリティが高くなく、その割にドライバーを絞りこんでいるので求めることを達成するのは難しいことが予想されます。場合によっては解決策なしもあり得ると認識した上でいろいろな情報を探し、理解し、真偽を確かめ、試行錯誤する必要があるでしょう。

    2017年10月1日 4:23
  • -------------------------------------
    Beep function
    https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms679277(v=vs.85).aspx

    Remarks
    Eventually because of the lack of hardware to communicate with, support for Beep was dropped in Windows Vista and Windows XP 64-Bit Edition.
    In Windows 7, Beep was rewritten to pass the beep to the default sound device for the session. This is normally the sound card, except when run under Terminal Services, in which case the beep is rendered on the client.
    -------------------------------------

    。。。ということは Windows 7 以降では、サウンド カード デバイスおよびそのドライバ側の「仕様」に影響するのではないかと。
    2017年10月2日 2:13
  • © ウィンドウズスクリプトプログラマ - Windows Script Programmer 2017


    PowerShellをはじめよう ~PowerShell入門~: PowerShellでビープ音を鳴らす

    他には

    rundll32 user32.dll,MessageBeep

    for /f %%I in ('cmd /u /c echo 〇') do echo %%I

    を組み合わせて、繰り返すとか。

    2017年10月2日 4:13
  • ------------------------------------------------
    MessageBeep function
    https://msdn.microsoft.com/ja-jp/library/windows/desktop/ms680356%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396

    Remarks
    After queuing the sound, the MessageBeep function returns control to the calling function and plays the sound asynchronously.
    If it cannot play the specified alert sound, MessageBeep attempts to play the system default sound.
    If it cannot play the system default sound, the function produces a standard beep sound through the computer speaker.
    The user can disable the warning beep by using the Sound control panel application.

    Note  To send a beep to a remote client, use the Beep function. The Beep function is redirected to the client, whereas MessageBeep is not.
    ------------------------------------------------

    。。。つまり MessageBeep() API はサウンドの再生リクエストをキューインするだけで、サウンドの再生自体は非同期で行われます。
    for 文等でサウンドの再生をループ処理させても連続して再生される保証はありませんし、そもそもすべての PC 環境で同一サウンドの再生が保証される訳でもありません。
    さらに MessageBeep() API は、リモートデスクトップ接続でのクライアント側での利用もできません。
    もし MessageBeep() API を代替手段とするのであれば、これらの仕様をきちんと理解されることをお勧めします。
    2017年10月2日 5:52
  • © ウィンドウズスクリプトプログラマ - Windows Script Programmer 2017
    発想を変えて、こういうのはいかがでしょう。
    cmd /c start /max mshta "about:<HTML><head><BGSOUND SRC='C:\Windows\Media\chimes.wav' LOOP=5 ></head><BODY bgcolor='#000080' text='#FFFFFF'></BODY></HTML>"

    あるいは、音声で案内するのはどうか。
    MSHTA.EXE "javascript:var text='Hello. How are you. Good bye.';new ActiveXObject("SAPI.SpVoice").Speak(text);close();"


    2017年10月2日 7:59
  • 経緯を読むというのも大変なので紹介しておきます。

    元々は、サウンドを再生したいが、WinPE 環境にドライバーが組み込まれていないのか、それができないという質問 でした。
    そこで、サウンドドライバーに依存しないと思われていた Beep の紹介を受けて今に至りますが、お馬鹿さんが指摘していただいていますように現在の Beep はサウンドドライバーに依存します。
    よって、元のサウンドドライバーが入っていない問題を解消する必要があるわけです。

    その問題を解消しないまま、サウンドで解決というのはおそらく質問者の方も望まれていないと思いますので、経緯という形で紹介させていただきました。
    (目が見えないというハンディキャップがあるとのことなので、試行錯誤も難しいと思われますが…)

    2017年10月2日 12:30
  • Azulean さん、経緯の説明ありがとうございました。
    また win10-syoshinsya さんに対しては、背景を確認せず非情な返信をしてしまい、申し訳ありませんでした。
    で、Azulean さんに提示していただいたリンク先のスレッドを読んだのですが。。。
    作成する WinPE イメージに、使用したいサウンド カード デバイスのドライバ パッケージを追加すればいいのでは。。。と思うのですが、多分そういった単純な話ではないのですよね?
    2017年10月3日 1:46
  • チャブーンです。

    この件ですが、「音を出す」という点についてはMS的にはWinPE自体のカスタマイズではなく、Windows 10のブートイメージ(起動ディスク)をWinPEとして流用してくれ、ということのようです。Creators Update以降なら、(サウンドデバイスドライバーが入っているようで)ナレーターが使えるようになっているそうです。

    https://microsoftaccessibility.uservoice.com/forums/307429-microsoft-accessibility-feedback/suggestions/20477449-the-ability-for-narrator-to-work-in-windows-pe

    できることなら、こういう方向に倒した方がよいようにも思います。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2017年10月3日 2:12
  • フォーラムオペレーターの栗下 望です。
    win10-syoshinsya さん、こんにちは。
     
    私のほうでも確認させていただきましたところ、
    以下有償サポートのほうが本件についてはフォーラムと比較してご利用いただきやすいかもしれませんね。
     
    サポートサービス
    https://www.microsoft.com/ja-jp/services/professional.aspx
     
    有償サポートであれば、お客様の背景等にできる限り配慮したサポートをご提供しており、
    これまでも耳の不自由な方のご対応をしたこともあるようです。
     
    電話でのサポートももちろん可能ですので、
    お気軽にご相談いただければと思います。
     
    少しでも解決の糸口になりましたら幸いです。
    どうぞよろしくお願いいたします。

    MSDN/TechNet Community Support 栗下 望

    2017年10月4日 2:11
    モデレータ
  • 目がご不自由とのことなので、読むのが大変かもしれませんが、下記サイトも確認された方が良いかもしれません。
    (既に確認されていましたら、ご容赦ください。)
    -----------------------------------------
    マイクロソフト アクセシビリティ ホーム - Microsoft
    https://www.microsoft.com/ja-jp/enable/

    視覚障碍者向け電話サポート窓口利用ガイド
    https://blogs.technet.microsoft.com/cs3_windows/2016/07/15/%E8%A6%96%E8%A6%9A%E9%9A%9C%E7%A2%8D%E8%80%85%E5%90%91%E3%81%91%E9%9B%BB%E8%A9%B1%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E7%AA%93%E5%8F%A3%E5%88%A9%E7%94%A8%E3%82%AC%E3%82%A4%E3%83%89/
    -----------------------------------------

    2017年10月4日 2:26
  • 海外サイトでドライバを組み込む方法を探していますが

    英語力が無いので結構、屈折中です。

    代わりに

    win10_1703_ja-jp .batファイルに引数を受け取ってもらったり、一つの処理が終わる度にビープ音を発生させるにはどうすれば「いいですか?
    https://social.technet.microsoft.com/Forums/ja-JP/9bbe473a-bf40-4f8d-8259-e3f1fd9d918f/win101703jajp-bat?forum=win10itprogeneralJP#76e5c20e-f18b-420d-9a36-c854f4896f96

    別PCで音を出す方法を上げてあります。

    当面、これで凌いでいくというのは如何でしょうか?


    2017年10月4日 3:39
  • © ウィンドウズスクリプトプログラマ - Windows Script Programmer 2017

    Beep音が出っぱなしになってしまって、

    たまたまタスクマネジャを見たら、プロセスがいっぱい残ってました。たぶん時間指定がメモリのゴミを見てる。使わないほうがよさそう。
    2017年10月6日 9:28