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

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

Nun-Nun 15-06-2011 04:53 1694636

Как с помощью bat-ника октрыть\закрыть лоток привода?
 
Собственно, вопрос по сабжу. Пытался найти в интернете, но так и не нашёл, как можно с помощью bat-ника открыть\закрыть лоток DVD-привода.

amel27 15-06-2011 05:06 1694637

батником без сторонних утилит (типа NirCmd) никак, через VBS:
Код:

WScript.CreateObject("Shell.Application").NameSpace("E:").Self.InvokeVerb("&Извлечь")

Nun-Nun 15-06-2011 05:12 1694638

amel27,

Попробовал - лоток открывается, а как закрыть? Собственно, хотелось бы немного универсальности, чтобы одним скриптом и закрыть и открыть, если конечно такое возможно.

P.S. Нашёл вот такой скрипт, но он почему-то не работает, при запуске выдаёт сообщение об ошибке в символе 1 строки 9:

читать дальше »
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"

amel27 15-06-2011 06:00 1694648

Цитата:

Цитата Nun-Nun
одним скриптом и закрыть и открыть, если конечно такое возможно »

NirCmd может
Цитата:

Цитата Nun-Nun
выдаёт сообщение об ошибке »

если убрать "лишнее":
Код:

Set objWMP = CreateObject("WMPlayer.OCX.7")
Set colCDs = objWMP.cdromCollection

colCDs.Item(0).Eject 
MsgBox "Press any key to close CD",64,"Open Close Cd Tray"
colCDs.Item(0).Eject


Nun-Nun 15-06-2011 06:13 1694651

Цитата:

Цитата amel27
если убрать "лишнее":
Set objWMP = CreateObject("WMPlayer.OCX.7")
Set colCDs = objWMP.cdromCollection
colCDs.Item(0).Eject
MsgBox "Press any key to close CD",64,"Open Close Cd Tray"
colCDs.Item(0).Eject
»

Да, так работает - и закрывается и открывается. Единственный мешающий элемент - это висящее на экране после открытия лотка окно с кнопкой "ОК".

amel27 15-06-2011 07:43 1694676

Цитата:

Цитата Nun-Nun
Единственный мешающий элемент - это висящее на экране после открытия лотка окно с кнопкой "ОК". »

суть этого способа в том, что все нечётные вызовы Eject() открывают лоток, чётные - закрывают,
а определить сколько нам вызовов нужно нет возможности:
Код:

вызовов :    1 раз      2 раза
---------------------------------
закрыт        :  открывает  откр/закр
открыт  :      -      закрывает

всё-таки самое надёжное - через сторонние утилиты:
Код:

nircmd cdrom open
Код:

nircmd cdrom close

Nun-Nun 15-06-2011 15:24 1694885

amel27,

Начал дальше пробовать вариант с VBS-скриптом, но наткнулся ещё на одни грабли: если использую VBS-скрипт в составе батника перед командой SET /p yesno="Записать диск? (Y/N)", то после отработки VBS (т.е. открытия/закрытия лотка) батник зависает и оставшаяся его часть не выполняется. Пытался тасккилом убить wscript.exe-процесс - не помогло. Снимаю его через диспетчер задач (почему-то иногда снимается, иногда нет) - тогда оставшаяся часть батника работает. Видимо действительно с VBS-ом дело не пойдёт и без сторонней утилиты никак.

amel27 15-06-2011 15:30 1694888

Цитата:

Цитата Nun-Nun
использую VBS-скрипт в составе батника »

это как?.. может запускать VBS через START?
Код:

Start "" wscript "cdrom.vbs"

Nun-Nun 15-06-2011 15:58 1694913

Цитата:

Цитата amel27
это как?.. »

%windir%\System32\wscript.exe %PathVBS%\OpenCloseDVD.VBS
Цитата:

Цитата amel27
может запускать VBS через START? »

ОК, попробую.

Nun-Nun 15-06-2011 21:56 1695103

С командой START всё прошло без глюков. Ещё раз спасибо! Тему можно закрывать.

P.S. Попробовал NirCMD: впечатления только положительные. Говоря словами Ослика из известного мультика: "...И входит, и выходит..." :)


Время: 20:17.

Время: 20:17.
© OSzone.net 2001-