1

Windows Vistaのリリース後、Windows Functionビープ音は、内部スピーカーではなく、接続されているスピーカーでビープ音を鳴らします。

古い機能にアクセスする方法はありますか?古いWindowsAPIを使用することで可能でしょうか?または、これを可能にする他の方法はありますか?もしそうなら、私は頻度と期間の両方を設定する機能が欲しいです。

私は実際にWindowsXPプラットフォームをターゲットにしていることに言及する必要があります。

4

2 に答える 2

6

いいえ。関数は Kernel32.dll に実装されており、現在実行している OS のバージョンに関係なく、実行時に読み込まれます。コードは実行可能ファイルにもシステム DLL にも存在しないため、実行することはできません (別の OS バージョンから Kernel32.dll をコピーすることは考えないでください。これは単にトラブルを招くだけです)。

MessageBeepの代わりに を使用してみることができますBeepが、それでは出力の制御が少なくなり、内部の代わりにサウンド カードを使用する可能性があります。

MessageBeep関数の興味深い歴史については、Larry Osterman のブログを参照してください。

于 2012-04-18T20:05:54.333 に答える
2

現在、ほとんどのコンピューターにはスピーカーが内蔵されていないため、アクセスするものは何もありません。

Larry Osterman のブログによると、この機能は Windows 7 で意図的に削除されました。アーカイブからのこの投稿では、その問題について具体的に説明しています。が削除されたようでBeep.sys、その古い疑似デバイス ドライバの機能が変更され、意図的にサウンドをサウンド カードにリダイレクトするようになりました。この記事は、歴史的な観点から興味深い読み物です。

Larry は MS の従業員で、Vista と Win7 の新しいオーディオ フレームワークに取り組んでおり、恐竜の時代 (少なくとも MS-DOS :D) から MS に勤務しているので、おそらく知っているでしょう。:)

于 2012-04-18T20:04:37.943 に答える