विंडोज 7 और विस्टा में एप्लिकेशन वॉल्यूम सेटिंग प्रति रीसेट कैसे करें


15

मैंने अपने एप्लिकेशन के लिए प्रति एप्लिकेशन वॉल्यूम सेटिंग्स बदल दी हैं। मैं प्रत्येक व्यक्तिगत वॉल्यूम सेटिंग को रीसेट करना चाहता हूं ताकि सभी ऐप वैश्विक वॉल्यूम सेटिंग्स का उपयोग करें। मैं कैसे करूं?


जवाबों:


9

मुझे एक वर्कअराउंड मिला है जो काम करता है लेकिन यह थोड़ा हैकिश है। मैं एक बेहतर समाधान पसंद करता हूं लेकिन इस बीच कोशिश करें:

वैश्विक वॉल्यूम को अधिकतम पर सेट करें, प्रत्येक व्यक्ति के एप्लिकेशन वॉल्यूम को अधिकतम तक ले जाएं। फिर वैश्विक वॉल्यूम को नीचे ले जाएं। यह काम करता हुआ प्रतीत होता है। सभी एप्लिकेशन वॉल्यूम सेटिंग्स अब वैश्विक सेटिंग के लिए बाध्य हैं।


मेरे लिए काम नहीं करता है। Last.fm क्लाइंट हमेशा अधिकतम 15% तक वापस स्विच करता है।
Robert

4

मुझे यह सब करना होगा - अधिकतम & gt; हर समय रीसेट करें। मैंने अंत में यह देखने के लिए नेट खोजा कि क्या कुछ गुप्त हॉट की या कॉम्बो है जो मैं गायब था। जाहिरा तौर पर नहीं। : /

इसलिए मैंने ए autoit इसे मानवीय रूप से अधिक तेज़ी से करने के लिए स्क्रिप्ट :) मैंने इसे टूल- & gt; के माध्यम से संकलित किया है; इस तरह से मैं प्रारंभ मेनू में खोज कर एक्सई चला सकता हूं।

यह सभी स्लाइडर्स को अनम्यूट करने और 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);

का शुक्र है यह ऑटो धागा है चलती स्लाइडर नियंत्रण के बारे में जानकारी के लिए।



3

निम्नलिखित .bat से फाइल करें Per4u3e पर Microsoft फ़ोरम मेरे लिए चाल चली। यह अस्थायी रूप से ऑडियो सेवाओं को रोकने और डिफ़ॉल्ट ऑडियो सेटिंग्स के लिए विंडोज को रीसेट करने के लिए रजिस्ट्री को संशोधित करके काम करता है।

ध्यान दें, कम से कम विंडोज 10 पर, आपको स्क्रिप्ट को एक व्यवस्थापक के रूप में चलाने की आवश्यकता हो सकती है।

@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

2

ऊपर स्टीवन द्वारा साझा किए गए उत्तर के एक पॉवर्सशेल फिर से लिखना, मैंने यहां निफ्टी के स्वयं के ऊंचाई कोड से थोड़ा उधार लिया है: https://blogs.msdn.microsoft.com/virtual_pc_guy/2010/09/23/a-self-elevating-powershell-script/

क्यूं कर? यह बैच स्क्रिप्ट की तुलना में बहुत तेज चलता है, और मैं इस अलॉट का उपयोग करता हूं। लगा कि शेयर करूंगा। :)

If(!(new-object System.Security.Principal.WindowsPrincipal([System.Security.Principal.WindowsIdentity]::GetCurrent())).IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)) {
    $newProcess = new-object System.Diagnostics.ProcessStartInfo "PowerShell"
    $newProcess.Arguments = $myInvocation.MyCommand.Definition
    $newProcess.Verb = "runas"
    $null = [System.Diagnostics.Process]::Start($newProcess)
    Return
}

cls
$ErrorActionPreference = "SilentlyContinue"

Write-Host '--- Reset Windows Audio Mixer ---' -ForegroundColor Cyan;""

Write-Host 'Stopping Service [Audiosrv]             : ' -ForegroundColor White -NoNewline
$Error.Clear()
Stop-Service -Name Audiosrv -Force
If($Error) {Write-Host 'Error' -ForegroundColor Red} Else {Write-Host 'OK' -ForegroundColor Green}

Write-Host 'Stopping Service [AudioEndpointBuilder] : ' -ForegroundColor White -NoNewline
$Error.Clear()
Stop-Service -Name AudioEndpointBuilder -Force
If($Error) {Write-Host 'Error' -ForegroundColor Red} Else {Write-Host 'OK' -ForegroundColor Green}

Write-Host 'Deleting Registry Key [PropertyStore]   : ' -ForegroundColor White -NoNewline
$Error.Clear()
Remove-Item -Path 'HKCU:Software\Microsoft\Internet Explorer\LowRegistry\Audio\PolicyConfig\PropertyStore' -Force -Recurse
If($Error) {Write-Host 'Error' -ForegroundColor Red} Else {Write-Host 'OK' -ForegroundColor Green}

Write-Host 'Creating Registry Key [PropertyStore]   : ' -ForegroundColor White -NoNewline
$Error.Clear()
$null = New-Item -Path 'HKCU:Software\Microsoft\Internet Explorer\LowRegistry\Audio\PolicyConfig\' -Name PropertyStore
If($Error) {Write-Host 'Error' -ForegroundColor Red} Else {Write-Host 'OK' -ForegroundColor Green}

Write-Host 'Starting Service [Audiosrv]             : ' -ForegroundColor White -NoNewline
$Error.Clear()
Start-Service -Name Audiosrv
If($Error) {Write-Host 'Error' -ForegroundColor Red} Else {Write-Host 'OK' -ForegroundColor Green}

Sleep -Seconds 5

या, यदि आप इसे क्रूड फीडबैक टेक्स्ट या सेल्फ-एलीवेशन के बिना पसंद करते हैं:

Stop-Service -Name Audiosrv -Force
Stop-Service -Name AudioEndpointBuilder -Force

Remove-Item -Path 'HKCU:Software\Microsoft\Internet Explorer\LowRegistry\Audio\PolicyConfig\PropertyStore' -Force -Recurse
$null = New-Item -Path 'HKCU:Software\Microsoft\Internet Explorer\LowRegistry\Audio\PolicyConfig\' -Name PropertyStore

Start-Service -Name Audiosrv

Pause

1

मैं कुछ समय से फेरिक्स की स्क्रिप्ट का उपयोग कर रहा हूं लेकिन मैंने इसे सभी एप्लिकेशन वॉल्यूम स्लाइडर्स को सेट करने के लिए वर्तमान मास्टर वॉल्यूम से मिलान करने के बजाय सभी को 50% पर सेट करने के लिए संशोधित किया है। मैंने इसे भी बदल दिया ताकि यह स्लाइडर्स पर काम करे जिसमें वॉल्यूम 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")

मूल स्क्रिप्ट लिखने का श्रेय फ़ेरिक्स को जाता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.