<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=16436</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16436&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «AHK: Замутить и потом размутить одну программу win10 [решено]».]]></description>
		<lastBuildDate>Mon, 21 Jun 2021 11:49:55 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148544#p148544</link>
			<description><![CDATA[<p><strong>teadrinker</strong> А, ясно.</p>]]></description>
			<author><![CDATA[null@example.com (Gh0sTG0)]]></author>
			<pubDate>Mon, 21 Jun 2021 11:49:55 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148544#p148544</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148543#p148543</link>
			<description><![CDATA[<p>Проще.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 21 Jun 2021 11:49:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148543#p148543</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148541#p148541</link>
			<description><![CDATA[<p><strong>teadrinker</strong> А тогда зачем значение mute-unmute хранить в переменной?<br /></p><div class="codebox"><pre><code>mute := 0
!Space::
   mute := !mute</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (Gh0sTG0)]]></author>
			<pubDate>Mon, 21 Jun 2021 11:43:16 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148541#p148541</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148540#p148540</link>
			<description><![CDATA[<p>Почему не получается, можно взять из системы.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Mon, 21 Jun 2021 11:42:32 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148540#p148540</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148536#p148536</link>
			<description><![CDATA[<p><strong>teadrinker</strong> Кстати, а почему не получается взять значение mute/unmute из системы, а не хранить его в программе?</p>]]></description>
			<author><![CDATA[null@example.com (Gh0sTG0)]]></author>
			<pubDate>Mon, 21 Jun 2021 11:14:30 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148536#p148536</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148534#p148534</link>
			<description><![CDATA[<p><strong>teadrinker</strong><br />Спасибо, работает.</p>]]></description>
			<author><![CDATA[null@example.com (Gh0sTG0)]]></author>
			<pubDate>Mon, 21 Jun 2021 08:37:18 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148534#p148534</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148531#p148531</link>
			<description><![CDATA[<p><strong>teadrinker</strong><br />Завтра из интереса попробую переделать под ваш код.</p>]]></description>
			<author><![CDATA[null@example.com (Gh0sTG0)]]></author>
			<pubDate>Sun, 20 Jun 2021 20:50:38 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148531#p148531</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148530#p148530</link>
			<description><![CDATA[<div class="quotebox"><cite>Gh0sTG0 пишет:</cite><blockquote><p>И, я правильно понял, что оно тыркает 0/100?</p></blockquote></div><p>Нет, по первой клавише mute/unmute, по второй прибавляет громкость, по третьей убавляет.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 20 Jun 2021 20:41:04 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148530#p148530</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148529#p148529</link>
			<description><![CDATA[<p>Не знаю, как больше нравится. Технически проще кодом AHK, чтобы не запускать стороннее приложение.</p>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 20 Jun 2021 20:39:41 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148529#p148529</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148528#p148528</link>
			<description><![CDATA[<p><strong>teadrinker</strong><br />О___О Какая огромная штука...<br />Мб все таки проще run, D:\ahk\SoundVolumeView.exe /Switch BlueStacks ?<br />И, я правильно понял, что оно тыркает 0/100? Или все таки 0/системная громкость?</p>]]></description>
			<author><![CDATA[null@example.com (Gh0sTG0)]]></author>
			<pubDate>Sun, 20 Jun 2021 20:37:31 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148528#p148528</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148527#p148527</link>
			<description><![CDATA[<p>Попробуйте так:<br /></p><div class="codebox"><pre><code>processName := &quot;chrome.exe&quot;

PIDs := EnumProcessesByName(processName)
mute := 0
for k, v in PIDs
   SetAppVolume(v, volume := 100)
Return

!Space::
   mute := !mute
   for k, v in PIDs
      SetAppVolume(v, mute ? &quot;mute&quot; : &quot;unmute&quot;)
   Return

!Home::
!End::
   volume += A_ThisHotkey = &quot;!End&quot; ? -3 : 3
   volume := volume &lt; 0 ? 0 : volume &gt; 100 ? 100 : volume
   for k, v in PIDs
      SetAppVolume(v, volume)
Return

EnumProcessesByName(searchName, regEx := false) {
   if !DllCall(&quot;Wtsapi32\WTSEnumerateProcesses&quot;, &quot;Ptr&quot;, 0, &quot;UInt&quot;, 0, &quot;UInt&quot;, 1, &quot;PtrP&quot;, pProcessInfo, &quot;PtrP&quot;, count)
      throw Exception(&quot;WTSEnumerateProcesses failed. A_LastError: &quot; . A_LastError)
   
   addr := pProcessInfo, PIDs := []
   Loop % count  {
      procName := StrGet( NumGet(addr + 8) )
      if ( regEx &amp;&amp; RegExMatch(procName, searchName) ) || (procName = searchName)
         PID := NumGet(addr + 4, &quot;UInt&quot;), PIDs.Push(PID)
      addr += 8 + A_PtrSize*2
   }
   DllCall(&quot;Wtsapi32\WTSFreeMemory&quot;, &quot;Ptr&quot;, pProcessInfo)
   Return PIDs
}

SetAppVolume(PID, volume)    ; WIN_V+
{
   static MMDeviceEnumerator        := &quot;{BCDE0395-E52F-467C-8E3D-C4579291692E}&quot;
        , IID_IMMDeviceEnumerator   := &quot;{A95664D2-9614-4F35-A746-DE8DB63617E6}&quot;
        , IID_IAudioSessionManager2 := &quot;{77AA99A0-1BD6-484F-8BC7-2C654C9A9B6F}&quot;
        , IID_IAudioSessionControl2 := &quot;{BFB7FF88-7239-4FC9-8FA2-07C950BE9C6D}&quot;
        , IID_ISimpleAudioVolume    := &quot;{87CE5498-68D6-44E5-9215-6DA47EF883D8}&quot;
        , eRender := 0, eMultimedia := 1, CLSCTX_ALL := 0x17
   if (volume + 0 != &quot;&quot;)
      volume := volume &gt; 100 ? 100 : volume &lt; 0 ? 0 : volume

   IMMDeviceEnumerator := ComObjCreate(MMDeviceEnumerator, IID_IMMDeviceEnumerator)
   ; IMMDeviceEnumerator::GetDefaultAudioEndpoint
   DllCall(NumGet(NumGet(IMMDeviceEnumerator+0)+4*A_PtrSize), &quot;Ptr&quot;, IMMDeviceEnumerator, &quot;UInt&quot;, eRender, &quot;UInt&quot;, eMultimedia, &quot;PtrP&quot;, IMMDevice)
   ObjRelease(IMMDeviceEnumerator)

   VarSetCapacity(GUID, 16)
   DllCall(&quot;Ole32.dll\CLSIDFromString&quot;, &quot;Str&quot;, IID_IAudioSessionManager2, &quot;Ptr&quot;, &amp;GUID)
   ; IMMDevice::Activate
   DllCall(NumGet(NumGet(IMMDevice+0)+3*A_PtrSize), &quot;Ptr&quot;, IMMDevice, &quot;Ptr&quot;, &amp;GUID, &quot;UInt&quot;, CLSCTX_ALL, &quot;Ptr&quot;, 0, &quot;PtrP&quot;, IAudioSessionManager2)
   ObjRelease(IMMDevice)

   ; IAudioSessionManager2::GetSessionEnumerator
   DllCall(NumGet(NumGet(IAudioSessionManager2+0)+5*A_PtrSize), &quot;Ptr&quot;, IAudioSessionManager2, &quot;PtrP&quot;, IAudioSessionEnumerator)
   ObjRelease(IAudioSessionManager2)

   ; IAudioSessionEnumerator::GetCount
   DllCall(NumGet(NumGet(IAudioSessionEnumerator+0)+3*A_PtrSize), &quot;Ptr&quot;, IAudioSessionEnumerator, &quot;UIntP&quot;, SessionCount)
   Loop % SessionCount
   {
      ; IAudioSessionEnumerator::GetSession
      DllCall(NumGet(NumGet(IAudioSessionEnumerator+0)+4*A_PtrSize), &quot;Ptr&quot;, IAudioSessionEnumerator, &quot;Int&quot;, A_Index-1, &quot;PtrP&quot;, IAudioSessionControl)
      IAudioSessionControl2 := ComObjQuery(IAudioSessionControl, IID_IAudioSessionControl2)
      ObjRelease(IAudioSessionControl)
      
      ; IAudioSessionControl2::GetProcessId
      DllCall(NumGet(NumGet(IAudioSessionControl2+0)+14*A_PtrSize), &quot;Ptr&quot;, IAudioSessionControl2, &quot;UIntP&quot;, ProcessId)
      If (PID == ProcessId)
      {
         ISimpleAudioVolume := ComObjQuery(IAudioSessionControl2, IID_ISimpleAudioVolume)
         if (volume + 0 != &quot;&quot;)
            ; ISimpleAudioVolume::SetMasterVolume
            DllCall(NumGet(NumGet(ISimpleAudioVolume+0)+3*A_PtrSize), &quot;Ptr&quot;, ISimpleAudioVolume, &quot;Float&quot;, volume/100.0, &quot;Ptr&quot;, 0)
         else
            ; ISimpleAudioVolume::SetMute
            DllCall(NumGet(NumGet(ISimpleAudioVolume+0)+5*A_PtrSize), &quot;Ptr&quot;, ISimpleAudioVolume, &quot;UInt&quot;, volume = &quot;mute&quot; ? true : false, &quot;Ptr&quot;, 0)
         ObjRelease(ISimpleAudioVolume)
      }
      ObjRelease(IAudioSessionControl2)
   }
   ObjRelease(IAudioSessionEnumerator)
}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (teadrinker)]]></author>
			<pubDate>Sun, 20 Jun 2021 20:31:25 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148527#p148527</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148525#p148525</link>
			<description><![CDATA[<p>Как подсказали на реддите, я был близко =__= надо было оттуда не нирсмд качать, а саундвольюмвью.<br />https://www.nirsoft.net/utils/sound_volume_view.html<br />А дальше делается:<br /></p><div class="codebox"><pre><code>run, D:\ahk\SoundVolumeView.exe /Switch BlueStacks</code></pre></div><p>Более того, у этой штуки даже есть GUI, в котором можно посмотреть, попробовать замутить-размутить, и даже скопировать название программы, которое потом нужно подсовывать командой.</p>]]></description>
			<author><![CDATA[null@example.com (Gh0sTG0)]]></author>
			<pubDate>Sun, 20 Jun 2021 19:36:40 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148525#p148525</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148524#p148524</link>
			<description><![CDATA[<p>Ок, я искал-искал, и возможно нашел. Походу вот эта штука могет:<br />https://www.reddit.com/r/AutoHotkey/comments/f38o95/muting_specific_application_with_nircmd/<br />Или нет... Оно походу только под 7ку...</p>]]></description>
			<author><![CDATA[null@example.com (Gh0sTG0)]]></author>
			<pubDate>Sun, 20 Jun 2021 18:50:39 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148524#p148524</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148523#p148523</link>
			<description><![CDATA[<p>Наверное каким-то чудом определить в микшере громкости HWND кнопки &quot;mute&quot;, относящейся к целевой программе. И потом посылать клик в этот ЭУ.</p>]]></description>
			<author><![CDATA[null@example.com (ypppu)]]></author>
			<pubDate>Sun, 20 Jun 2021 18:40:48 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148523#p148523</guid>
		</item>
		<item>
			<title><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=148522#p148522</link>
			<description><![CDATA[<div class="quotebox"><cite>ypppu пишет:</cite><blockquote><p>Общую громкость знаю как отключить:<br /></p><div class="codebox"><pre><code>F3:: Send, {Volume_Mute}</code></pre></div><p>А в отдельной программе - не знаю.</p></blockquote></div><p>Это то и я нашел <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /> Но оно совсем не то, глушить одновременно с прогой тот же ютуб или аудио/видеоплеер это вообще не вариант...</p>]]></description>
			<author><![CDATA[null@example.com (Gh0sTG0)]]></author>
			<pubDate>Sun, 20 Jun 2021 18:33:59 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=148522#p148522</guid>
		</item>
	</channel>
</rss>
