Вверх ↑
Этот топик читают: Гость
Ответов: 574
Рейтинг: 1
#46: 2008-07-03 23:14:38 ЛС | профиль | цитата
nesco писал(а):
Задал ты оригинальную задачу, просто так она не решается. Удаляется устройство не сложно, сложно получить хандл этого устройства по букве диска -- вот там такая @па, что я уже какой час над этим бьюсь


Надеюсь, что получится
карма: 0

0
Разработчик
Ответов: 26068
Рейтинг: 2121
#47: 2008-07-04 14:27:21 ЛС | профиль | цитата
Yuriy писал(а):
Надеюсь, что получится


Ну наконц-то получилось (пришел к выводу, что больше пол-нэта барахла)

Экспериментальный IC, если будет работать нормально, буду думать о портировании его в FSMonitor
карма: 22

0
файлы: 1eject_ic_001.sha [8.8KB] [433]
Ответов: 1328
Рейтинг: 69
#48: 2008-07-04 16:19:23 ЛС | профиль | цитата
С флешкой нормально работает и FPC и Delphi, буду дома попробую со сменными дисками.
карма: 2

0
Разработчик
Ответов: 26068
Рейтинг: 2121
#49: 2008-07-04 16:25:35 ЛС | профиль | цитата
Konst писал(а):
С флешкой нормально работает

Ну, в первую очередь, он под них и затачивался. Хотя, должен работать с любыми REMOVEBL'ами, тк отслеживается общий класс томов и тип устройства -- DRIVE_REMOVABLE
карма: 22

0
Ответов: 1328
Рейтинг: 69
#50: 2008-07-04 16:28:59 ЛС | профиль | цитата
Ну например CD-ROM ноутбука он отказался извлекать (это не съемный диск), хотя из трея - отключается
карма: 2

0
Разработчик
Ответов: 26068
Рейтинг: 2121
#51: 2008-07-04 16:31:45 ЛС | профиль | цитата
Konst писал(а):
хотя из трея - отключается

А как он у тебя в трэй-то попал
По идеи, не должно такого быть, так как тип устроства CDROM'а -- DRIVE_CDROM
карма: 22

0
Ответов: 1328
Рейтинг: 69
#52: 2008-07-04 16:44:29 ЛС | профиль | цитата
nesco писал(а):
А как он у тебя в трэй-то попал
По идеи, не должно такого быть, так как тип устроства CDROM'а -- DRIVE_CDROM

Не знаю - он там всегда был, он реально извлекается с боку кнопка нажимаешь и вытаскиваешь.
К стати бывает, что туда и диски на SATA попадают, типо можно извлечь диск С
карма: 2

0
Разработчик
Ответов: 26068
Рейтинг: 2121
#53: 2008-07-04 16:49:13 ЛС | профиль | цитата
Konst писал(а):
Не знаю - он там всегда был, он реально извлекается с боку кнопка нажимаешь и вытаскиваешь

А причем здесь трэй и кнопка сбоку
Konst писал(а):
он отказался извлекать

А какое сообщение выдало, или молча отключила CD в трее и свалило
карма: 22

0
Ответов: 1328
Рейтинг: 69
#54: 2008-07-04 17:25:01 ЛС | профиль | цитата
nesco писал(а):
А причем здесь трэй и кнопка сбоку

Я имел в виду что он реально съемный, может у него другой тип?
nesco писал(а):
А какое сообщение выдало, или молча отключила CD в трее и свалило

Если ты имеешь в виду твой пример, то выдало сообщение это не съемный диск и не отключила, а если про стрелку в трее, то все так же как с флешкой происходит, после отключения - устройство может быть удалено, и пропадает ярлык сд рома в Мои Комп
карма: 2

0
Разработчик
Ответов: 26068
Рейтинг: 2121
#55: 2008-07-05 00:08:51 ЛС | профиль | цитата
Konst писал(а):
это не съемный диск

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

Попробуй в IC поставить ремарку вот так


//         err := RemoveDrive(DriveLetter[1])

И проверь, отсоединится ли диск

------------ Дoбавленo:


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

------------ Дoбавленo:


Konst писал(а):
Я имел в виду что он реально съемный, может у него другой тип?

Вот, вот -- он наверняка числится съемным (а кто енто тут недавно бил себя пяткой в грудь, что устройства на ноуте не съемные, ась... ) А почему не можем удалить, так уровень родителя выше, том идет второй позицией, а не третьей, и наверняка прога доходит до определения тома, но не может опредилить правильно родителя.
карма: 22

0
Ответов: 574
Рейтинг: 1
#56: 2008-07-05 18:48:05 ЛС | профиль | цитата
nesco писал(а):
Ну наконц-то получилось (пришел к выводу, что больше пол-нэта барахла)

Экспериментальный IC, если будет работать нормально, буду думать о портировании его в FSMonitor


Работает! Спасибочки! Ждём компонент ;)

nesco, есть одна просьба. Добавь точку со свойством что это за устройство (по букве диска). То есть, мне нужно как-то узнать, как отрубать устройство через Eject или Unplug. Просто если кард-ридер отрубаю - я же не буду к нему применять Unplug. В общем, я думаю, ты меня понял. Если сделаешь - будет супер! Спасибо-с!
карма: 0

0
Разработчик
Ответов: 26068
Рейтинг: 2121
#57: 2008-07-05 21:48:09 ЛС | профиль | цитата
Yuriy писал(а):
То есть, мне нужно как-то узнать, как отрубать устройство через Eject или Unplug

Все DRIVE_REMOVABLE (съемные дискы) будут отключаться полным удалением, иначе не получиться. А что, кард-ридер удаляется не как флэшь
карма: 22

0
Ответов: 574
Рейтинг: 1
#58: 2008-07-06 03:07:38 ЛС | профиль | цитата
Не пробовал пока. Надо будет глянуть.
карма: 0

0
Ответов: 5446
Рейтинг: 323
#59: 2008-07-06 06:09:06 ЛС | профиль | цитата
nesco, как раз для карт-ридера и нужна операция eject - это отмонтирует карточку, вставленную в кард-ридер, но не отключит сам кард-ридер, тем самым оставляя возможнотсть подключения другой карточки "на лету" (без повторного подключения кард-ридера). Это очень важно для тех, у кого кард-ридер "встроен" в систему, а не подключен к USB или другому порту.
карма: 1

0
Разработчик
Ответов: 26068
Рейтинг: 2121
#60: 2008-07-06 12:45:32 ЛС | профиль | цитата
Ну можно же две точки сделать Eject и Unplug
------------ Дoбавленo:

И еще, давайте определимся, какая из этих команд отсоединяет тома, те пропадает буква диска
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)