Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как определить есть ли диск в дисководе? 
:(
    Опции темы
Ner-zul
  Дата 1.2.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 24.1.2004
Где: Москва

Репутация: нет
Всего: нет



Добрый День,

 Мне хотелось бы по нажатию на кнопку, например, делать запрос к дисководу и определять : есть ли в нем в данный момент диск или нет. Может быть существует стандартная процедура???
--------------------
 Ner-zul   
PM MAIL ICQ   Вверх
Snowy
Дата 1.2.2007, 17:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



PM MAIL   Вверх
Rodman
Дата 1.2.2007, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



GetLogicalDrives

Код

//Проверить наличие диска

procedure List_Drives;
const
DRIVE_UNKNOWN = 0;
DRIVE_NO_ROOT_DIR = 1;
DRIVE_REMOVABLE = 2;
DRIVE_FIXED = 3;
DRIVE_REMOTE = 4;
DRIVE_CDROM = 5;
DRIVE_RAMDISK = 6;
var
r: LongWord;
Drives: array[0..128] of char;
pDrive: PChar;
begin
r := GetLogicalDriveStrings(SizeOf(Drives), Drives);
if r = 0 then Exit;
if r > SizeOf(Drives) then
raise Exception.Create(SysErrorMessage(ERROR_OUTOFMEMORY));
pDrive := Drives;
while pDrive^ <> #0 do
begin
if GetDriveType(pDrive) = DRIVE_FIXED then
Form1.ComboBox1.Items.Add(pDrive);
Inc(pDrive, 4);
end;
end;


еще можно сделать проверка на наличие какого либо файла fileexists..
PM MAIL WWW Skype GTalk YIM MSN   Вверх
Ner-zul
Дата 1.2.2007, 17:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 24.1.2004
Где: Москва

Репутация: нет
Всего: нет



Snowy,  

 сожалею что не пояснил сразу. Я имею ввиду CD-Диск. По вашей ссылке, я зашел, но не нашел ответа на свой первоначальный вопрос. Максимум , что я нашел , это как определить является ли CD-диск  - Аудио диском....

Rodman,

вы не моглибы пояснить свой код. Заранее благодарен.

Это сообщение отредактировал(а) Ner-zul - 1.2.2007, 17:27
--------------------
 Ner-zul   
PM MAIL ICQ   Вверх
Romikgy
Дата 1.2.2007, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(Rodman @  1.2.2007,  16:20 Найти цитируемый пост)
еще можно сделать проверка на наличие какого либо файла fileexists.. 

или Boot Record smile


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Ner-zul
Дата 1.2.2007, 17:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 24.1.2004
Где: Москва

Репутация: нет
Всего: нет



"Цитата(Rodman @  1.2.2007,  16:20 ) 
еще можно сделать проверка на наличие какого либо файла fileexists..  


или Boot Record  "

Как можно сделать первое или второе?

--------------------
 Ner-zul   
PM MAIL ICQ   Вверх
Rodman
Дата 1.2.2007, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


CIO
****


Профиль
Группа: Участник
Сообщений: 6144
Регистрация: 7.5.2006
Где: Ukraine ⇛ Kyiv ci ty

Репутация: 7
Всего: 122



Ner-zul, 
Код

if(FileExists('*.ini'))then
  ShowMessage('Диск крутится!!!');

PM MAIL WWW Skype GTalk YIM MSN   Вверх
Sunvas
Дата 1.2.2007, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Соль и сахар
****


Профиль
Группа: Участник
Сообщений: 3388
Регистрация: 12.3.2006
Где: Тосно

Репутация: 28
Всего: 89



Код

function DiskInDrive(Drive: Char): Boolean; 
var  
  ErrorMode: word;  
begin  
  if Drive in ['a'..'z'] then Dec(Drive, $20);  
  if not (Drive in ['A'..'Z']) then  
      raise EConvertError.Create('Not a valid drive ID'); 
  ErrorMode := SetErrorMode(SEM_FailCriticalErrors);  
  try  
      if DiskSize (Ord(Drive) - $40) = -1 then  
        Result := False  
      else  
        Result := True;  
  finally  
      SetErrorMode(ErrorMode);  
  end;  
end; 



--------------------
Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их.
PM MAIL   Вверх
Romikgy
Дата 1.2.2007, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Sunvas, оригинально


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
SAVANE
Дата 7.2.2007, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 20.7.2006
Где: Украина, Полтава

Репутация: нет
Всего: 1



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

Это сообщение отредактировал(а) SAVANE - 7.2.2007, 16:15
--------------------
Be not afraid of growing slowly, be afraid only of standing still!
PM MAIL WWW ICQ   Вверх
Snowy
Дата 7.2.2007, 16:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



http://forum.vingrad.ru/index.php?showtopi...st&p=294003

Но это уже другая тема.
Модератор: Пожалуйста, один топик - один вопрос.
PM MAIL   Вверх
Ner-zul
Дата 9.2.2007, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 232
Регистрация: 24.1.2004
Где: Москва

Репутация: нет
Всего: нет



Спасибо всем.
Я использую вариант Sunvasa, за это ему отдельное спасибо. 

--------------------
 Ner-zul   
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0545 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.