Когда искал инфу по виндовым командам, случайно наткнулся на вот такую вот прикольную вещь)) В данном примере в качестве языка используется VBScript, но можно использовать и JS.Создаём файл с расширением .vbs и пишем там вот такой код:
- Set oWMP = CreateObject("WMPlayer.OCX.7" )
- Set colCDROMs = oWMP.cdromCollection
- colCDROMs.Item(Wscript.arguments.Item(0)).Eject
- Wscript.CreateObject("Wscript.Shell").Run "taskkill /im wscript.exe /f"
В первой строчке создаётся объект WMPLayer.OCX, в составе которого
имеется множество свойств и методов для управления мультимедийным
контентом. В том числе и коллекция (массив объектов) cdromCollection,
элементы которой соответствуют всем оптическим приводам, установленным в
системе. По индексу можно получить доступ к конкретному приводу (в
данном случае индексом является параметр, переданный из командной строки
- WScript.arguments(0)). Собственно,метод Eject открывает лоток
привода.
Последней строчкой мы "заметаем следы", выгружая из памяти
процесс wscript.exe (по каким-то необъяснимым причинам он остаётся в
памяти после завершения выполнения скрипта).
С закрытием лотка
дело обстоит немного мутновато. Дело в том, что, как ни странно, нужного
метода у элементов массива cdromCollection просто нет. Но если два раза
вызвать метод Eject, то лоток привода, если он открыт, задвинется
обратно. Ну, а если закрыт, то откроется и сразу же закроется...
Модифицируем наш скрипт с учётом вышесказанного:
- Sub CloseODD
- Set oWMP = CreateObject("WMPlayer.OCX.7" )
- Set colCDROMs = oWMP.cdromCollection
- colCDROMs.Item(Wscript.arguments.Item(1)).Eject
- colCDROMs.Item(Wscript.arguments.Item(1)).Eject
- EndSub
- Sub OpenODD
- Set oWMP = CreateObject("WMPlayer.OCX.7" )
- Set colCDROMs = oWMP.cdromCollection
- colCDROMs.Item(Wscript.arguments.Item(1)).Eject
- EndSub
- SelectCase WScript.arguments(0)
- Case"open"
- OpenODD
- Case"close"
- CloseODD
- EndSelect
- Wscript.CreateObject("Wscript.Shell").Run "taskkill /im wscript.exe /f"
Теперь у нашего скрипта два параметра. Первый указывает действие,
которое нужно выполнить - open/close. Ну а второй - номер нужного
привода...
Скрипт нужно запускать так:
;открыть первый дисковод
cdrom.vbs open 0
;закрыть
cdrom.vbs close 0
Теперь можно создать ярлык для скрипта, подвесить его на горячую клавишу и немного ускорить работу со своим CD/DVD приводом))
Комментарии
Еще нет комментариев.