Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Определить текущее состояние устройства (http://forum.oszone.net/showthread.php?t=347713)

птичка0001 21-01-2021 13:31 2947098

Определить текущее состояние устройства
 
Всем привет!
Предыдущую тему не разрешают разблокировать, поэтому была создана новая.
1. SetupAPI: Определить не изменение состояния, а текущее состояние устройства.
2. SetupAPI: Предоставить ссылку на то, как хорошо API задокументирован, т.е. предоставить ссылку на документацию, конкретизировать. Предоставить ссылку на конкретный пример.
3. Да/нет: делать сие из SetupAPI?
4. Отключить/включить устройство, раз мы уж здесь собрались.
5. Рассмотреть альтернативы.

DJ Mogarych 21-01-2021 14:25 2947108

Цитата:

Цитата птичка0001
Отключить/включить устройство »

Код:

Disable-PnpDevice
Enable-PnpDevice


птичка0001 21-01-2021 14:51 2947112

На всякий случай: есть разные Windows API, которые "используют" SetupAPI

Iska 21-01-2021 18:56 2947131

птичка0001, мы сейчас про «просто устройства», или всё про те же внешние аудио «как бы устройства»?

птичка0001 21-01-2021 19:23 2947133

Iska, про все

greg zakharov 22-01-2021 12:17 2947221

DJ Mogarych, вопрос был по SA, а не по WMI, поверх которого созданы упомянутые вами командлеты, - можно разве что сослаться на альтернативы из пятого пункта.

Цитата:

Цитата птичка0001
про все

А вы на какой ответ расчитываете? Если в общих чертах по обозначенным вами пунктам, получим примерно следующую картину. Нет ни одного API, которое бы MS документировала от и до (именно по этой причине приходится браться за отладчики и дизассемблеры). Для начала можете глянуть таблицу экспорта:
Код:

cdb -z %__appdir__%setupapi.dll -c "!dh -e setupapi;q" | sed "/^[[:space:]]*[0-9]/!d"
Для вас, пожалуй, особый интерес могут вызвать такие функции как CM_Enable_DevNode, CM_Disable_DevNode и иже с ними (обратите внимание на форвардинг функций).
Альтернативы... WMI - о нём косвенно сказал DJ Mogarych, NTAPI - но там много нюансов, в частности есть функции вызов которых невозможен без "тушения" SMEP; реестр; самый верный путь - "общение" с устройствами посредством языка ассемблера, - словом, всё зависит от ваших предпочтений и осведомлённости по части устройства винды, а его всецело не по силам знать кому-то одному.

птичка0001 27-01-2021 21:32 2947755

greg zakharov, спасибо за ответ.

Тогда и CfgMgr32 в альтернативы.

И я... до сих пор не очень понимаю... зачем Вы начинали вести речь о HAL, рекомендовали проводить опыты про впихиванию фольги в разъем 3.5 мм... Сейчас перечитываю Руссиновича... и после всего я не понимаю, какую конечную цель Вы преследовали. Без сарказма, пожалуйста.

greg zakharov 27-01-2021 22:12 2947760

Цитата:

Цитата птичка0001
Тогда и CfgMgr32 в альтернативы.

Какбэ, оже есьмъ часть того же SA.
Цитата:

Цитата птичка0001
... зачем Вы начинали вести речь о HAL...

По-хорошему, сие лучше обсуждать в частном порядке, например, в той же телеге, но из-за ничем немотивированного бана... - ¯\_(ツ)_/¯
Цитата:

Цитата птичка0001
рекомендовали проводить опыты про впихиванию фольги в разъем 3.5 мм...

Какие у вас, однако, фантазии... Ну, если бы вы проделали сей опыт, кое-что бы вам открылось в ином ракурсе. Обычно так включается радио на смартфоне, когда под рукой нет гарнитуры.
Цитата:

Цитата птичка0001
Сейчас перечитываю Руссиновича...

Для чего? У вас есть мозг, руки, отладчик - вперёд.
Цитата:

Цитата птичка0001
и после всего я не понимаю, какую конечную цель Вы преследовали.

Нести массветления в просветы. Ээм, наоборот - просветление в массы.
Цитата:

Цитата птичка0001
Без сарказма, пожалуйста.

(С) "Я - ложка дёгтя в бочке мёда... нарыв на заднице..."

Iska 27-01-2021 22:22 2947761

Цитата:

Цитата greg zakharov
(С) "Я - ложка дёгтя в бочке мёда... нарыв на заднице..." »

Вы — как Zero Gravity с forum.farmanager.com ;).

