1 (изменено: serzh82saratov, 2012-07-16 01:02:06)

Тема: AHK: Windows 7 - перезагрузка системных устройств

Доброго дня.
Наверняка кто-то задавался такой идеей, потому вопрос: как перезагрузить например звуковую карту.
То-есть тоже самое, как если в диспетчере устройств на ней нажать отключить, а потом задействовать.
Пробовал через devcon , пишет неудачу.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

2

Re: AHK: Windows 7 - перезагрузка системных устройств

up

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

3

Re: AHK: Windows 7 - перезагрузка системных устройств

serzh82saratov пишет:

Доброго дня.
Наверняка кто-то задавался такой идеей, потому вопрос: как перезагрузить например звуковую карту.
То-есть тоже самое, как если в диспетчере устройств на ней нажать отключить, а потом задействовать.
Пробовал через devcon , пишет неудачу.

Нужно в сторону SetupApi смотреть.

4

Re: AHK: Windows 7 - перезагрузка системных устройств

Это сложно , мне смотреть бестолку.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

5 (изменено: Indomito, 2012-07-17 21:23:57)

Re: AHK: Windows 7 - перезагрузка системных устройств

serzh82saratov пишет:

Наверняка кто-то задавался такой идеей, потому вопрос: как перезагрузить например звуковую карту.

не думаю, т.к. не вижу смысла в автоматизации столь редкой операции. Тебя интересует что то конкретное или задача в целом?

P.S. На общий вопрос ответил Александр_

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

6

Re: AHK: Windows 7 - перезагрузка системных устройств

Indomito пишет:
serzh82saratov пишет:

Наверняка кто-то задавался такой идеей, потому вопрос: как перезагрузить например звуковую карту.

не думаю, т.к. не вижу смысла в автоматизации столь редкой операции. Тебя интересует что то конкретное или задача в целом?

P.S. На общий вопрос ответил Александр_

У меня проблема с звуковой  картой, частенько глючит и появляется очень неприятный фон, который пропадает только после перезагрузки устройства.
Чем нибудь можешь помочь?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

7

Re: AHK: Windows 7 - перезагрузка системных устройств

Сейчас гляну и постараюсь написать, если ни кто раньше не ответит.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

8 (изменено: serzh82saratov, 2012-07-17 21:51:02)

Re: AHK: Windows 7 - перезагрузка системных устройств

Indomito пишет:

Сейчас гляну и постараюсь написать, если ни кто раньше не ответит.

Спасибо, жду.
Да забыл сказать Пробовал через devcon
C:\Users\sergey>devcon disable "PCI\VEN_13F6&DEV_8788*"
PCI\VEN_13F6&DEV_8788&SUBSYS_84671043&REV_00\4&F52DBAB&0&28F0: Disable failed
No devices disabled.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

9

Re: AHK: Windows 7 - перезагрузка системных устройств

странно devcon работает - у тебя 7-ка? Если да то надо скачать нужную версию вот прочти - devcon в Windows7 - Форум системных администраторов

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

10 (изменено: serzh82saratov, 2012-07-17 22:53:19)

Re: AHK: Windows 7 - перезагрузка системных устройств

Indomito пишет:

странно devcon работает - у тебя 7-ка? Если да то надо скачать нужную версию вот прочти - devcon в Windows7 - Форум системных администраторов

Версия правильная была, просто с синтаксисом не правильно делал помогло это спасибо за наводку.

Run, "C:\devcon\x64\devcon_x64.exe" restart PCI\VEN_13F6*DEV_8788* , , hide
   ; а лучше
Run, "D:\AutoIt\other\devcon\x64\devcon_x64.exe" disable PCI\VEN_13F6*DEV_8788* , , hide
Sleep, 1000
Run, "D:\AutoIt\other\devcon\x64\devcon_x64.exe" enable PCI\VEN_13F6*DEV_8788* , , hide

Но всё-таки как то странно иногда через раз отключает причём в диспетчере каждый раз пишет отключено, а запускаю плеер и звук есть
Спасибо за наводку
Интересно возможно-ли это средстами АНК?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

11

Re: AHK: Windows 7 - перезагрузка системных устройств

Средствами AHK -  надо использовать DllCall и SetupApi

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

12

Re: AHK: Windows 7 - перезагрузка системных устройств

Интересно посмотреть на примере, для меня это тёмный лес.
И что именно искать нужно для решения определённой задачи?

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

13

Re: AHK: Windows 7 - перезагрузка системных устройств

1. Справка по AHK.
2. Описание фунции смотреть по ссылке выше.

Готового примера нет, а просто пример использования DLLCALL - он есть в справке, функция эта довольно многофункциональная

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

14

Re: AHK: Windows 7 - перезагрузка системных устройств

Читал много раз, но понимания куда рыть для выполнения моей задачи не приходит

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

15

Re: AHK: Windows 7 - перезагрузка системных устройств

Вот залез, глянул...
Удалить устройство - DiUninstallDevice function
Восстановить SetupDiUnremoveDevice function

P.S. Я не гарантирую т.к. под Windows не пишу ПО

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

16

Re: AHK: Windows 7 - перезагрузка системных устройств

Блин чёт я всё равно недогоняю, можно пример?
инглиш я не шпрехаю, и синтаксис только на C++ увидел.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

17 (изменено: Indomito, 2012-07-18 00:43:14)

Re: AHK: Windows 7 - перезагрузка системных устройств

serzh82saratov пишет:

инглиш я не шпрехаю, и синтаксис только на C++ увидел.

тогда лучше не связывайся, нужно/требуется уж точно знание англ. языка для IT-шника - это мин. требование.

