Eject/close CD

Те, кто ей начинают пользоваться, уже не в силах остановиться! Она может все. Или почти все!

Сообщение Alkaline » Вс сен 28, 2003 4:21 pm

Подскажите, плиз, как организовать, чтобы одна и та же комбинация клавиш (мне удобно shift+esc) и выдвигала, и задвигала CD. Ведь команды для изменения текущего состояния (закрыть, если открыт, и наоборот) нет... <!--emo&:huh:-->Изображение<!--endemo-->

И вообще: как в той же команде после выполнения основного действия отключить (изменить) данную команду?

Спасибо. да, если это f...ing manual, то укажите поточнее где искать! <!--emo&:D-->Изображение<!--endemo-->
Alkaline
Призывник
 
Сообщений: 4
Зарегистрирован: Вс сен 28, 2003 2:11 pm
Пункты репутации: 0

Сообщение Scalder » Вс сен 28, 2003 4:35 pm

У поклонников FAR такой проблемы нет <!--emo&:)-->Изображение<!--endemo-->.
В нашем файловом менеджере это реализовано - Ins - убрать, Del - открыть.
<!--coloro:green--><span style="color:green"><!--/coloro-->А что я не так сказал?<!--colorc--></span><!--/colorc-->
<!--coloro:red--><span style="color:red"><!--/coloro-->А ты как думал? Конечно это ИМХО<!--colorc--></span><!--/colorc-->

<!--coloro:red--><span style="color:red"><!--/coloro-->>В каждом системном администраторе есть что-то от Бога.<!--colorc--></span><!--/colorc-->
В каждом программисте есть что-то от Бога для Бога. :-р
<a href="http://www.erepublik.com/en/referrer/mrScalder" target="_blank">Изображение</a>
Scalder
Генерал-майор
 
Сообщений: 2587
Зарегистрирован: Пн апр 08, 2002 10:21 am
Пункты репутации: 0

Сообщение dAnIK SeNT » Вс сен 28, 2003 8:09 pm

2Сцальдер
Ну и причем здесь ФАР? <!--emo&:(-->Изображение<!--endemo-->
Во-первых, даже если ты являешься его поклонником, он у тебя открыт не все время - ты, наверное, и другие программы иногда запускаешь. Во-вторых, ты говоришь, что ins-убрать а del-открыть, а чел русским по белому написал, что ему надо одной клавишей изменять состояние ЦДюка. И в случае, если открывать/закрывать ЦДюк потребуется из скрипта, по расписанию, в ходе выполнения каких-то других действий, ФАР абсолютно точно не поможет. Получается, что ФАР для этих целей ровно в четыре с половиной раза менее удобен, чем кнопочка Еджект на самом ЦДюке. Так что не смущай народ агитацией <!--emo&:)-->Изображение<!--endemo-->.

2Алкалинъ
Изменения состояния в виде встроенных команд нету. К тому же встроенные команды, кажется, работают только с первым в списке ЦДюком. Однако, где-то по-моему пробегала прожка, выполняющая эту операцЫю посредством командной строки. Попробую поискать... Ты, впрочем, тоже юзай гугль <!--emo&:)-->Изображение<!--endemo-->.
яНЯЕД ОН СОПЪФЙЕ: Athlon 64 X2 5200+ @2,86GHz / nF 570 SLI (ASUS M2N SLI Deluxe) / 4 Gb RAM (4x1Gb Kingston) / 2,9Tb SATAII (0,50+0,64+0,75+1,00Tb WD) / ASUS 8800 GTS512 / 2x NEC-Optiarc AD-7173 / Thermaltake ToughPower 650W / 2x30W Microlab Solo-2 / 20" LCD Benq FP202W (wide) / openSUSE 11.1 / KDE 4.2.1
<!--coloro:Navy--><span style="color:Navy"><!--/coloro-->оН БЯЕЛ БНОПНЯЮЛ - Б email. б ICQ ОНЪБКЪЧЯЭ ПЮГ Б ОНКЦНДЮ.<!--colorc--></span><!--/colorc-->
dAnIK SeNT
Маршал
 
Сообщений: 5101
Зарегистрирован: Чт мар 28, 2002 7:48 pm
Откуда: яяяп
Пункты репутации: 0

Сообщение Reuben » Вс сен 28, 2003 8:54 pm