птичка0001 27-01-2021 22:33 2947763

Цитата:

Цитата птичка0001
Тогда и CfgMgr32 в альтернативы

Цитата:

Цитата greg zakharov
Какбэ, оже есьмъ часть того же SA

Porting code from SetupApi to CfgMgr32


Хех, ясненько :)

greg zakharov 27-01-2021 23:15 2947767

Цитата:

Цитата Iska
Вы — как Zero Gravity с forum.farmanager.com

То была всего лишь цитата из первого "Die Hard", так что вполне может разойтись в массы.

Цитата:

Цитата птичка0001
Хех, ясненько :)

До вашего сознания, видимо, не дошли слова о форвардинге функций. Шош...
Код:

┌─[E:\sandbox]
└λ cdb -z %__appdir__%setupapi.dll -c "!dh -e setupapi;q"
...
  ordinal hint target          name
        1    0          CMP_GetBlockedDriverInfo (forwarded to cfgmgr32.CMP_GetBlockedDriverInfo)
        2    1          CMP_GetServerSideDeviceInstallFlags (forwarded to cfgmgr32.CMP_GetServerSideDeviceInstallFlags)
        3    2          CMP_Init_Detection (forwarded to cfgmgr32.CMP_Init_Detection)
        4    3          CMP_Report_LogOn (forwarded to cfgmgr32.CMP_Report_LogOn)
        5    4          CMP_WaitNoPendingInstallEvents (forwarded to cfgmgr32.CMP_WaitNoPendingInstallEvents)
        6    5          CMP_WaitServicesAvailable (forwarded to cfgmgr32.CMP_WaitServicesAvailable)
        7    6          CM_Add_Driver_PackageW (forwarded to cfgmgr32.CM_Add_Driver_PackageW)
        8    7          CM_Add_Empty_Log_Conf (forwarded to cfgmgr32.CM_Add_Empty_Log_Conf)
        9    8          CM_Add_Empty_Log_Conf_Ex (forwarded to cfgmgr32.CM_Add_Empty_Log_Conf_Ex)
        10    9          CM_Add_IDA (forwarded to cfgmgr32.CM_Add_IDA)
        11  10          CM_Add_IDW (forwarded to cfgmgr32.CM_Add_IDW)
        12  11          CM_Add_ID_ExA (forwarded to cfgmgr32.CM_Add_ID_ExA)
        13  12          CM_Add_ID_ExW (forwarded to cfgmgr32.CM_Add_ID_ExW)
        14  13          CM_Add_Range (forwarded to cfgmgr32.CM_Add_Range)
        15  14          CM_Add_Res_Des (forwarded to cfgmgr32.CM_Add_Res_Des)
...

Или же вы так и будете продолжать читать намазы на доки MS?

птичка0001 28-01-2021 00:45 2947770

Ну... перед тем, как ответить, я посмотрела вот эту табличку, так как на текуший момент у меня нет Windows и я уже более 2 лет не использую данную ОС.
Цитата:

1)Forwarded to cfgmgr32
2)Forwarded to devrtl
Цитата:

Цитата greg zakharov
Или же вы так и будете продолжать читать намазы на доки MS?

И продолжу читать... Как Вы там сказали? Маневр ортодоксальной представительницы женского пола? Он и есть.

Аминь.

greg zakharov 28-01-2021 18:53 2947837

Цитата:

Цитата птичка0001
И продолжу читать...

Дело, как говорится, хозяйственного мыла.
Цитата:

