Tell me more ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I've altered per application volume settings for my applications. I want to reset every individual volume setting so that all apps use the global volume settings. How should I do that?

share|improve this question

2 Answers

I've found a workaround that works but it's a bit hackish. I prefer a better solution but in the meantime try:

Set the global volume to maximum, move each individual application volume to maximum too. Then move the global volume down. It appears to be working. All application volume settings are now bound to the global setting.

share|improve this answer
Does not work for me. The Last.fm client always switches back to ~15% of the maximum. – Robert Mar 25 '11 at 18:53

I have to do this all-max -> reset all the time. I finally searched the net to see if there was some secret hot key or combo I was missing. Apparently not. :/

So I made an autoit script to do this more quickly than humanly possible :) I compiled it via tools->build and that way I can run the exe by searching in the start menu.

It causes all sliders to unmute and go to 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);

Thanks to this autoit thread for info on moving slider controls.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.