Jak zresetować ustawienia głośności dla poszczególnych aplikacji w systemie Windows 7 i Vista
18
Zmieniłem ustawienia głośności aplikacji dla moich aplikacji. Chcę zresetować każde indywidualne ustawienie głośności, aby wszystkie aplikacje korzystały z globalnych ustawień głośności. Jak mam to zrobić?
Znalazłem obejście, które działa, ale jest trochę hackerskie. Wolę lepsze rozwiązanie, ale w międzyczasie spróbuj:
Ustaw globalny wolumin na maksimum, przenieś także każdy wolumin aplikacji na maksimum. Następnie zmniejsz globalny wolumen. Wygląda na to, że działa. Wszystkie ustawienia głośności aplikacji są teraz powiązane z ustawieniem globalnym.
Nie działa dla mnie. Klient Last.fm zawsze przełącza się z powrotem na ~ 15% maksimum.
Robert
4
Muszę to zrobić całkowicie -> resetować cały czas. W końcu przeszukałem sieć, aby sprawdzić, czy brakuje mi jakiegoś tajnego skrótu lub kombinacji. Najwyraźniej nie. : /
Stworzyłem więc skrypt autoit, aby zrobić to szybciej niż to możliwe :) Kompilowałem go za pomocą narzędzi-> build i w ten sposób mogę uruchomić exe, wyszukując w menu Start.
Powoduje wyłączenie wyciszenia wszystkich suwaków i przejście do 50%.
Volume_Normalize.au3:
#include <GuiConstantsEx.au3>
#include <GuiSlider.au3>
Func SlideTo($Win, $Ctrl, $Pct)
If Not IsInt($Pct) Or $Pct < 3 Or $Pct > 100 Then
SetError(1)
Return False
EndIf
$CtrlHandle = ControlGetHandle($Win, '', $Ctrl)
if not $CtrlHandle Then
SetError(2)
Return False
EndIf
Local $SetValue, $SendValue
If $Pct <= 51 Then
$SetValue = $Pct + 1
$SendValue = '{UP}'
Else
$SetValue = $Pct - 1
$SendValue = '{DOWN}'
EndIf
_GUICtrlSlider_SetPos($CtrlHandle, $SetValue)
Local $PrevOpt = Opt('SendKeyDelay', 1)
ControlSend($Win, '', $Ctrl, $SendValue)
Opt('SendKeyDelay', $PrevOpt)
Return True
EndFunc
Func EachSliderTo($Win, $Pct)
WinWait($Win, "")
If Not WinActive($Win,"") Then WinActivate($Win,"")
local $i = 1
If not WinActive($Win,"") Then WinActivate($Win,"")
While True
$Ctrl = "[CLASS:msctls_trackbar32; INSTANCE:"& $i &"]"
if not SlideTo($Win, $Ctrl, $Pct) Then
ExitLoop
EndIf
$i = $i + 1
WEnd
Return True
EndFunc
$Win = "Volume Mixer"
$Prog = "SndVol.exe"
if Not WinActive($Win,"") Then
if not WinActivate($Win,"") Then
ShellExecute($Prog)
If not WinActive($Win,"") Then WinActivate($Win,"")
EndIf
EndIf
WinWait($Win)
EachSliderTo("Volume Mixer",100);
EachSliderTo("Volume Mixer", 50);
Poniższy .batplik z Per4u3e na forach Microsoft załatwił sprawę . Działa poprzez tymczasowe zatrzymanie usług audio i modyfikację rejestru w celu zresetowania systemu Windows do domyślnych ustawień audio.
Pamiętaj, że przynajmniej w systemie Windows 10 może być konieczne uruchomienie skryptu jako administrator.
@ECHO OFF
ECHO Reset Volume Mixer Settings...
NET STOP Audiosrv
NET STOP AudioEndpointBuilder
REG DELETE "HKCU\Software\Microsoft\Internet Explorer\LowRegistry\Audio\PolicyConfig\PropertyStore" /F
REG ADD "HKCU\Software\Microsoft\Internet Explorer\LowRegistry\Audio\PolicyConfig\PropertyStore"
NET START Audiosrv
Od jakiegoś czasu używam skryptu ferrix, ale zmodyfikowałem go, aby ustawić wszystkie suwaki głośności aplikacji tak, aby pasowały do bieżącego woluminu głównego, zamiast ustawiać je wszystkie na 50%. Zmieniłem go również, aby działał na suwakach z ustawionymi woluminami mniejszymi niż 3%.
Volume_Normalize_Alt.au3:
#include <GuiConstantsEx.au3>
#include <GuiSlider.au3>
Func SlideTo($Win, $Ctrl, $Pct)
If Not IsInt($Pct) Or $Pct < 0 Or $Pct > 100 Then
SetError(1)
Return False
EndIf
$CtrlHandle = ControlGetHandle($Win, '', $Ctrl)
If Not $CtrlHandle Then
SetError(2)
Return False
EndIf
Local $SetValue, $SendValue
If $Pct <= 51 Then
$SetValue = $Pct + 1
$SendValue = '{UP}'
Else
$SetValue = $Pct - 1
$SendValue = '{DOWN}'
EndIf
_GUICtrlSlider_SetPos($CtrlHandle, $SetValue)
Local $PrevOpt = Opt('SendKeyDelay', 1)
ControlSend($Win, '', $Ctrl, $SendValue)
Opt('SendKeyDelay', $PrevOpt)
Return True
EndFunc ;==>SlideTo
Func EachSliderTo($Win, $Pct)
WinWait($Win, "")
If Not WinActive($Win, "") Then WinActivate($Win, "")
Local $i = 1
If Not WinActive($Win, "") Then WinActivate($Win, "")
While True
$Ctrl = "[CLASS:msctls_trackbar32; INSTANCE:" & $i & "]"
If Not SlideTo($Win, $Ctrl, $Pct) Then
ExitLoop
EndIf
$i = $i + 1
WEnd
Return True
EndFunc ;==>EachSliderTo
$Win = "Volume Mixer"
$Prog = "SndVol.exe"
If Not WinActive($Win, "") Then
If Not WinActivate($Win, "") Then
ShellExecute($Prog)
If Not WinActive($Win, "") Then WinActivate($Win, "")
EndIf
EndIf
WinWait($Win)
;Master volume has the highest instance number so find slider with highest instance then return its handle.
Local $i = 1
While True
Local $h = ControlGetHandle($Win, '', "[CLASS:msctls_trackbar32; INSTANCE:" & $i & "]")
If @error > 0 Then
ExitLoop
EndIf
$i = $i + 1
Local $Handle = $h ;store last sucessful handle to be returned
WEnd
Local $CurrMasterVol = _GUICtrlSlider_GetPos($Handle)
;100 is 0% and 0 is 100%
;EachSliderTo("Volume Mixer", 100) ;What is the point of doing this first?
EachSliderTo("Volume Mixer", $CurrMasterVol)
WinClose("Volume Mixer")
Podziękowania dla ferrix za napisanie oryginalnego skryptu.
Odpowiedzi:
Znalazłem obejście, które działa, ale jest trochę hackerskie. Wolę lepsze rozwiązanie, ale w międzyczasie spróbuj:
Ustaw globalny wolumin na maksimum, przenieś także każdy wolumin aplikacji na maksimum. Następnie zmniejsz globalny wolumen. Wygląda na to, że działa. Wszystkie ustawienia głośności aplikacji są teraz powiązane z ustawieniem globalnym.
źródło
Muszę to zrobić całkowicie -> resetować cały czas. W końcu przeszukałem sieć, aby sprawdzić, czy brakuje mi jakiegoś tajnego skrótu lub kombinacji. Najwyraźniej nie. : /
Stworzyłem więc skrypt autoit, aby zrobić to szybciej niż to możliwe :) Kompilowałem go za pomocą narzędzi-> build i w ten sposób mogę uruchomić exe, wyszukując w menu Start.
Powoduje wyłączenie wyciszenia wszystkich suwaków i przejście do 50%.
Volume_Normalize.au3:
Dzięki temu wątkowi autoit informacje o przesuwaniu kontrolek suwaka.
źródło
Poniższy
.bat
plik z Per4u3e na forach Microsoft załatwił sprawę . Działa poprzez tymczasowe zatrzymanie usług audio i modyfikację rejestru w celu zresetowania systemu Windows do domyślnych ustawień audio.Pamiętaj, że przynajmniej w systemie Windows 10 może być konieczne uruchomienie skryptu jako administrator.
źródło
Trochę przeróbki Powershell odpowiedzi udostępnionej przez Stevena powyżej, pożyczyłem trochę od fajnego kodu samopodnoszącego się tutaj: https://blogs.msdn.microsoft.com/virtual_pc_guy/2010/09/23/a-self-elevating -powershell-script /
Dlaczego? Działa o wiele szybciej niż skrypt wsadowy i używam tego dużo. Pomyślałem, że podzielę się. :)
Lub, jeśli wolisz, bez surowego tekstu zwrotnego lub autopodniesienia:
źródło
Od jakiegoś czasu używam skryptu ferrix, ale zmodyfikowałem go, aby ustawić wszystkie suwaki głośności aplikacji tak, aby pasowały do bieżącego woluminu głównego, zamiast ustawiać je wszystkie na 50%. Zmieniłem go również, aby działał na suwakach z ustawionymi woluminami mniejszymi niż 3%.
Volume_Normalize_Alt.au3:
Podziękowania dla ferrix za napisanie oryginalnego skryptu.
źródło