IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Вопрос по защищенным блокам
Dead.MorozZ
сообщение 30.01.2006 15:26
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 108
Пол: Мужской
Реальное имя: Георгий

Репутация: -  0  +


Как защитить прогу от выбора юзером в ComboDriveBox СД-ромов или дисководов, когда в них нет диска?
Что-то типа:
try
...
except
beep;
end;

(Это в ComboBoxOnChange)

Что писать вместо "..." ?

Сообщение отредактировано: volvo - 7.11.2006 18:24


--------------------
Минус - это уже половина плюса, а плюс порой - целых два минуса...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 30.01.2006 21:21
Сообщение #2


Гость






Используй WinAPI - функцию GetVolumeInformation... Например, попытайся прочесть метку диска)... Если диска нет - то функция вернет 0... Если все прочиталось (а значит диск был) - вернется ненулевое значение...
 К началу страницы 
+ Ответить 
Dead.MorozZ
сообщение 1.02.2006 22:20
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 108
Пол: Мужской
Реальное имя: Георгий

Репутация: -  0  +


To: Volvo
Ух! Че-то параметров много blink.gif
Какие зачем и куда?? Объясни rolleyes.gif


--------------------
Минус - это уже половина плюса, а плюс порой - целых два минуса...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 1.02.2006 22:34
Сообщение #4


Гость






Если честно, было лень запускать Дельфи, набросал в FPC (в Дельфях должно пройти практически без изменений):
{$mode delphi}
uses windows;

function GetVolumeLabel(DriveName :Pchar): String;
var
VolumeLabel, drvFileSystem: array [0 .. pred(max_path)] of Char;
VolumeSerialNo, MaxComponentLength, FileSystemFlags : DWord;
begin
if GetVolumeInformation(DriveName, VolumeLabel, MAX_PATH,
@VolumeSerialNo,
MaxComponentLength, FileSystemFlags,
drvFileSystem, MAX_PATH)
then result := VolumeLabel
else result := 'no disk';
end;

begin
writeln(GetVolumeLabel('G:'));
end.
При отсутствии диска GetVolumeInformation возвращает False...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 23.07.2025 15:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"