2dAnIK SeNT
по первому пункту очень верно. Живо представляю, как при открытом ворде выделив весь документ Scalder открывает свой сидюк кнопкой Del.
На самом деле все не так плохо. За управление сидюками, как и за много чего еще (проигрвыание AVI, MPEG и MP3 файлов например) отвечает функция mci. (exec cd -- фактически алиас к самым распространенным командам mci) функция mci работает с одноименным виндовским интерфейсом (его же использует ТС-шный листер, например, и медиаплеер win95)
а в этом интерфейсе не различается состояние, когда сидишник открыт, от того, когда он пуст.
всем желающи могу предложить запустиь команду
Код: выделить все
win.debug(mci("status cdaudio ready"))

при разных положениях СД-привода.

но надо еще подумать.
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Reuben » Пн сен 29, 2003 12:00 pm

в догонку. Цитата из описания commandline утилиты cdeject производства Tir Na Nog
Код: выделить все

Основным глюком программы является то, что она не различает 2 состояния: "CD открыт" и
"CD закрыт, но нем нет диска". Вернее это глюк операционной системы. Поэтому когда используется
автматическое определение состояния программа отработает не правильно. Но если указать
конкретное действие (открыть/закрыть) - все отработает как надо.

Для борьбы с этим глюком была выпущена версия 1.0.3. Борьба происходит следующим образом.
После того как вы запустите программу (в режиме автоопределения состояния), она сделает попытку
понять что именно вы от нее хотите (открыть или закрыть привод), выполнит соответствующее
действие и завершит свою работу. Если же в течении следующих 10 секунд вы снова запустите
программу, она посчитает, что вы не удовлетворены полученным результатом (или его отсутствием,
так как возможно была дана команда открыть уже открытый привод) и выполнит противоположное
действие.


Таким образом, если вы запустили программу, а она не сработала как надо - у вас есть 10 секунд
что бы снова ее запустить и получить то что вы хотели.

Двух выстрелов обычно хватает...



То есть проблема это глобальная и решать ее умеют программы, работающие напрямую с драйверами (как cdslow, например)

впрочем, воспроизвести workaround предложенный Tir Na Nog с помощью скрипта в PP -- нетрудное упражнение. если будет не лень, я его даже напишу и выложу
Последний раз редактировалось Reuben Пн сен 29, 2003 12:01 pm, всего редактировалось 1 раз.
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Alkaline » Пн сен 29, 2003 1:07 pm

Спасибо за совет, Reuben!

Действительно, вначале я попытался решить проблему с помощью cdeject версии 1.0.0. При этом на открытие программа работала, а при попытке закрытия дергала сидюком (пытаясь опять-таки открыть). Более "умная" 1.03 мне понравилась, спасибо Tir Na Nog'у!

Странно, что в РР не предусмотрено команды-перевертыша, как я написал в первом письме. Ведь хотя cdeject и не висит в памяти, но помнить о ней надо...

Если будет решение для РР - замечательно.

Еще раз спасибо! <!--emo&:rolleyes:-->Изображение<!--endemo-->
Alkaline
Призывник
 
Сообщений: 4
Зарегистрирован: Вс сен 28, 2003 2:11 pm
Пункты репутации: 0

Сообщение Alkaline » Вт сен 30, 2003 5:13 am

(вдогонку)

А что это за фигня: Error running command (5): Sharing/Network-protection error
В дальше путь к cdeject?

В режиме теста (при открытом окне конфигурации PP все работает)...
Alkaline
Призывник
 
Сообщений: 4
Зарегистрирован: Вс сен 28, 2003 2:11 pm
Пункты репутации: 0

Сообщение Reuben » Ср окт 01, 2003 11:09 am

Как и было обещано, скрипт, имитирующий cdeject.
Код: выделить все
static h
local u

u=mci("status cdaudio ready")

if (u eq "true") Do
   mci("set cdaudio door open")
Else
   if (timesec - h  ge 12 ) Do
 mci("set cdaudio door closed")
 h=timesec

   Else
 mci("set cdaudio door open")
 h=0
   Endif   
Endif



для работы со вторым сидишником везде cdaudio заменить на cdaudio1.

багрепорты принимаются, если кто хочет как-то улучшить или чего-то добавить, максимально приветствуется
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение Alkaline » Ср окт 01, 2003 11:45 am

Ай, спасибо!

Вот человек: лишних слов не тратит, пообещал - сделал! Уважжаю. <!--emo&B)-->Изображение<!--endemo-->

Скрипт работает, как часы. Спасибо Tir Na Nog'y, но его программка (для моих целей) мне уже не нужна.

