![]() |
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
![]() ![]() |
![]() |
Билли Боб |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Репутация: ![]() ![]() ![]() |
При использовании данной функции с приводом, в котором нету диска, выходит ошибка windows о том, что отсутствует диск. Как сделать, чтобы это окно не выходило?
|
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
При использовании данной функции с приводом, в котором нету диска, выходит ошибка windows о том, что отсутствует диск. Как сделать, чтобы это окно не выходило? Тебе нужно использовать системный доступ к дискам, а он системозависим. Если твоя прога только для Windows, то вот тебе пример, как ты можешь узнать, есть ли в приводе диск.
uses
Windows;
const
DriveNameLen= 4;
VolumeNameLen= 12;
FileSysNameLen= 128;
var
Drive: string[DriveNameLen];
VolumeName: string[VolumeNameLen];
SerialNumber, MaxFileNameLen, FileSysFlags: DWord;
FileSysName: string[FileSysNameLen];
begin
Drive:= 'C:\'+#0;
// можно использовать, чтобы убедиться, что этот драйв - CDROM:
WriteLn('is the drive CDROM? ',GetDriveType(@Drive[1])=DRIVE_CDROM);
// теперь определяем, есть ли в нем диск (и много еще чего))
WriteLn('Is there disk in it? ',
GetVolumeInformation(
@Drive[1],
@VolumeName[1], VolumeNameLen,
@SerialNumber,
MaxFileNameLen,
FileSysFlags,
@FileSysName[1], FileSysNameLen
)
);
readln
end.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
IUnknown |
![]()
Сообщение
#3
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Ада: Разработчик Embarcadero Delphi: Сторонник Free Pascal: Разработчик Репутация: ![]() ![]() ![]() |
Чтобы не спускаться на такой низкий уровень, можно просто отключить показ критических сообщений системы перед вызовом FileExists, а потом - восстановить прежний режим:
uses windows, sysutils;
begin
OldMode := SetErrorMode (SEM_FAILCRITICALERRORS);
if FileExists ('a:\test.txt') then writeln ('ok') else writeln ('no');
SetErrorMode (OldMode);
end.
, должно сработать. По крайней мере, на официальном форуме поддержки Embarcadero давали именно такой рецепт. |
Билли Боб |
![]()
Сообщение
#4
|
Новичок ![]() Группа: Пользователи Сообщений: 47 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот! отключить показ, то, что надо, спасибо!
|
TarasBer |
![]()
Сообщение
#5
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
> Drive:= 'C:\'+#0;
Дельфа сама всем строкам ноль дорисовывает, не надо это делать руками. -------------------- |
Lapp |
![]()
Сообщение
#6
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
> Drive:= 'C:\'+#0; Дельфа сама всем строкам ноль дорисовывает, не надо это делать руками. Я не знаю, почему ты говоришь тут (в разделе про 32-битные компиляторы) про Delphi. Для Delphi есть свой раздел. FPC так не прикалывается (специально проверил)). Если уж зашла речь про Delphi - немного странно мне, если она правда так поступает. Надеюсь, это отключается. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
IUnknown |
![]()
Сообщение
#7
|
![]() Гуру ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Ада: Разработчик Embarcadero Delphi: Сторонник Free Pascal: Разработчик Репутация: ![]() ![]() ![]() |
|
TarasBer |
![]()
Сообщение
#8
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: ![]() ![]() ![]() |
Да действительно, я увидел в конце ноль, потому что глобальные переменные инициализируются нулём, а так там ноль не добавляется.
-------------------- |
propecia online pharmacy new yor |
![]()
Сообщение
#9
|
Гость ![]() |
Viagra For Sale In Canada
|
can you buy prednisone over the |
![]()
Сообщение
#10
|
Гость ![]() |
Acheter Kamagra Ligne
|
furosemide nursing consideration |
![]()
Сообщение
#11
|
Гость ![]() |
Cialis In Der Apotheke Kaufen
|
where to buy prednisone for dogs |
![]()
Сообщение
#12
|
Гость ![]() |
Site De Vente De Cialis
|
generic valtrex overnight delive |
![]()
Сообщение
#13
|
Гость ![]() |
Viagra Prescription Medicale
|
![]() ![]() |
![]() |
Текстовая версия | 14.03.2025 13:51 |