Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: CL | DM;

Вниз

Как узнать о недоступности диска, с которого запущена программа?   Найти похожие ветки 

 
lmatveev   (2004-02-26 20:07) [0]

Мне надо каким-то образом узнать, что диск, с которого запустилась моя программа, был вынут или отключен. Это нужно в случаях, когда программу запускают с CD, съемного диска, сети и т.п. чтобы аккуратно завершить работу


 
DDA ©   (2004-02-26 20:50) [1]

например так:
procedure TForm1.Button1Click(Sender: TObject);
function IsDiskInDrive(Drive: string): Boolean;
var
 ErrMode: Cardinal;
 VolName: array[0..255] of Char;
 FS: array[0..255] of Char;
 MaxComSize: Cardinal;
 Flags: Cardinal;
begin
 ErrMode := SetErrorMode(SEM_FAILCRITICALERRORS);
 try
   Result := GetVolumeInformation(PChar(Drive), VolName, SizeOf(VolName), nil,
     MaxComSize, Flags, FS, SizeOf(FS));
 finally
   SetErrorMode(ErrMode);
 end;
end;
begin
   if not IsDiskInDrive(Edit1.Text) then ShowMessage("А диска-то нет :(")
   else ShowMessage("есть");
end;


Edit1.Text:="C:\";


 
lmatveev   (2004-02-26 21:57) [2]

Спасибо. Но я имел ввиду нельзя ли перехватывать какое-нибудь сообщение о том, что диск отключился? ОС это как-то делает для CD и сетевых дисков. Может что-то подобное монитору каталогов...


 
Cobalt ©   (2004-02-27 11:44) [3]

Есть сообщение WM_DEVICECHANGE
Только зачем?
С дискеткой у тебя не прокатит.  А с Сидиромом система сама кэширует всякие там ДЛЛ-ки.
Проверяй в тех местах, где ты обращаешься к файлам.
И, пожалуйста, не путай ОС и Проводник.



Страницы: 1 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.024 c
7-1077525696
AlexPiv
2004-02-23 11:41
2004.04.25
Как в Delphi написать программу которая отловит процесс открытия


14-1080639596
Zoloto
2004-03-30 13:39
2004.04.25
Перевод *.doc в *.pdf


3-1080619876
_SCORP_
2004-03-30 08:11
2004.04.25
Глюк с записью в таблицу!


11-1064908577
Yrasikombo
2003-09-30 11:56
2004.04.25
В Delphi 7 выдает ошибку "File not found: Exptlntf.dcu "


3-1080200885
avgur
2004-03-25 10:48
2004.04.25
Киньте, кому не жалко библиотеку netdir.dll по мылу