Показать полную графическую версию : [решено] *WMI* | Как программно удалить устройтсво?
Здравствуйте все! У меня раз в день глючит модем, которое можно оживить так:
удалить модем, сылающийся на порт
удалить порт
обновитьс список устройств (чтобы порт добавился)
добавить модем
Другие способы не прокатывают, хочу этот автоматизировать. Как найти его класс через WMI я выяснил, но удалить его и обновить устройства - что-то туплю. Подскажите, кто что знает?
)) чесно - это из разряда "здраствуйте, у меня у машины мотора нет, но кататься хота, куда лучше поставить цепь для педалей"? а если по теме я слышал о WMI Code Creator, может это то что тебе нужно?
Продолжая метафору: "мотор у машины есть. Педаль газа жать надоело. Ищу вентиль автостарта". По теме: ещё есть большой MSDN, где описано то, что выдаёт WMI Code Creator. Так вот, по поводу классов Win32_SerialPort: есть метод Restart, который тупо не реализован.
Нашёл вот что:
Just guessing but try these :
rundll32 cfgmgr32.dll ,CM_Reenumerate_DevNode
rundll32 cfgmgr32.dll ,CM_Locate_DevNodeA
Нифига не работает
RunDll32.exe Syssetup.dll,UpdatePnpDeviceDrivers
Настолько ядрёная вещь, что понаделала двойников некоторых устройств, выбила нафиг вай-фай, который заработал только после перезагрузки. На такие жертвы я не согласен. Ищем ещё.
2 метода оставлены на закуску:
'example of AppActivate and SendKeys
set WshShell = CreateObject("WScript.Shell")
WshShell.Run "devmgmt.msc"
WScript.Sleep 1000
While WshShell.AppActivate("Device Manager") = FALSE
wscript.sleep 1000
Wend
WshShell.AppActivate "Device Manager"
WScript.Sleep 200
WshShell.Sendkeys "{TAB}"
WScript.Sleep 200
WshShell.SendKeys "%A"
WScript.Sleep 200
WshShell.SendKeys "A"
While WshShell.AppActivate("Scanning Plug and Play Compliant Hardware...") = TRUE
wscript.sleep 5000
Wend
WshShell.AppActivate "Device Manager"
'Wscript.Sleep 500
WshShell.Sendkeys "{ENTER}"
Wscript.Sleep 500
WshShell.Sendkeys "%{F4}"
*** Script Ends
не дай бог нажать что-нибудь на клавиатуре или неудачно тыкнуть мышкой
devcon rescan
http://support.microsoft.com/default.aspx?scid=KB%3BEN-US%3Bq311272
неужели WMI не сделали? :(
Что-то devcon я вообще не оценил. Выдаёт ответ в совершенно неудобоворимом формате. Пробовал найти свой модем в устройствах - гемор какой-то. Единственная полезная функция - это rescan.
В общем devcon - в мусорку.
Метод активации запуском менеджера устройств не прокатывает, ибо комбинация клавиш, которую надо нажать, чтобы вызвать обновление устройств, просто жуткая! как для фаталити в мортал-комбате. Предложенный буржуями вариант не прокатил на русскоязычной винде.
В общем оставленное на закуску - в мусорку.
Ищем дальше.
Написал удобную утилиту, использующую cfgmgr32.dll
Столкнулся с похожей проблемой
Очень хотелось бы увидеть реализацию
К сожалению, я не могу прикрепить исходник, т.к. сумма моих вложений превышает 1.99 Мб. и что-то там надо удалять, а мне лень. Я думал оно самоуничтожается при необходимости
pva, всегда можно выложить на обменник, а ссылку выложить сюда или в ПМ просящему.
Так ли сложно выложить на какой-нибудь обменник, как посоветовал Iska?
Nerey, скажи почту, я вышлю. С обменниками надо заморачиваться
Почту указываем в профиле...
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.