Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
ВнизКак узнать о недоступности диска, с которого запущена программа? Найти похожие ветки
← →
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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.04.25;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.034 c