Работа с CD-ROM'ом -- Новая идея!
Select messages from
# through # FAQ
[/[Print]\]
Goto page 1, 2  Next  :| |:
Total Commander -> Общие вопросы

#1: Работа с CD-ROM'ом -- Новая идея! Author: aLexxLocation: Новокузнецк PostPosted: Sun Sep 17, 2006 06:27
    —
Привет всем!
Клавиши F1 (Кто-нить когда-нить справку читал? Very Happy ), F11 и F12 на моём ТС никогда не использовались. Задумка:
На F1 повесить изменение состояния CD-ROM'а. Т.е., если открыт - закрыть и наоборот. Причём, при закрытии не просчитывать наличие компакт-диска. Просто закрыть. А на F11 и F12 повесить переход на сидюк, соответственно, на левой и на правой панелях ТС.
Лично я пока это всё реализовал с помощью скриптов от Aezay (прога "TcScript") и утилитки "CDEject". Но что-то мне оно не очень нравится.
Могут ли наши гуру реализовать это с помощию скриптов "vbs"?
И, желательно, без применения ентой утилитки. Просто скриптом...

#2:  Author: StrangeRRor PostPosted: Sun Sep 17, 2006 14:28
    —
Quote:
А на F11 и F12 повесить переход на сидюк

Для этого можно использовать команду cm_GotoDrive[диск]=...

#3:  Author: aLexxLocation: Новокузнецк PostPosted: Mon Sep 18, 2006 03:39
    —
Эти команды и используются. Сидюк у меня буквой Z, поэтому никаких напрягов с cm_GotoDrive нет. Просто, когда закрываешь сидюк средствами ТС, т.е. этой командой (а вставлена, например, болванка для записи), то ТС слишком долго её пытается прочитать, а затем выкатывает - "Ошибка, нет диска!". А у меня по F1 сидюк просто закрывается, без чтения.
Я через 10-15 мнут забыл, что на приводе кнопка есть...

#4:  Author: StrangeRRor PostPosted: Mon Sep 18, 2006 10:17
    —
А если попробовать поиграть с параметрами Noreread=... и DeviceChange=...

#5:  Author: CaptainFlintLocation: Москва PostPosted: Mon Sep 18, 2006 10:28
    —
aLexx
Вот, нарыл в инете VBS-скрипт, подогнал под требуемые условия:
Code:
Set oWMP = CreateObject("WMPlayer.OCX.7")
Set colCDROMs = oWMP.cdromCollection
colCDROMs.Item(0).Eject
colCDROMs.Item(0).Eject

Вроде, работает. Eject вызывается два раза, поскольку эта функция закрывает лоток только если была вызвана после открытия. В первый раз пытается открыть, даже если сидюк открыт.
Единственная проблема - у меня не хочет завершаться. Процесс wscript остаётся висеть в памяти. Может, кто-то из скриптовых гуру подсобит...

StrangeRRor wrote:
А если попробовать поиграть с параметрами Noreread=... и DeviceChange=...

Вопрос был не в этом. Просто если использовать для закрытия сидюка команду перехода на диск, то Тотал будет после закрытия переходить на этот диск и перечитывать его, чего хочется избежать, если диска нет. Требуется просто закрыть, без перехода на этот диск и без использования внешних средств (не знаю, почему).

#6:  Author: aLexxLocation: Новокузнецк PostPosted: Sat Sep 23, 2006 10:27
    —
2 CaptainFlint
Сенькс, будем пробовать...

"без использования внешних средств (не знаю, почему)"
Хотя и утилька CDEject_103 (автор - Tir Na Nog) всего 12 кб, но хотелось бы более элегантное решение... Very Happy

#7:  Author: VolniyLocation: Местный PostPosted: Sun Sep 24, 2006 04:08
    —
aLexx wrote:
... всего 12 кб, но хотелось бы более элегантное решение... Very Happy


NERO установлена? Тогда может вот этот VBS скрипт подойдет:
Code:
Set n = CreateObject("Nero.Nero")
Set d = n.GetDrives(262172)(0)
'd.EjectCD
d.LoadCD
'd.EraseCDRW(True)
Set d=Nothing
Set n=Nothing

Закомментированные строки это для создания других команд. Соответственно d.EjectCD для выкидывания СD, а d.EraseCDRW(True) - для быстрого стирания RW диска (это не проверил, просто такого диска под рукой не оказалось).


Last edited by Volniy on Sun Sep 24, 2006 15:26; edited 1 time in total

#8:  Author: aLexxLocation: Новокузнецк PostPosted: Sun Sep 24, 2006 07:40
    —
Nero7 установлен. Но думаю сносить...
Нашёл прогу для записи CD-DVD. Всего 500 кб, а умеет всё, что может Nero. Простая, как перетягивание каната.
Но скриптик попробую. Спасибо!

#9:  Author: ZorrozLocation: Россия, Иркутская обл., г. Ангарск PostPosted: Sun Sep 24, 2006 08:18
    —
Volniy
EjectCD и LoadCD работают. При вызове d.EraseCDRW(True) ничего не происходит. Стоит Nero7.

#10:  Author: VolniyLocation: Местный PostPosted: Sun Sep 24, 2006 15:44
    —
Zorroz wrote:
При вызове d.EraseCDRW(True) ничего не происходит. Стоит Nero7.

Взял у соседа RW и проверил - точно не трёт. Заморочка с выбором типа поддерживаемых носителей. Там большой список констант и никакого объяснения что и к чему. Поменял на 262172 (NERO_MEDIA_DVD_ANY). Теперь вроде работает (у меня Smile ).

Arrow Немного более продвинутый вариант скрипта

.

#11:  Author: aLexxLocation: Новокузнецк PostPosted: Sun Sep 24, 2006 18:50
    —
И всё-таки пока решил оставить всё как есть...
Прдётся стороннюю прогу юзать.
Вот когды освою WSH, буду экскрименты ставить.

#12:  Author: DrSharkLocation: Kyiv, Ukraine PostPosted: Sat May 31, 2008 00:31
    —
CaptainFlint wrote:
Вот, нарыл в инете VBS-скрипт, подогнал под требуемые условия:
[...]
Единственная проблема - у меня не хочет завершаться. Процесс wscript остаётся висеть в памяти. Может, кто-то из скриптовых гуру подсобит...

Отличное решение! И у меня процесс в памяти не висит.

#13:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Sat May 31, 2008 21:23
    —
У PowerPro есть плагин, открывающий/закрывающий лоток. Внешних утилит не требует. Мне не подходит, потому что у меня лотков этих два, а тот плагин позволяет работать только с одним. Я повесил действия открыть/закрыть на клавиши в ТС и на панель PowerPro. Однако поставленную в посте aLexx задачу тот плагин решает.

#14:  Author: МоторокерLocation: г. Пермь (читается Перьмь) PostPosted: Mon Jun 02, 2008 08:08
    —
Программа CDSlow решает все проблемы, плюс ограничивает скорость вращения диска.

Last edited by Моторокер on Wed Jun 04, 2008 08:12; edited 1 time in total

#15:  Author: aLexxLocation: Новокузнецк PostPosted: Tue Jun 03, 2008 23:58
    —
А можно здесь поподробней? Из командной строки можно, или нет?
У меня версия CDSlow 2.2.



Total Commander -> Общие вопросы


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Goto page 1, 2  Next  :| |:
Page 1 of 2

Powered by phpBB © 2001, 2005 phpBB Group