|
Вопрос # 2 778/ вопрос открыт / |
|
Здравствуйте, уважаемые эксперты!
Как можно узнать готов ли устройство для использования (дисководов, флеш дисков)? Ест ли функция типа Isready(дисковод)
Заранее спасибо!
 |
Вопрос задал: Hideman (статус: Посетитель)
Вопрос отправлен: 14 мая 2009, 07:18
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
Такой функции нету, зато есть try ... except ... end, куда можно засунуть обращение к драйву и по возникновению исключения судить о его доступности.
З.Ы. Могу предложить набор функций из пакета Delphi Works для работы с драйвами. Вот кусок интерфейсной части модуля dwDrives.pas - приложение.
По именам функций понятно, что они, собственно, делают.
Скачать весь пакет можно тут.
Приложение: Переключить в обычный режим- function dwApplicationHostDrive: Char;
- function dwAvailableDrives: TStringList;
- function dwCloseCD(Drive: Char): Boolean;
- function dwCompareDiskStruct(Drive: Char; var BPC, SPC, BPS, FC, TC: Integer; var FS, TS, DSN:
Int64): Boolean;
- function dwDiskInDrive(Drive: Char): Boolean;
- function dwDiskWriteProtected(Drive: Char): Boolean;
- function dwDriveBytesPerCluster(Drive: Char): Integer;
- function dwDriveBytesPerSector(Drive: Char): Integer;
- function dwDriveCasePreserved(Drive: Char): Boolean;
- function dwDriveCylinders(Drive: Char): Integer;
- function dwDriveFATCount(Drive: Char): Integer;
- function dwDriveFilesystemName(Drive: Char): String;
- function dwDriveFreeClusters(Drive: Char): Integer;
- function dwDriveFreeSpace(Drive: Char): Int64;
- function dwDriveHeadCount(Drive: Char): Integer;
- function dwDriveHiddenSectors(Drive: Char): Integer;
- function dwDriveIndexToLetter(Drive: Byte): Char;
- function dwDriveLetterToIndex(Drive: Char): Byte;
- function dwDriveMaxFilenameLength(Drive: Char): Integer;
- function dwDriveReservedSectors(Drive: Char): Integer;
- function dwDriveRootEntries(Drive: Char): Integer;
- function dwDrivesCount: Integer;
- function dwDriveSectorsPerCluster(Drive: Char): Integer;
- function dwDriveSectorsPerFAT(Drive: Char): Integer;
- function dwDriveSectorsPerTrack(Drive: Char): Integer;
- function dwDriveSerialNumber(Drive: Char): String;
- function dwDriveSerialNumberInt(Drive: Char): Integer;
- function dwDriveTotalClusters(Drive: Char): Integer;
- function dwDriveTotalSpace(Drive: Char): Int64;
- function dwDriveTracksCount(Drive: Char): Integer;
- function dwDriveVolumeName(Drive: Char): String;
- function dwEjectRemovable(const Drive: Char): TDWEjectRemovableResult;
- function dwFloppyReady(const Drive: char): Boolean;
- function dwGetDeviceParamBlock(Drive: Char; var ParamBlock: TDeviceParamBlock): Word;
- function dwGetDriveShellInfo(const Drive: Char): TDWDriveShellInfo;
- function dwGetVolumeInformationX (Drive: Char; var V : TDriveInformation): Boolean;
- function dwOpenCD(Drive: Char): Boolean;
- function dwSetDeviceParamBlock(Drive: Char; var ParamBlock: TDeviceParamBlock): Word;
- function dwSystemHostDrive: Char;
- function dwValidateDriveLetter(Drive: Char): Char;
- function dwValidDriveLetter(Drive: Char): Boolean;
- function dwVWin32(CtlCode: TVWin32CtlCode; var Regs: TDiocRegisters): Boolean;
- procedure dwHardDrives(AList: TStrings);
- procedure dwHardDrivesLong(AList: TStrings);
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 14 мая 2009, 08:25
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 14 мая 2009, 11:08; участников в обсуждении: 3.
|
Hideman (статус: Посетитель), 14 мая 2009, 08:36 [#1]:
Почему у Visual Basic-ке имеется объект Filesystem в котором ест такая функция каторая определяет готовли устройства! А в Delphi хотя и називают его лучшим этой функции нету?
|
|
Вадим К (статус: Академик), 14 мая 2009, 10:19 [#2]:
Во первых, не путайте "функции" и "объекты".
Во вторых, не разводите флейм. (попытка подогреть его уже есть)
И на последок, надо понимать, что такое "библиотека классов".
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Hideman (статус: Посетитель), 14 мая 2009, 10:36 [#3]:
то ест метод объекта я спеша писал функция! Короче имеется ли такое?
|
|
min@y™ (статус: Доктор наук), 14 мая 2009, 11:08 [#4]:
Есть нестандартные решения.
Пример вот.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|