Страница 1 из 1

Как узнать, вставлена флэшка или нет?

Добавлено: 26 Январь 2012, 14:16
Korall
Добрый день!

С55, без АБС.

Вроде простая задача - узнать, вставил ли пользователь программы флэшку для сохранения результатов, или нет.
Сначала пользователь в диалоге задает диск, затем перед копированием я хочу проверить, есть он или нет, пользуюсь setpath()
по ошибке 03 пишу ему сообщение, что ничего нет.

Но Windows еще раньше до анализа errorcode() выводит свои окна, где говорит, что диска нет, попробуйте повторить и т.д.
Как сделать, Чтобы до windows все узнать и дать нужное сообщение?

Re: Как узнать, вставлена флэшка или нет?

Добавлено: 26 Январь 2012, 16:11
BOB
Наверно просто брать список дисков .

Re: Как узнать, вставлена флэшка или нет?

Добавлено: 26 Январь 2012, 17:09
Дед Пахом
Вообще-то штатный метод это ловить и анализировать событие WM_DEVICECHANGE. Хотя если флешка была вставлена до старта программы, то просто пройтись по типам подключённых дисководов.

Re: Как узнать, вставлена флэшка или нет?

Добавлено: 26 Январь 2012, 18:18
Korall
Да, хорошо, я готов по очереди пройтись по английскому алфавиту, но как только я для теста например, пытаюсь создать и затем удалить файл-пустышку на новом диске, именно windows выдает сообщение (см. рис), и лишь после этого кларион мне пишет мои message().

Я хочу обойтись без окна от windows, что скажете?

Re: Как узнать, вставлена флэшка или нет?

Добавлено: 27 Январь 2012, 2:20
StillZero
Имелось ввиду API GetDriveType и DRIVE_REMOVABLE.... если по простому

Re: Как узнать, вставлена флэшка или нет?

Добавлено: 27 Январь 2012, 3:41
BOB
я готов по очереди пройтись по английскому алфавиту
Надо не по алфавиту гулять , а взять у системы список подключенных дисков и по типу диска определить флэшку . Если Вы заранее знаете букву флэшки то поискать ее наличие в списке . При этом Вы НЕ должны напрямую обращаться к диску

Re: Как узнать, вставлена флэшка или нет?

Добавлено: 27 Январь 2012, 8:48
Igor
Попробуй это.(своял наспех)

Re: Как узнать, вставлена флэшка или нет?

Добавлено: 27 Январь 2012, 11:40
Korall
Спасибо!

Игорю: Просто замечательно - именно что-то такое и хотелось!

Вот только не понял, зачем там у Вас кусок кода под OMIT() ?

Вроде и без него работает?

Re: Как узнать, вставлена флэшка или нет?

Добавлено: 27 Январь 2012, 12:23
Igor
Вот только не понял, зачем там у Вас кусок кода под OMIT() ?
Это маленький бонус для лучшего понимания :D

Re: Как узнать, вставлена флэшка или нет?

Добавлено: 27 Январь 2012, 20:51
Korall
Спасибо за бонус, мне до него зреть еще долго :shock: !

Re: Как узнать, вставлена флэшка или нет?

Добавлено: 16 Май 2012, 18:18
porutchik
"завернуть" ошибку Вынь SetErrorMode и проверить наличие диска EXISTS