Форум
Написать нам
  • Страница 1 из 1
  • 1
Модератор форума: as-master  
Управление DVD приводом
bob6666Дата: Четверг, 03 Декабря 2009, 09:37 | Сообщение # 1
Новый участник
Группа: Пользователи
Сообщений: 15
Репутация: 0
Награды: 0
Статус: Offline
Помогите пожалуйста! Пытаюсь сделать значек на рабочем столе, 1-нажатием
на него открывать или закрывать привод.Ничего не выходит. Если можно исходник скиньте!
Заранее благодарен. :'(


BOB

Сообщение отредактировал bob6666 - Четверг, 03 Декабря 2009, 09:38
 
SowerДата: Четверг, 03 Декабря 2009, 10:18 | Сообщение # 2
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (bob6666)
Пытаюсь сделать значек на рабочем столе

Может программку на ммб? :)
 
SowerДата: Четверг, 03 Декабря 2009, 10:41 | Сообщение # 3
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Деожи модуль, состряпал специально для тебя :) такчто жду + :D
Умеет закрывать и открывать привод thumbs_up
Пример (исходник) есть, такчто разберешься :)
Прикрепления: opeclosemodule.zip (7.4 Kb)


Сообщение отредактировал Sower - Четверг, 03 Декабря 2009, 12:53
 
DEMBELДата: Четверг, 03 Декабря 2009, 13:53 | Сообщение # 4
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
а можешь еще сделать, чтобы программа сама определяла статус привода и решала, открыть его или закрыть? тогда и вправду можно будет обойтись одним ярлыком во всех случаях.



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
SowerДата: Четверг, 03 Декабря 2009, 14:31 | Сообщение # 5
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (DEMBEL)
а можешь еще сделать, чтобы программа сама определяла статус привода и решала, открыть его или закрыть?

попробую в свободное время сделать
 
YURIYДата: Четверг, 03 Декабря 2009, 17:08 | Сообщение # 6
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Sower)
Деожи модуль, состряпал специально для тебя

Мужики, вы чё, упали что ли?

открыть лоток:

Code
MCICommand("set cdaudio door open")

закрыть:

Code
MCICommand("set cdaudio door closed")

scratch

..\MMB\Samples\MCIresult.mbd



Вечная память Андрею Сергееву!
 
DEMBELДата: Четверг, 03 Декабря 2009, 17:30 | Сообщение # 7
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
да уж, дружно читаем справку и файл mcistr.hlp со списком команд MCI redface



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
bob6666Дата: Пятница, 04 Декабря 2009, 05:53 | Сообщение # 8
Новый участник
Группа: Пользователи
Сообщений: 15
Репутация: 0
Награды: 0
Статус: Offline
Огромное спасибо Sowerу за оказанную помощь! thumbs_up Так всё просто и ясно.
А я неделю парился. Вот теперь модуль можно подправить,так-как приводов 2 и +2виртуальные. Прога теряется в догадках,какой привод открыть или закрыть.
Ну ничего,пробьёмся!


BOB

Сообщение отредактировал bob6666 - Пятница, 04 Декабря 2009, 05:55
 
SowerДата: Пятница, 04 Декабря 2009, 09:58 | Сообщение # 9
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (bob6666)
Вот теперь модуль можно подправить,так-как приводов 2 и +2виртуальные. Прога теряется в догадках,какой привод открыть или закрыть.

У меня тоже два, но открывается основной

Добавлено (04 Декабрь 2009, 09:56)
---------------------------------------------

Quote (YURIY)
открыть лоток: CodeMCICommand("set cdaudio door open") закрыть: CodeMCICommand("set cdaudio door closed")

Кстати в модуле тоже самое, но тут например надобы сделать
Quote (DEMBEL)
а можешь еще сделать, чтобы программа сама определяла статус привода и решала, открыть его или закрыть? тогда и вправду можно будет обойтись одним ярлыком во всех случаях.

Добавлено (04 Декабрь 2009, 09:58)
---------------------------------------------

Quote (Sower)
а можешь еще сделать, чтобы программа сама определяла статус привода и решала, открыть его или закрыть? тогда и вправду можно будет обойтись одним ярлыком во всех случаях.

Здесь MCICommand не поможет, во всяком случае из ммб.
 
bob6666Дата: Пятница, 04 Декабря 2009, 11:22 | Сообщение # 10
Новый участник
Группа: Пользователи
Сообщений: 15
Репутация: 0
Награды: 0
Статус: Offline
Модуль opeclosemodule.zip(7Kb) при запуске и нажатии на кнопку выдаёт
ошибку!!!
Прикрепления: 9191169.jpg (60.7 Kb)


