<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=16436&amp;type=atom" />
	<updated>2021-06-21T11:49:55Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=16436</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148544#p148544" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong> А, ясно.</p>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2021-06-21T11:49:55Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148544#p148544</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148543#p148543" />
			<content type="html"><![CDATA[<p>Проще.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-06-21T11:49:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148543#p148543</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148541#p148541" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong> А тогда зачем значение mute-unmute хранить в переменной?<br /></p><div class="codebox"><pre><code>mute := 0
!Space::
   mute := !mute</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2021-06-21T11:43:16Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148541#p148541</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148540#p148540" />
			<content type="html"><![CDATA[<p>Почему не получается, можно взять из системы.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-06-21T11:42:32Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148540#p148540</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148536#p148536" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong> Кстати, а почему не получается взять значение mute/unmute из системы, а не хранить его в программе?</p>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2021-06-21T11:14:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148536#p148536</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148534#p148534" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Спасибо, работает.</p>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2021-06-21T08:37:18Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148534#p148534</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148531#p148531" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />Завтра из интереса попробую переделать под ваш код.</p>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2021-06-20T20:50:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148531#p148531</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148530#p148530" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Gh0sTG0 пишет:</cite><blockquote><p>И, я правильно понял, что оно тыркает 0/100?</p></blockquote></div><p>Нет, по первой клавише mute/unmute, по второй прибавляет громкость, по третьей убавляет.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-06-20T20:41:04Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148530#p148530</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148529#p148529" />
			<content type="html"><![CDATA[<p>Не знаю, как больше нравится. Технически проще кодом AHK, чтобы не запускать стороннее приложение.</p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-06-20T20:39:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148529#p148529</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148528#p148528" />
			<content type="html"><![CDATA[<p><strong>teadrinker</strong><br />О___О Какая огромная штука...<br />Мб все таки проще run, D:\ahk\SoundVolumeView.exe /Switch BlueStacks ?<br />И, я правильно понял, что оно тыркает 0/100? Или все таки 0/системная громкость?</p>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2021-06-20T20:37:31Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148528#p148528</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148527#p148527" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2021-06-20T20:31:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148527#p148527</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148525#p148525" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2021-06-20T19:36:40Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148525#p148525</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148524#p148524" />
			<content type="html"><![CDATA[<p>Ок, я искал-искал, и возможно нашел. Походу вот эта штука могет:<br />https://www.reddit.com/r/AutoHotkey/comments/f38o95/muting_specific_application_with_nircmd/<br />Или нет... Оно походу только под 7ку...</p>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2021-06-20T18:50:39Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148524#p148524</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148523#p148523" />
			<content type="html"><![CDATA[<p>Наверное каким-то чудом определить в микшере громкости HWND кнопки &quot;mute&quot;, относящейся к целевой программе. И потом посылать клик в этот ЭУ.</p>]]></content>
			<author>
				<name><![CDATA[ypppu]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=5974</uri>
			</author>
			<updated>2021-06-20T18:40:48Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148523#p148523</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Замутить и потом размутить одну программу win10 [решено]]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=148522#p148522" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[Gh0sTG0]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=39523</uri>
			</author>
			<updated>2021-06-20T18:33:59Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=148522#p148522</id>
		</entry>
</feed>
