Управление CD/DVD-приводом с помощью Windows Scripting Host

Когда искал инфу по виндовым командам, случайно наткнулся на вот такую вот прикольную вещь)) В данном примере в качестве языка используется VBScript, но можно использовать и JS.Создаём файл с расширением .vbs и пишем там вот такой код:

  1. Set oWMP = CreateObject("WMPlayer.OCX.7" ) 
  2. Set colCDROMs = oWMP.cdromCollection 
  3. colCDROMs.Item(Wscript.arguments.Item(0)).Eject 
  4. Wscript.CreateObject("Wscript.Shell").Run "taskkill /im wscript.exe /f"

В первой строчке создаётся объект WMPLayer.OCX, в составе которого имеется множество свойств и методов для управления мультимедийным контентом. В том числе и коллекция (массив объектов) cdromCollection, элементы которой соответствуют всем оптическим приводам, установленным в системе. По индексу можно получить доступ к конкретному приводу (в данном случае индексом является параметр, переданный из командной строки - WScript.arguments(0)). Собственно,метод Eject открывает лоток привода.
Последней строчкой мы "заметаем следы", выгружая из памяти процесс wscript.exe (по каким-то необъяснимым причинам он остаётся в памяти после завершения выполнения скрипта).

С закрытием лотка дело обстоит немного мутновато. Дело в том, что, как ни странно, нужного метода у элементов массива cdromCollection просто нет. Но если два раза вызвать метод Eject, то лоток привода, если он открыт, задвинется обратно. Ну, а если закрыт, то откроется и сразу же закроется...
Модифицируем наш скрипт с учётом вышесказанного:

  1. Sub CloseODD
  2.     Set oWMP = CreateObject("WMPlayer.OCX.7" ) 
  3.     Set colCDROMs = oWMP.cdromCollection 
  4.     colCDROMs.Item(Wscript.arguments.Item(1)).Eject 
  5.     colCDROMs.Item(Wscript.arguments.Item(1)).Eject
  6. EndSub

  7. Sub OpenODD
  8.     Set oWMP = CreateObject("WMPlayer.OCX.7" )
  9.     Set colCDROMs = oWMP.cdromCollection 
  10.     colCDROMs.Item(Wscript.arguments.Item(1)).Eject
  11. EndSub

  12. SelectCase WScript.arguments(0)
  13.     Case"open"
  14.         OpenODD
  15.     Case"close"
  16.         CloseODD
  17. EndSelect

  18. Wscript.CreateObject("Wscript.Shell").Run "taskkill /im wscript.exe /f"

Теперь у нашего скрипта два параметра. Первый указывает действие, которое нужно выполнить - open/close. Ну а второй - номер нужного привода...
Скрипт нужно запускать так:

;открыть первый дисковод
cdrom.vbs open 0
;закрыть
cdrom.vbs close 0

Теперь можно создать ярлык для скрипта, подвесить его на горячую клавишу и немного ускорить работу со своим CD/DVD приводом))

Следующая запись

Предыдущая запись

Связанные записи

Похожие записи

Комментарии

Еще нет комментариев.

Пингбэки

Оповещения открыты.

Трэкбэки

URL архива

Only authorized users can post comments