
Windows 7 マシンでサウンド スキームを変更し、その変更をそのマシン上のすべてのユーザーに反映させたいと思います。
管理者権限のないユーザーとしてログインすると、そのマシンのログオン セッション全体にわたってそのユーザーに対して維持される、どのイベントでどのサウンドを再生するかを変更できることが分かりました。ただし、これらの変更は同じマシン上の他のユーザーには適用されません。
管理者権限を持つユーザーとしてログオンした場合、少なくともデフォルトではマシン上のすべてのユーザーに適用される変更を行うにはどうすればよいでしょうか?
答え1
レジストリ内の単純なテキスト ファイルを変更する他のより「適切な」方法の代わりとなる、逆のアイデアです。
私のシステムでは、繰り返しはあまり面白くないので、回転するサウンドを使用しています。サウンドを変更する方法は、システムの下にあるサウンドを変更するために、ウェーブ ファイルの名前を変更することです。レジストリは同じままです。
名前の変更は非常に高速な操作であり、このような奇妙な方法を何年も使用していますが、問題は一度も発生していません (ファイルが 1 つでも失われると、何が起こるかはご想像のとおりです)。
これは、各ブートを変更するバッチ ファイルの 1 つの外観の一部であり、例として収まるように短縮されています。
rename C:\WINDOWS\media\EndSound\000.wav 011.wav
rename C:\WINDOWS\media\EndSound\001.wav 000.wav
rename C:\WINDOWS\media\EndSound\002.wav 001.wav
rename C:\WINDOWS\media\EndSound\003.wav 002.wav
rename C:\WINDOWS\media\EndSound\004.wav 003.wav
rename C:\WINDOWS\media\EndSound\005.wav 004.wav
rename C:\WINDOWS\media\EndSound\006.wav 005.wav
rename C:\WINDOWS\media\EndSound\007.wav 006.wav
rename C:\WINDOWS\media\EndSound\008.wav 007.wav
rename C:\WINDOWS\media\EndSound\009.wav 008.wav
rename C:\WINDOWS\media\EndSound\010.wav 009.wav
rename C:\WINDOWS\media\EndSound\011.wav 010.wav
私は別の長いバッチとタスク スケジューラを使用して、システム内で最も繰り返し使用される約 10 個のサウンドを 1 時間ごとに変更します。「for」ループは使用せず、単純な名前変更のみを行うことがわかります。
私は複数のユーザーを持っていないので、あなたのケースでは、全員が指しているファイルの名前を変更するだけでうまくいき、コピーや移動は必要ないだろうとしか思えません。
レジストリ挿入でも奇妙な名前の付いたファイルの束を扱うよりも、連続したファイル項目 (001、002、003) を整理する方が簡単でした。
注:
テストの前に、メディア フォルダー全体のコピーを作成し、すべてを取得して何度も繰り返し、テストをチェックし、動作していることを確認してから余分なバックアップを削除する必要があります。
regmon で確認したところ、レジストリは毎回サウンドに対してポーリングされるため、レジストリを変更すると同じことが行われ、他のレジストリ編集の場合のように、オーディオまたはシェルの再起動は必要ありません。
ここで説明しようとしているのは、その逆です。つまり、すべてのユーザーのそのファイルへのレジストリ ポインターを変更するのではなく、自分と他のユーザーが指している 1 つのファイルを変更します。
答え2
レジストリを使用してすべてのサウンドスキームを変更する.batを作成できます。サウンドは次の場所にあります。
HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\.Default\
各エントリを順番に処理して、必要な設定を行うバッチファイルを作成できます。次に、そのバッチへのショートカットを
C:\Users\[User]\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
各ユーザーのフォルダー (ショートカットなので、すべてのユーザーに対して 1 つのファイルを編集するだけで済みます)。ユーザーがログインすると、.bat が実行されます。
すべてのサウンドを停止する .bat ファイルの例: https://github.com/ReneNyffenegger/Configure-Windows/blob/master/sound.bat
(私のものではありませんが、グーグルで簡単に見つけました。これを書いた ReneNyffenegger に感謝します)
答え3
レジストリを使用する方法:
HKEY_USERS
レジストリ ハイブをスキャンして、すべてのユーザー (名前が に似ている) を検索しますS-1-5-19
。- キーには、
HKEY_USERS\S-1-5-19\AppEvents\Schemes\Apps\.Default
そのユーザーのサウンドのすべての定義が含まれています。
たとえば、ログオン サウンドは の下にありWindowsLogon\.Current
、その(Default)
値は です%SystemRoot%\media\Windows Logon Sound.wav
。 - Windows で再生できる他のファイル (通常は .wav) に変更します。
一部のイベントのデフォルトのサウンドを変更する場合は、 の .wav ファイルで見つけることができます
%SystemRoot%\media\
。必要なファイルを置き換えてください。ただし、これはそのデフォルトのサウンドを使用するユーザーにのみ適用されます。