BOB
 
SowerДата: Пятница, 04 Декабря 2009, 12:30 | Сообщение # 11
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (bob6666)
выдаёт
ошибку!!!

Это не модуль выдаёт ошибку, а само приложением ммб, т.к. не может найти этот самый модуль :) Он должен быть во внедренных объектах (проверьте), если его там нет, то добавьте. Если есть, при этом выдаёт ошибку, значит он тупо не может скопироваться в папку temp/mmbplayer, причиной этому может быть или антивирус или чтото еще... Попробуйте прописать другой путь, например положите модуль на диск C:\

и замените в скрипте у кнопок путь <Embedded>\openclose.exe на c:\openclose.exe - это должно 100% работать, но сам модуль тут непричем!!

 
YURIYДата: Пятница, 04 Декабря 2009, 16:48 | Сообщение # 12
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (bob6666)
Огромное спасибо Sowerу за оказанную помощь!

Прошу прощения за нескромность, мой код у вас не работает, наверное? Или вас больше устраивает метод запихнуть ненужный файл в проект, когда есть стандартные команды для этого?

Quote (bob6666)
Вот теперь модуль можно подправить,так-как приводов 2 и +2виртуальные. Прога теряется в догадках,какой привод открыть или закрыть.

В этом проекте:

Quote (YURIY)
..\MMB\Samples\MCIresult.mbd

есть замечательная кнопка "Open Drive E:" со следующим кодом:

Code
** close MCI device before next steps (just for sure;)
** this can avoid some MCI access problems
MCICommand("close cdaudio")
** now let's assume you have CD drive D: and E: and you want to open Drive E:
**Open drive x: (x being the letter of the drive you wish to open [e: must be in lowercase])
MCICommand("open cdaudio!e: alias driveE")
MCICommand("set driveE door open")

bob6666, читайте справку и изучайте примеры в составе MMB. Никакой модуль здесь не нужен.



Вечная память Андрею Сергееву!
 
DEMBELДата: Пятница, 04 Декабря 2009, 17:08 | Сообщение # 13
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
а статус дверки там можно определить, открыта или закрыта?



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
YURIYДата: Пятница, 04 Декабря 2009, 18:22 | Сообщение # 14
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Можно, вроде. Но пока не получается.


Вечная память Андрею Сергееву!
 
PeterДата: Пятница, 04 Декабря 2009, 18:30 | Сообщение # 15
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 1265
Репутация: 75
Награды: 18
Статус: Offline
Quote (DEMBEL)
а статус дверки там можно определить, открыта или закрыта?

Как-то давно я прорабатывал ентот вопрос...
К сожалению - нет!
:(


Никто не может вернуться в прошлое и изменить свой старт.
Но каждый может стартовать сейчас и изменить свой финиш!
 
YURIYДата: Пятница, 04 Декабря 2009, 18:50 | Сообщение # 16
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Вообще, в MCI такая возможность есть. Стоит другой вопрос: как это применить к MMB? Но не будем торопиться с выводами, а вдруг можно... Я ещё товарища dgilmour подключил, он тоже подумает.

Добавлено (04 Декабрь 2009, 18:50)
---------------------------------------------

Quote (YURIY)
Вообще, в MCI такая возможность есть

А вот теперь я думаю, что нету... В инфо об MCI вижу что-то такое, а на форумах читаю, что нельзя.

Вероятность того, что ничего не выйдет - 99%... :(



Вечная память Андрею Сергееву!
 
PeterДата: Пятница, 04 Декабря 2009, 20:07 | Сообщение # 17
Админ NeoBook
Группа: Админ NeoBook
Сообщений: 1265
Репутация: 75
Награды: 18
Статус: Offline
Quote (YURIY)
а на форумах читаю, что нельзя

В том-то и дело...
По оному вопросу в сети (на всех программерских порталах) один и тот же пример, и самое забавное то, что он... НЕ РАБОТАЕТ!!! :)
Quote (YURIY)
Вероятность того, что ничего не выйдет - 99%...

Да, грустно... :(


Никто не может вернуться в прошлое и изменить свой старт.
Но каждый может стартовать сейчас и изменить свой финиш!
 
SowerДата: Суббота, 05 Декабря 2009, 07:53 | Сообщение # 18
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (DEMBEL)
а статус дверки там можно определить

Я изначально знал, что MCI на это не способен, есть пример на си++, надо его посмотреть...

 
DEMBELДата: Суббота, 05 Декабря 2009, 08:00 | Сообщение # 19
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
да, мы тут уже обсудили и пришли к выводу что MCI вроде бы должен быть способен, но нет... и вообще, кроме этого примера на С ничего путного больше нету



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
SowerДата: Суббота, 05 Декабря 2009, 08:28 | Сообщение # 20
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Вобще можно определить двумя способами: с наличием диска (две строки кода) или без (собсвенно самый главнй гемор :) ) Я видел код гдето на форуме, который определяеи всё это дело по задержке, т.е. когда дисковод закрыт, а его открывают, на это время программа какбы подвисает, а если он закрыт и его опять закрывают :D то задержки нет :D Вобщем это через одно место конечно, но всётаки работает, сам правда не проверял, но в комментах говорят что да, но ведь задержка может быть разная и от разных факторов зависит, может её вообще не будет... ;)