Цитата птичка0001
Как Вы там сказали?

그래 당신은 박해하고 있습니다!

птичка0001 28-01-2021 20:00 2947845

У меня нет вопросов, но спасибо :) Возможно, у других участников конференции будут вопросы.
Надеюсь, Вы знаете, на что идете, публикуя контакт публично, ибо написать может кто угодно. Я бы отредактировала сообщение.

greg zakharov 28-01-2021 22:29 2947864

Ну, ежели вы настаиваете...

greg zakharov 29-01-2021 10:53 2947904

птичка0001, если ещё актуально - хаконавтика заработала снова по своему прежнему адресу.

птичка0001 01-02-2021 11:33 2948322

Из сообщения #10:
Цитата:

This topic provides code examples that show how to port code that uses Setupapi.dll functionality to use Cfgmgr32.dll instead. Porting your code allows you to run your code on the Universal Windows Platform (UWP), which does not support SetupApi. A subset of CfgMgr32 is supported on UWP
Если Вам что-то не нравится, Вы можете сие обосновать и изменить документацию.

greg zakharov, Вы ведете канал на яндексе (или яндекс мессенджер). Дело в том, что в IT тусовке сие не пользуется популярностью. Зайдите на тот же хабр — какие там будут самые обсуждаемые мессенджеры? У Вас просто не будет той аудитории, на которую рассчитаны Ваши посты. А где Вы там будете публиковаться — это Ваш выбор.

greg zakharov 01-02-2021 23:02 2948405

птичка0001, о UWP, который к тому же не входит в круг моих интересов и компетенции, речи не было. Что касается документации... ммм... там очень много нужно переправить, а это время, нервы и средства к существованию. Можно было бы продать почку и на врученные деньги комсомольцем-добровольцем, но за это спасибо никто не скажет.
Цитата:

Цитата птичка0001
У Вас просто не будет той аудитории, на которую рассчитаны Ваши посты.

Желаете выступить в роли моего менеджера? :) Признаться, с самого начала не было никакого умысла собирать аудиторию. Просто заметки на полях. На другом канале вообще никакой аудитории, но это никак не напрягает. Вообще, если перебираться, скажем, в телеграмм, скорее всего придётся менять и формат от просто заметок, до уровня отладчика-сознания. Так что просто удалил подпись, чтобы ссылка не маячила.

icq99999999 07-02-2021 10:51 2949102

Цитата:

Цитата птичка0001
Рассмотреть альтернативы. »

мне пришлось сделать другой скрипт так как предыдущее решение не всегда правильно срабатывало, понятно что скрипт совсем не универсален но это лучше чем ничего(но я делал его для себя чтоб переключать наушники/tv одной кнопкой)
AutoHotkey:
Скрытый текст
F3::
Run, c:\windows\system32\control.exe mmsys.cpl
WinWaitActive, Звук
WinSet, AlwaysOnTop, On, Звук
Send, {DOWN}
Send, {DOWN}
Send, {DOWN}
Send, {DOWN}
ControlGet, TvON, Enabled, , Button1
ControlGet, nodefault, Enabled, , Button2
If (TvON = 0)
{
MsgBox, tv off
return
}
If (nodefault = 1){
send {tab}
send {tab}
send {enter}
} Else {
Send, {DOWN}
Send, {DOWN}
Send, {DOWN}
; ControlClick, Button2, A
send {tab}
send {tab}
send {enter}
}
WinClose, Звук
return

птичка0001 08-02-2021 17:27 2949328

icq99999999, Вам по-прежнему нужно вот это, но Вас чем-то сие не устраивает. Скорее всего, и с AutoHotkey/AutoIt можно решить Вашу задачу, но это не ко мне. Кстати, до сих пор непонятно, что Вы делаете и зачем, ибо каждый раз задача видоизменяется. В прошлой теме у нас был devcon и иже с ним.
У icq99999999 windows 7, насчет Powershell он пишет:
Цитата:

Цитата icq99999999
можно поставить



Время: 11:41.

Время: 11:41.
© OSzone.net 2001-