Форум: "Система";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
ВнизКак програмно узнать открыт CD-ROM или закрыт Найти похожие ветки
← →
random © (2004-04-07 08:34) [0]Скажите, как програмно узнать открыт CD-ROM или закрыт? Желательно с примером. (И укажите что там uses). Заранее благодарен.
← →
(AD)acid © (2004-04-15 12:17) [1]Есть функция GetDriveInformation или что-то в этом роде
она возвращает кроме остальных параметров и файловую систеиу
диска анализируй её
тип устройства можно узнать функцией GetDriveType
это я где-то в Faq видел и сам проверял
Смотри SDK GetDrive*
← →
ssk (2004-04-15 12:40) [2]никак
← →
Wiz@rd © (2004-04-15 18:00) [3]Если тебе нужно знать открыть щас стдюк или закрыть - то пробуй так - если не открыть значит закрыть и наборот - по-моему mciSendCommand возвращает что-то если не удалось выполнить команду или пиши свой дров - хотя вряд ли поможет - cd-rom по-моему не даёт информацию о состоянии лотка
← →
maxz © (2004-04-16 15:08) [4]Можно отслеживать открытие/закрытие сидюка:
type
TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
procedure WMDeviceChange(var Message: TMessage);
message WM_DEVICECHANGE;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
const DBT_DEVICEARRIVAL = $8000;
const DBT_DEVICEQUERYREMOVE = $8001;
const DBT_DEVICEQUERYREMOVEFAILED = $8002;
const DBT_DEVICEREMOVEPENDING = $8003;
const DBT_DEVICEREMOVECOMPLETE = $8004;
const DBT_DEVICETYPESPECIFIC = $8005;
const DBT_CONFIGCHANGED = $0018;
procedure TForm1.WMDeviceChange(var Message: TMessage);
var
s : string;
begin
{Do Something here}
case Message.wParam of
DBT_DEVICEARRIVAL :
s := "A device has been inserted and is now available";
DBT_DEVICEQUERYREMOVE: begin
s := "Permission to remove a device is requested";
ShowMessage(s);
{True grants premission}
Message.Result := integer(true);
exit;
end;
DBT_DEVICEQUERYREMOVEFAILED :
s := "Request to remove a device has been canceled";
DBT_DEVICEREMOVEPENDING :
s := "Device is about to be removed";
DBT_DEVICEREMOVECOMPLETE :
s := "Device has been removed";
DBT_DEVICETYPESPECIFIC :
s := "Device-specific event";
DBT_CONFIGCHANGED :
s:= "Current configuration has changed"
else s := "Unknown Device Message";
end;
ShowMessage(s);
inherited;
end;
← →
ssk (2004-04-16 15:50) [5]>maxz
это при наличии диска в приводе. а без диска?
← →
juiceman © (2004-04-17 03:52) [6]Видел несколько похожих топов и все они сходились к "никак".
← →
juiceman © (2004-04-17 03:53) [7]... и всегда мне было интересно "зачем это знать" ???
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.03 c