<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; AHK: Windows 7 - перезагрузка системных устройств]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=7245&amp;type=atom" />
	<updated>2012-07-21T11:50:02Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=7245</id>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61858#p61858" />
			<content type="html"><![CDATA[<p><strong>Grey</strong><br />Всё спасибо, разобрался.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2012-07-21T11:50:02Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61858#p61858</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61798#p61798" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>распишите пожалуйста.</p></blockquote></div><p>Код делает выборку столбца DeviceID в таблице класса <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa394463(v=vs.85).aspx">Win32_SoundDevice</a> по совпавшей части (в данном случае ASUS) столбца Name, при проверке в цикле. Имея <a href="http://pcsupport.about.com/od/driverssupport/a/device-class-guid.htm">гъюид</a> и Divice Instance Path <em>на руках</em> перебираем все представленные устройства и находим наш, воздействуем на его параметры.</p><div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>...как им пользоватся...?</p></blockquote></div><p>Жмём пробел.</p>]]></content>
			<author>
				<name><![CDATA[Grey]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=25792</uri>
			</author>
			<updated>2012-07-19T20:12:58Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61798#p61798</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61789#p61789" />
			<content type="html"><![CDATA[<p><strong>Grey</strong><br />У меня тоже х64 система с х86 версией интерпретатора. Ну&nbsp; интерпретатор поменять не долго.<br />У меня тоже всегда ошибка через devcon , потому поставил убийство 3 плееров (в том числе и видео) , так что с Winamp&#039;ом так и должно быть, оно также и через диспетчер устройств происходит.</p><p>Скрипт Ваш для меня мягко говоря сложноват , не могу понять как им пользоватся, если не долго, распишите пожалуйста.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2012-07-19T16:38:54Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61789#p61789</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61786#p61786" />
			<content type="html"><![CDATA[<p>Мой код будет работать с х64 версией интерпретатора в х64 системе, и с х86 АХК в х86 ОС (виртуальной машины нет (не ставил), но думаю, что будет работать как задумано на х86, если меня проверите, будет замечательно):</p><div class="codebox"><pre><code>If A_Is64bitOS And A_PtrSize=4 Or !A_Is64bitOS And A_PtrSize=8
{
   MsgBox, 262160, % &quot; &quot;, % &quot;Разрядность системы, должна быть&quot;
                 . &quot;`nодинаковой с разрядностью интепретатора!&quot;
   ExitApp
}

SetBatchLines, -1
DeviceGUID:=&quot;4D36E96C&quot; ; media
;DeviceGUID:=&quot;4D36E96F&quot; ; mouse
          . &quot;E325&quot;
          . &quot;11CE&quot;
          . &quot;BFC1&quot;
          . &quot;08002BE10318&quot;
VarSetCapacity(GUID, 16, 0)
NumPut(&quot;0x&quot;SubStr(DeviceGUID,  1, 8), GUID, 0, &quot;UInt&quot;)
NumPut(&quot;0x&quot;SubStr(DeviceGUID,  9, 4), GUID, 4, &quot;UShort&quot;)
NumPut(&quot;0x&quot;SubStr(DeviceGUID, 13, 4), GUID, 6, &quot;UShort&quot;)
Loop, 8
   NumPut(&quot;0x&quot;SubStr(DeviceGUID, 15+(A_Index*2), 2)
                                    , GUID, 7+A_Index, &quot;UChar&quot;)
hModule:=DllCall(&quot;LoadLibraryW&quot;, &quot;Str&quot;, &quot;setupapi.dll&quot;, &quot;Ptr&quot;)
For Key In ComObjGet(&quot;winmgmts:{impersonationLevel=impersonate}!\\&quot;
. A_ComputerName &quot;\root\cimv2&quot;)
.ExecQuery(&quot;select DeviceID, Name from Win32_SoundDevice&quot;)
;.ExecQuery(&quot;select DeviceID, Description from Win32_PnPEntity&quot;)
{
   DeviceCount:=A_Index
   If (Key.Name~=&quot;ASUS&quot;)
   ;If (Key.Description~=&quot;mouse&quot;)
   {
      InstanceID:=Key.DeviceID, DeviceName:=Key.Name
      ;InstanceID:=Key.DeviceID, DeviceName:=Key.Description
      Break
   }
}
OnExit, ExitScript

Space::
   SetDeviceEnabled()
   KeyWait, % A_ThisHotkey
   Return

SetDeviceEnabled()
{
   global GUID, DeviceCount, InstanceID, DeviceName
   static Counter
   Data:={}
   hDevInfo:=DllCall(&quot;setupapi\SetupDiGetClassDevs&quot;, &quot;Ptr&quot;, &amp;GUID
                                                   , &quot;Ptr&quot;, 0
                                                   , &quot;Ptr&quot;, 0
                                                   , &quot;UInt&quot;, DIGCF_PRESENT:=2
                                                   , &quot;Ptr&quot;)

   Loop, % DeviceCount+1
   {
      VarSetCapacity(SP_DEVINFO_DATA%A_Index%, sSize1:=A_PtrSize=4 ? 28:32, 0)
      NumPut(sSize1, SP_DEVINFO_DATA%A_Index%, 0, &quot;UInt&quot;)
      DllCall(&quot;setupapi\SetupDiEnumDeviceInfo&quot;, &quot;Ptr&quot;, hDevInfo
                                              , &quot;Int&quot;, A_Index-1
                                              , &quot;Ptr&quot;, &amp;SP_DEVINFO_DATA%A_Index%)
      Data.Insert(&amp;SP_DEVINFO_DATA%A_Index%)
   }

   Index:=GetIndexOfInstance(hDevInfo, Data, InstanceID)
   Counter++

   For Key In ComObjGet(&quot;winmgmts:{impersonationLevel=impersonate}!\\&quot;
   . A_ComputerName &quot;\root\cimv2&quot;)
   .ExecQuery(&quot;select Name, StatusInfo from Win32_SoundDevice&quot;)
   ;.ExecQuery(&quot;select Description, Status from Win32_PnPEntity&quot;)
      If (Key.Name~=&quot;ASUS&quot;)
      ;If (Key.Description~=&quot;mouse&quot;)
      {
         IsState:=Key.StatusInfo=3 ? True:False
         ;IsState:=Key.Status=&quot;OK&quot; ? True:False
         Break
      }

   VarSetCapacity(SP_PROPCHANGE_PARAMS, sSize2:=20, 0)
   NumPut(SP_CLASSINSTALL_HEADER:=8, SP_PROPCHANGE_PARAMS, 0)
   NumPut(PropertyChange:=18, SP_PROPCHANGE_PARAMS, 4)
   NumPut(StateChange:=IsState ? 2:1, SP_PROPCHANGE_PARAMS, 8)
   NumPut(Scopes:=1, SP_PROPCHANGE_PARAMS, 12)
   NumPut(HwProfile:=0, SP_PROPCHANGE_PARAMS, 16)

   DllCall(&quot;setupapi\SetupDiSetClassInstallParams&quot;, &quot;Ptr&quot;, hDevInfo
                                                  , &quot;Ptr&quot;, Data[Index]
                                                  , &quot;Ptr&quot;, &amp;SP_PROPCHANGE_PARAMS
                                                  , &quot;Int&quot;, sSize2)

   bReturn:=DllCall(&quot;setupapi\SetupDiCallClassInstaller&quot;, &quot;Int&quot;, PropertyChange
                                                        , &quot;Ptr&quot;, hDevInfo
                                                        , &quot;Ptr&quot;, Data[Index]
                                                        , &quot;UInt&quot;)
   If bReturn
      TrayTip, % &quot;State: is &quot;(StateChange=1 ? &quot;en&quot;:&quot;dis&quot;)&quot;able&quot;, % DeviceName
   If !bReturn And Counter&gt;1
      MsgBox, 262160, % &quot; &quot;, % &quot;Error occur&quot;, 1
   Data:=&quot;&quot;
}

GetIndexOfInstance(diSetHandle, diData, instanceId)
{
   Loop, % diData.MaxIndex()
   {
      VarSetCapacity(DeviceInstanceId, 3, 0)
      bReturn:=DllCall(&quot;setupapi\SetupDiGetDeviceInstanceId&quot;, &quot;Ptr&quot;, diSetHandle
                                                            , &quot;Ptr&quot;, diData[A_Index-1]
                                                            , &quot;Ptr&quot;, &amp;DeviceInstanceId
                                                            , &quot;Int&quot;, 3
                                                            , &quot;Int*&quot;, RequiredSize
                                                            , &quot;UInt&quot;)
      If (!bReturn And A_LastError=ERROR_INSUFFICIENT_BUFFER:=122)
      {
         VarSetCapacity(DeviceInstanceId, RequiredSize, 0)
         DllCall(&quot;setupapi\SetupDiGetDeviceInstanceId&quot;, &quot;Ptr&quot;, diSetHandle
                                                      , &quot;Ptr&quot;, diData[A_Index-1]
                                                      , &quot;Ptr&quot;, &amp;DeviceInstanceId
                                                      , &quot;Int&quot;, RequiredSize
                                                      , &quot;Int*&quot;, RequiredSize)
         If (StrGet(&amp;DeviceInstanceId)=instanceId)
            Return, A_Index-1
      }
   }
   Return, -1
}

ExitScript:
   DllCall(&quot;FreeLibrary&quot;, &quot;Ptr&quot;, hModule)
   ExitApp</code></pre></div><p>У меня в разделе медия три устройства (две звуковых и один ТВ тюнер). Заметил, что всегда выдаст ошибку если воспроизводится трэк на пример в запущенном Winamp&#039;е, с ТВ тюнером так же дело обстоит, плюс ещё нужно завершать процессы связаные с пультом ДУ.</p>]]></content>
			<author>
				<name><![CDATA[Grey]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=25792</uri>
			</author>
			<updated>2012-07-19T16:17:54Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61786#p61786</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61729#p61729" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p><strong>Grey</strong><br />нужное устройство - ASUS Xonar DG Audio Device</p><p>---------------------------<br />1, 4<br />---------------------------</p><p>NVIDIA High Definition Audio</p><p>NVIDIA High Definition Audio</p><p>NVIDIA High Definition Audio</p><p>ASUS Xonar DG Audio Device</p><p>HD Webcam C525</p><p>NVIDIA High Definition Audio</p><p>---------------------------<br />ОК&nbsp; &nbsp;<br />---------------------------</p></blockquote></div><p>UP</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2012-07-18T14:20:59Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61729#p61729</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61716#p61716" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>teadrinker пишет:</cite><blockquote><div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>А ещё не подскажете как в вынь 7 звуком управлять (прибавить-убавить-задать значение) без помощи Vista Audio Control Function Reference?</p></blockquote></div><p><span style="color: #008800">Для этого придётся создать новую тему с соответствующим вопросом.</span></p></blockquote></div><p>Создал</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2012-07-18T12:00:35Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61716#p61716</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61714#p61714" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>А ещё не подскажете как в вынь 7 звуком управлять (прибавить-убавить-задать значение) без помощи Vista Audio Control Function Reference?</p></blockquote></div><p><span style="color: #008800">Для этого придётся создать новую тему с соответствующим вопросом.</span></p>]]></content>
			<author>
				<name><![CDATA[teadrinker]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=24515</uri>
			</author>
			<updated>2012-07-18T11:47:53Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61714#p61714</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61713#p61713" />
			<content type="html"><![CDATA[<p><strong>Grey</strong><br />нужное устройство - ASUS Xonar DG Audio Device</p><p>---------------------------<br />1, 4<br />---------------------------</p><p>NVIDIA High Definition Audio</p><p>NVIDIA High Definition Audio</p><p>NVIDIA High Definition Audio</p><p>ASUS Xonar DG Audio Device</p><p>HD Webcam C525</p><p>NVIDIA High Definition Audio</p><p>---------------------------<br />ОК&nbsp; &nbsp;<br />---------------------------</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2012-07-18T10:20:47Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61713#p61713</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61709#p61709" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>Интересно возможно-ли это средстами АНК?</p></blockquote></div><p>Можно:</p><div class="codebox"><pre><code>For Key In ComObjGet(&quot;winmgmts:{impersonationLevel=impersonate}!\\&quot;
. A_ComputerName &quot;\root\cimv2&quot;)
.ExecQuery(&quot;select Name from Win32_SoundDevice&quot;)
   Result.=&quot;`n&quot;Key.Name &quot;`n&quot;
MsgBox, 262144, % A_Is64bitOS &quot;, &quot;A_PtrSize, % Result
ExitApp</code></pre></div><p>Запустите код, при появлении окна-сообщения, скопируйте его содержимое (Control+C), и выложите тут. Если звуковых устройств несколько, укажите конкретно какой нужен.</p>]]></content>
			<author>
				<name><![CDATA[Grey]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=25792</uri>
			</author>
			<updated>2012-07-18T03:19:45Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61709#p61709</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61703#p61703" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>serzh82saratov пишет:</cite><blockquote><p>инглиш я не шпрехаю, и синтаксис только на C++ увидел.</p></blockquote></div><p>тогда лучше не связывайся, нужно/требуется уж точно знание англ. языка для IT-шника - это мин. требование.</p><p>P.S. Я бы написал, но боюсь допущу ошибку - много параметров входных.</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2012-07-17T20:35:40Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61703#p61703</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61698#p61698" />
			<content type="html"><![CDATA[<p>Блин чёт я всё равно недогоняю, можно пример?<br />инглиш я не шпрехаю, и синтаксис только на C++ увидел.</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2012-07-17T19:26:48Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61698#p61698</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61696#p61696" />
			<content type="html"><![CDATA[<p>Вот залез, глянул...<br />Удалить устройство - <a href="http://msdn.microsoft.com/en-us/library/windows/hardware/ff544754(v=vs.85).aspx">DiUninstallDevice function</a><br />Восстановить <a href="http://msdn.microsoft.com/en-us/library/windows/hardware/ff552193(v=vs.85).aspx">SetupDiUnremoveDevice function</a></p><p>P.S. Я не гарантирую т.к. под Windows не пишу ПО</p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2012-07-17T19:22:31Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61696#p61696</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61695#p61695" />
			<content type="html"><![CDATA[<p>Читал много раз, но понимания куда рыть для выполнения моей задачи не приходит <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2012-07-17T19:13:56Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61695#p61695</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61693#p61693" />
			<content type="html"><![CDATA[<p>1. Справка по AHK.<br />2. Описание фунции смотреть по ссылке выше.</p><p>Готового примера нет, а просто пример использования DLLCALL - он есть в справке, функция эта довольно многофункциональная <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Indomito]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27285</uri>
			</author>
			<updated>2012-07-17T19:09:26Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61693#p61693</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: AHK: Windows 7 - перезагрузка системных устройств]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=61691#p61691" />
			<content type="html"><![CDATA[<p>Интересно посмотреть на примере, для меня это тёмный лес.<br />И что именно искать нужно для решения определённой задачи?</p>]]></content>
			<author>
				<name><![CDATA[serzh82saratov]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27879</uri>
			</author>
			<updated>2012-07-17T19:05:19Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=61691#p61691</id>
		</entry>
</feed>