А с shift+esc какая-то ерунда творится. Наверное, что-нибудь система (W2k) перехватывает...

Но, как я убедился, ctrl+` меня тоже вполне устраивает. <!--emo&:P-->Изображение<!--endemo-->
Alkaline
Призывник
 
Сообщений: 4
Зарегистрирован: Вс сен 28, 2003 2:11 pm
Пункты репутации: 0

Сообщение Gluek » Ср окт 01, 2003 3:40 pm

2Reuben
Не работает, блин! Привод один - Nec 9100 rw 40x10x40 (R:) и Nero виртуальный диск (I:) - не выбрасывает

<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->для работы со вторым сидишником везде cdaudio заменить на cdaudio1<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
делал

<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->всем желающи могу предложить запустиь команду
CODE

win.debug(mci("status cdaudio ready"))


при разных положениях СД-привода.<!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->
при cdaudio -- false всегда
при cdaudio1 -- 0
<!--fonto:Tahoma--><span style="font-family:Tahoma"><!--/fonto--><!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo-->Для контактов со мной пользуйтесь адресом mrgluek@gmail.com (e-mail & jabber).<!--sizec--></span><!--/sizec-->
Полезное в <a href="http://gluek.info/" target="_blank">моем блоге</a>: бесплатный <a href="http://gluek.info/free-files-hosting/" target="_blank">хостинг для файлов</a> и <a href="http://gluek.info/free-images-hosting/" target="_blank">для картинок</a>, бесплатные <a href="http://gluek.info/free-mp3-download/" target="_blank">сайты с музыкой</a>.<!--fontc--></span><!--/fontc-->
Gluek
Генерал-лейтенант
 
Сообщений: 3107
Зарегистрирован: Пн янв 06, 2003 6:24 am
Откуда: Россия/Москва
Пункты репутации: 0

Сообщение eduha » Сб окт 04, 2003 1:50 pm

Можно и так:

Код: выделить все
local cdstatus

cdstatus = mci("status cdaudio ready")

if (cdstatus == "true") do
   mci("set cdaudio door open")
   cdisopen = "true"
   quit
endif

if (cdisopen == "true") do
   mci("set cdaudio door closed")
   cdisopen = "false"
else
   mci("set cdaudio door open")
   cdisopen = "true"
endif
<span style='color:blue'>Мэджик пипл, вуду пипл</span>
eduha
Капитан
 
Сообщений: 233
Зарегистрирован: Пн авг 11, 2003 4:39 pm
Откуда: Караганда / Казахстан
Пункты репутации: 0

Сообщение Reuben » Вт окт 07, 2003 3:10 pm

2eduha
можно и так. но это тоже не избавляет от необходимости вызывать скрипт два раза подряд, хотя наверно снижает частоту ошибок.
кстати, в скриптах можно писать ElseIf.

2Gluek
скорее всего, сdaudio -- виртуальник, а сdaudio1 должен быть как раз резак.
но почему он пишет 0? скорее всего у тебя был другой cdшник с другой буквой, он и получил cdaudio1 , тогда твой теперешний должен быть cdaudio2 или cdaudio3, попробуй.
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0

Сообщение eduha » Вт окт 07, 2003 4:46 pm

2Reuben
<!--QuoteBegin--></span><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>QUOTE </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->можно и так. но это тоже не избавляет от необходимости вызывать скрипт два раза подряд, хотя наверно снижает частоту ошибок. <!--QuoteEnd--></td></tr></table><span class='postcolor'><!--QuoteEEnd-->

Избавляет. У меня с первого раза сидюк открывается / закрывается (кроме случая, когда, например, я открою CD скриптом, закрою кнопкой eject, и опять попробую открыть его скриптом. Тогда действительно, приходится жать два раза)
<span style='color:blue'>Мэджик пипл, вуду пипл</span>
eduha
Капитан
 
Сообщений: 233
Зарегистрирован: Пн авг 11, 2003 4:39 pm
Откуда: Караганда / Казахстан
Пункты репутации: 0

Сообщение Reuben » Вт окт 07, 2003 4:51 pm

2eduha
Именно это я и имел ввиду.
<span style='color:purple'>
Ugly girl is better than nothing
Nothing is better than pretty girl
</span>
Reuben
Подполковник
 
Сообщений: 532
Зарегистрирован: Ср дек 04, 2002 8:59 am
Откуда: Jerusalem
Пункты репутации: 0


Вернуться в Windows PowerPro

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

cron