P.S. Я бы написал, но боюсь допущу ошибку - много параметров входных.

"На каждое действие есть равная ему противодействующая критика." Постулат Харриссона
Для NotePad++(подсветка синтаксиса, автозавершение и плагины(AutoSave и RunMe).
OS Windows 10 x64 Pro

18

Re: AHK: Windows 7 - перезагрузка системных устройств

serzh82saratov пишет:

Интересно возможно-ли это средстами АНК?

Можно:

For Key In ComObjGet("winmgmts:{impersonationLevel=impersonate}!\\"
. A_ComputerName "\root\cimv2")
.ExecQuery("select Name from Win32_SoundDevice")
   Result.="`n"Key.Name "`n"
MsgBox, 262144, % A_Is64bitOS ", "A_PtrSize, % Result
ExitApp

Запустите код, при появлении окна-сообщения, скопируйте его содержимое (Control+C), и выложите тут. Если звуковых устройств несколько, укажите конкретно какой нужен.

19 (изменено: serzh82saratov, 2012-07-18 16:12:02)

Re: AHK: Windows 7 - перезагрузка системных устройств

Grey
нужное устройство - ASUS Xonar DG Audio Device

---------------------------
1, 4
---------------------------

NVIDIA High Definition Audio

NVIDIA High Definition Audio

NVIDIA High Definition Audio

ASUS Xonar DG Audio Device

HD Webcam C525

NVIDIA High Definition Audio

---------------------------
ОК   
---------------------------

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

20

Re: AHK: Windows 7 - перезагрузка системных устройств

serzh82saratov пишет:

А ещё не подскажете как в вынь 7 звуком управлять (прибавить-убавить-задать значение) без помощи Vista Audio Control Function Reference?

Для этого придётся создать новую тему с соответствующим вопросом.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

21

Re: AHK: Windows 7 - перезагрузка системных устройств

teadrinker пишет:
serzh82saratov пишет:

А ещё не подскажете как в вынь 7 звуком управлять (прибавить-убавить-задать значение) без помощи Vista Audio Control Function Reference?

Для этого придётся создать новую тему с соответствующим вопросом.

Создал

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

22

Re: AHK: Windows 7 - перезагрузка системных устройств

serzh82saratov пишет:

Grey
нужное устройство - ASUS Xonar DG Audio Device

---------------------------
1, 4
---------------------------

NVIDIA High Definition Audio

NVIDIA High Definition Audio

NVIDIA High Definition Audio

ASUS Xonar DG Audio Device

HD Webcam C525

NVIDIA High Definition Audio

---------------------------
ОК   
---------------------------

UP

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

23 (изменено: Grey, 2012-07-20 05:08:07)

Re: AHK: Windows 7 - перезагрузка системных устройств

Мой код будет работать с х64 версией интерпретатора в х64 системе, и с х86 АХК в х86 ОС (виртуальной машины нет (не ставил), но думаю, что будет работать как задумано на х86, если меня проверите, будет замечательно):

If A_Is64bitOS And A_PtrSize=4 Or !A_Is64bitOS And A_PtrSize=8
{
   MsgBox, 262160, % " ", % "Разрядность системы, должна быть"
                 . "`nодинаковой с разрядностью интепретатора!"
   ExitApp
}

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

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

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

   For Key In ComObjGet("winmgmts:{impersonationLevel=impersonate}!\\"
   . A_ComputerName "\root\cimv2")
   .ExecQuery("select Name, StatusInfo from Win32_SoundDevice")
   ;.ExecQuery("select Description, Status from Win32_PnPEntity")
      If (Key.Name~="ASUS")
      ;If (Key.Description~="mouse")
      {
         IsState:=Key.StatusInfo=3 ? True:False
         ;IsState:=Key.Status="OK" ? 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("setupapi\SetupDiSetClassInstallParams", "Ptr", hDevInfo
                                                  , "Ptr", Data[Index]
                                                  , "Ptr", &SP_PROPCHANGE_PARAMS
                                                  , "Int", sSize2)

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

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

ExitScript:
   DllCall("FreeLibrary", "Ptr", hModule)
   ExitApp

У меня в разделе медия три устройства (две звуковых и один ТВ тюнер). Заметил, что всегда выдаст ошибку если воспроизводится трэк на пример в запущенном Winamp'е, с ТВ тюнером так же дело обстоит, плюс ещё нужно завершать процессы связаные с пультом ДУ.

24

Re: AHK: Windows 7 - перезагрузка системных устройств

Grey
У меня тоже х64 система с х86 версией интерпретатора. Ну  интерпретатор поменять не долго.
У меня тоже всегда ошибка через devcon , потому поставил убийство 3 плееров (в том числе и видео) , так что с Winamp'ом так и должно быть, оно также и через диспетчер устройств происходит.

Скрипт Ваш для меня мягко говоря сложноват , не могу понять как им пользоватся, если не долго, распишите пожалуйста.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui

25

Re: AHK: Windows 7 - перезагрузка системных устройств

serzh82saratov пишет:

распишите пожалуйста.

Код делает выборку столбца DeviceID в таблице класса Win32_SoundDevice по совпавшей части (в данном случае ASUS) столбца Name, при проверке в цикле. Имея гъюид и Divice Instance Path на руках перебираем все представленные устройства и находим наш, воздействуем на его параметры.

serzh82saratov пишет:

...как им пользоватся...?

Жмём пробел.

26

Re: AHK: Windows 7 - перезагрузка системных устройств

Grey
Всё спасибо, разобрался.

По вопросам возмездной помощи пишите на E-Mail: serzh82saratov@mail.ru Telegram: https://t.me/sergiol982
Win10x64 AhkSpy, Hotkey, ClockGui