Добавлено (05 Декабрь 2009, 08:28)
---------------------------------------------

Quote (Peter)
один и тот же пример, и самое забавное то, что он... НЕ РАБОТАЕТ!!!

У меня вообще мси функция всегда 0 возвращает (в модуле пытался типа токого сделать)
 
DEMBELДата: Суббота, 05 Декабря 2009, 08:31 | Сообщение # 21
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
ладно вам, забейте... я и так не помню программ, где бы от статуса дверки что-то зависело, нигде этот вопрос не использовался, только открыть/закрыть и все.



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
SowerДата: Суббота, 05 Декабря 2009, 09:01 | Сообщение # 22
Ветеран форума
Группа: Проверенные
Сообщений: 916
Репутация: 11
Награды: 3
Статус: Offline
Quote (DEMBEL)
только открыть/закрыть и все

Вот именно, пусть bob6666 сам выбирает как ему её открыть через модуль или через ммб (мси команду) .
 
bob6666Дата: Понедельник, 07 Декабря 2009, 05:35 | Сообщение # 23
Новый участник
Группа: Пользователи
Сообщений: 15
Репутация: 0
Награды: 0
Статус: Offline
Да уж, вот это я всех озадачил,аж сам не рад. scared Друга подтянул к этому делу,он на Delphi попробовал слепить прогу,такая же хрень получается,открывает лоток+выбор привода, а закрывать не хочет,перезапускаеш прогу,закрывает.
Прикрепления: CDopen.rar (170.2 Kb)


BOB

Сообщение отредактировал bob6666 - Понедельник, 07 Декабря 2009, 05:38
 
YURIYДата: Понедельник, 07 Декабря 2009, 05:42 | Сообщение # 24
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (bob6666)
такая же хрень

Что значит такая же? Вы хоть что-нибудь сделали из предложенного выше? Всё работает идеально!

Странная позиция у автора темы. Минимум подробностей, и никаких ответов на вопросы...

Добавлено (07 Декабрь 2009, 05:42)
---------------------------------------------

Quote (bob6666)
Прикрепления: CDopen.rar(170Kb)

К чему это вообще? Ещё раз повторяю команды для MMB:

Quote (YURIY)
открыть лоток:

Code
MCICommand("set cdaudio door open")

закрыть:

Code
MCICommand("set cdaudio door closed")

Никаких программ на Delphi, модулей, плагинов - ничего не нужно!!! Просто открыть MMB, создать 2 кнопки и в каждой прописать по нужной команде!



Вечная память Андрею Сергееву!
 
bob6666Дата: Понедельник, 07 Декабря 2009, 05:49 | Сообщение # 25
Новый участник
Группа: Пользователи
Сообщений: 15
Репутация: 0
Награды: 0
Статус: Offline
Удалил Symantec Endpoint Protection11, переустановил MMB,запустил opeclosemodule высланный мне,Всё работает!!!! Всем спасибо! Извиняюсь за свои "косяки" и назойливость.

BOB

Сообщение отредактировал bob6666 - Понедельник, 07 Декабря 2009, 05:59
 
YURIYДата: Понедельник, 07 Декабря 2009, 05:51 | Сообщение # 26
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (bob6666)
запустил прогу

Интересно, "какую"? scratch

Quote (bob6666)
Извиняюсь за свои "косяки" и назойливость.

Всё нормально, у нас тут и не такое бывает...



Вечная память Андрею Сергееву!
 
  • Страница 1 из 1
  • 1
Поиск: