Ändern Sie das Soundschema in Windows über die Windows-Registrierung

Ändern Sie das Soundschema in Windows über die Windows-Registrierung

Wie kann ich das Soundschema für bestehende Benutzer durch Bearbeiten der Registrierung auf „kein Ton“ ändern? Ich erstelle eine REG-Datei mit allen Optimierungen, die ich für frisch installierte Windows benötige, komme aber beim Ändern des Soundschemas nicht weiter.

Antwort1

Das Ändern des Schemas ist relativ einfach. Allerdings muss man dannanwendendas neue Schema, das etwas komplizierter ist.

Das Schema „Keine Geräusche“ hat den Namen .None; Sie können es sehen, indem Sie erkunden HKEY_CURRENT_USER\AppEvents\Schemes\Names.

Das ausgewählte Schema ist HKEY_CURRENT_USER\AppEvents\Schemes, standardmäßig .Default. Sie können das ausgewählte Schema also festlegen, indem Sie dies in ändern .None:

New-ItemProperty -Path HKCU:\AppEvents\Schemes -Name "(Default)" -Value ".None" -Force | Out-Null

Dadurch wird (technisch) das ausgewählte Schema festgelegt. Sie können dies überprüfen, indem Sie in Ihren Soundeinstellungen nachsehen, ob das No SoundsSchema ausgewählt ist. Die Ereignistöne werden jedoch weiterhin abgespielt, und zwar, weil das ausgewählte Schema nichtangewandt.

Um ein Soundschema anzuwenden, ist die entsprechende Aktion:

  • Kopieren Sie für jedes übereinstimmende App-Ereignis HKEY_CURRENT_USER\AppEvents\Schemes\Apps\*\*den Unterschlüssel für den neuen Schemanamen über den Unterschlüssel mit dem Namen .Current.

Um beispielsweise das Schema „Keine Töne“ auf das System-Ausrufezeichen-Ereignis anzuwenden, kopieren HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemExclamation\.NoneSie HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemExclamation\.Current.

In Ihrem Fall können Sie jedoch einfach alle Werte löschen, da Sie ein Design „ohne Sounds“ anwenden. Dies lässt sich mit einem Einzeiler erreichen:

Get-ChildItem -Path "HKCU:\AppEvents\Schemes\Apps" | Get-ChildItem | Get-ChildItem | Where-Object {$_.PSChildName -eq ".Current"} | Set-ItemProperty -Name "(Default)" -Value ""

Schritt für Schritt:

  • Get-ChildItem -Path "HKCU:\AppEvents\Schemes\Apps"ruft alle Apps ab.
  • Get-ChildItemruft alle App-Ereignisse ab.
  • Get-ChildItemruft alle Soundeinstellungen für App-Ereignisse für jedes Schema ab.
  • Where-Object {$_.PSChildName -eq ".Current"}wählt alle aktuell angewendeten App-Ereignis-Soundeinstellungen aus.
  • Set-ItemProperty -Name "(Default)" -Value ""löscht diese Soundeinstellungen.

Für etwas mehr Details:

Es scheint, dass die Schlüssel darunter HKEY_CURRENT_USER\AppEvents\Schemes\Appsdie Apps sind, deren Standardwert eine Anzeigezeichenfolge ist. Auf meinem System sind dies .Default(„Windows“), Explorer(„Datei-Explorer“) und sapisvr(„Spracherkennung“).

Die Schlüssel unter jedem App-Schlüssel sind die App-Ereignisse für diese App.

Die Tasten unter jeder App-Ereignistaste sind die Sounds, die für jedes Soundschema abgespielt werden sollen. Dies HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemExclamation\.Noneist der Sound, der für das Windows-Systemausrufezeichen abgespielt werden soll, wenn das Schema „Keine Sounds“ verwendet wird, und HKEY_CURRENT_USER\AppEvents\Schemes\Apps\.Default\SystemExclamation\.Defaultder Sound, der für das Windows-Systemausrufezeichen abgespielt werden soll, wenn das Windows-Standardschema verwendet wird.

Darüber hinaus gibt es .Currentauf dieser Ebene eine Taste, die den eigentlichen Ton darstellt, der abgespielt wird. Wenn Sie in der Benutzeroberfläche ein neues Schema auswählen, kopiert es vermutlich jede der Einstellungen einzeln über den .CurrentWert.

Antwort2

Ich habe dieses Skript gerade erstellt. Die Verwendung erfolgt auf eigene Gefahr.

if (-Not (Test-Path 'HKCU:\AppEvents\Schemes\Names\.None'))
{ 
    New-Item -Path 'HKCU:\AppEvents\Schemes\Names' -Name '.None'
    New-ItemProperty -Path 'HKCU:\AppEvents\Schemes\Names\.None' -Name '(Default)' -Type 'String' -Value 'No Sounds'
}

Get-ChildItem -Path 'HKCU:\AppEvents\Schemes\Apps\.Default' | Select Name | ForEach-Object {
    $thing = $_.Name -replace "HKEY_CURRENT_USER", "HKCU:"
    $fullnun = "$thing\.None"
    if (-Not (Test-Path $thing))
    {
        New-Item -Path $thing -Name '.None'
        echo "$thing\.None created"
    } else {
        echo "$thing\.None already existed"
    }

    if (Test-Path($fullnun))
    {
        New-ItemProperty -Path $fullnun -Name '(Default)' -Type 'String' -Value ''
    }
}

Set-ItemProperty -Path 'hkcu:\AppEvents\Schemes' -Name "(Default)" -Type "String" -Value ".None"

Antwort3

Hier ist mein Code zum Einstellen von Soundschemata auf „KEIN TON“

Write-Host " Setting Sound Schemes to 'No Sound' .." -foregroundcolor Gray -backgroundcolor black

$Path = "HKCU:\AppEvents\Schemes"

$Keyname = "(Default)"

$SetValue = ".None"

$TestPath = Test-Path $Path
if (-Not($TestPath -eq $True)) {
   Write-Host " Creating Folder.. " -foregroundcolor Gray -backgroundcolor black
   New-item $path -force
}

if (Get-ItemProperty -path $Path -name $KeyName -EA SilentlyContinue) {

   $Keyvalue = (Get-ItemProperty -path $Path).$keyname

   if ($KeyValue -eq $setValue) {

       Write-Host " The Registry Key Already Exists. " -foregroundcolor green -backgroundcolor black


   }
   else {

       Write-Host " Changing Key Value.. " -foregroundcolor Gray -backgroundcolor black

       New-itemProperty -path $Path -Name $keyname -value $SetValue -force # Set 'No Sound' Schemes
       Get-ChildItem -Path "HKCU:\AppEvents\Schemes\Apps" | # Apply 'No Sound' Schemes
        Get-ChildItem |
        Get-ChildItem |
        Where-Object { $_.PSChildName -eq ".Current" } |
        Set-ItemProperty -Name "(Default)" -Value ""

       Write-Host " The Registry Key Value Changed Sucessfully. " -foregroundcolor green -backgroundcolor black
   }

}
else {

   Write-Host " Creating Registry Key.. " -foregroundcolor Gray -backgroundcolor black

   New-itemProperty -path $Path -Name $keyname -value $SetValue -force
   Get-ChildItem -Path "HKCU:\AppEvents\Schemes\Apps" |
       Get-ChildItem |
       Get-ChildItem |
       Where-Object { $_.PSChildName -eq ".Current" } |
       Set-ItemProperty -Name "(Default)" -Value ""


   Write-Host " The Registry Key Created Sucessfully. " -foregroundcolor green -backgroundcolor black
}

verwandte Informationen