Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как с помощью bat-ника октрыть\закрыть лоток привода?

Ответить
Настройки темы
CMD/BAT - [решено] Как с помощью bat-ника октрыть\закрыть лоток привода?

Аватара для Nun-Nun

Ветеран


Сообщения: 2153
Благодарности: 294


Конфигурация

Профиль | Отправить PM | Цитировать


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

Отправлено: 04:53, 15-06-2011

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


батником без сторонних утилит (типа NirCmd) никак, через VBS:
Код: Выделить весь код
WScript.CreateObject("Shell.Application").NameSpace("E:").Self.InvokeVerb("&Извлечь")
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:06, 15-06-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Nun-Nun

Ветеран


Сообщения: 2153
Благодарности: 294

Профиль | Отправить PM | Цитировать


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"

-------
Свобода не означает вседозволенность.


Последний раз редактировалось Nun-Nun, 15-06-2011 в 05:32.


Отправлено: 05:12, 15-06-2011 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата 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
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:00, 15-06-2011 | #4


Аватара для Nun-Nun

Ветеран


Сообщения: 2153
Благодарности: 294

Профиль | Отправить PM | Цитировать


Цитата 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
»
Да, так работает - и закрывается и открывается. Единственный мешающий элемент - это висящее на экране после открытия лотка окно с кнопкой "ОК".

-------
Свобода не означает вседозволенность.


Отправлено: 06:13, 15-06-2011 | #5


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Nun-Nun:
Единственный мешающий элемент - это висящее на экране после открытия лотка окно с кнопкой "ОК". »
суть этого способа в том, что все нечётные вызовы Eject() открывают лоток, чётные - закрывают,
а определить сколько нам вызовов нужно нет возможности:
Код: Выделить весь код
вызовов :    1 раз      2 раза
---------------------------------
закрыт	:  открывает   откр/закр
открыт  :      -       закрывает
всё-таки самое надёжное - через сторонние утилиты:
Код: Выделить весь код
nircmd cdrom open
Код: Выделить весь код
nircmd cdrom close
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:43, 15-06-2011 | #6


Аватара для Nun-Nun

Ветеран


Сообщения: 2153
Благодарности: 294

Профиль | Отправить PM | Цитировать


amel27,

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

-------
Свобода не означает вседозволенность.


Отправлено: 15:24, 15-06-2011 | #7


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата Nun-Nun:
использую VBS-скрипт в составе батника »
это как?.. может запускать VBS через START?
Код: Выделить весь код
Start "" wscript "cdrom.vbs"
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:30, 15-06-2011 | #8


Аватара для Nun-Nun

Ветеран


Сообщения: 2153
Благодарности: 294

Профиль | Отправить PM | Цитировать


Цитата amel27:
это как?.. »
%windir%\System32\wscript.exe %PathVBS%\OpenCloseDVD.VBS
Цитата amel27:
может запускать VBS через START? »
ОК, попробую.

-------
Свобода не означает вседозволенность.


Отправлено: 15:58, 15-06-2011 | #9


Аватара для Nun-Nun

Ветеран


Сообщения: 2153
Благодарности: 294

Профиль | Отправить PM | Цитировать


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

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

-------
Свобода не означает вседозволенность.


Последний раз редактировалось Nun-Nun, 15-06-2011 в 22:26.


Отправлено: 21:56, 15-06-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Как с помощью bat-ника октрыть\закрыть лоток привода?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - С помощью bat-ника найти и заменить текст в файле на текст из другого файла Nun-Nun Скриптовые языки администрирования Windows 1 08-03-2011 15:25
Установка - [решено] Установка и удаление компонентов Windows - установка с помощью bat'ника SharkyUA Microsoft Windows 7 1 31-12-2010 22:13
CMD/BAT - [решено] Как с помощью bat-ника записать названия папок в текстовый файл? Nun-Nun Скриптовые языки администрирования Windows 9 23-02-2010 20:15
Любой язык - Как узнать из Bat-ника версию *.DLL, *.ax и т.п. Dilinjer Скриптовые языки администрирования Windows 11 31-08-2007 12:44
Как из bat файла открыть лоток CD Guest Microsoft Windows 95/98/Me (архив) 2 23-07-2003 21:06




 
Переход