![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как отловить собыитие, когда в CD-ROM привод запихали диск.
Sour © (2002-09-07 19:14:00)Как отловить собыитие, когда в CD-ROM привод запихали диск.
ЗЫ Причем неважно есть ли на нем autorun или нет....
VID (2002-09-08 20:47:00) [1]Вот вспомнил:
Ловишь событие WM_DEVICECHANGE
Если WPARAM = 32772 то открыли CD-ROM
Если WPARAM = 32768 то закрыли...
VSergeySPB (2002-09-08 19:36:00) [2]Можно попробовать покопать в направлении: - сообщения: MM_MCINOTIFY, WM_DEVICECHANGE. Функции: mciGetYieldProc, mciSetYieldProc.
Возможно это оно.
=Удачи всем" :)
VID (2002-09-08 19:06:00) [3]Осуществить мониторинг (folder monitor) драйва. При поступлении событий (надо проверить какие события эффективнее всего использовать), проверить существование диска в драйве DirectoryExists (<cd drive>)
Ученик (2002-09-08 19:04:00) [4]Сообщение приходит WM_DEVICECHANGE
Mazenrat (2002-09-08 18:58:00) [5]Как отловить данное событие??? Хм. Может, проверка - есть ли диск в СД-приводе - поможет?
uses SysUtils;
//Ищем диск СДюка
function FindCD:Integer;
var
i, DType:integer;
str:string;
begin
Result:=0;
for i:=65 to 90 do begin
str:=chr(i)+":\";
DType:=GetDrivetype(PChar(str));
case DType of
0: drive:=0;
1: drive:=1;
DRIVE_CDROM : drive:=i;
end;
if not ((DType=0) or (Dtype=1)) then
Result:=drive;
end;
end;
//Проверяем есть ли диск в СДюке
function DiskInDrive(Drive: Char): Boolean;
var
ErrorMode: word;
begin
if Drive in ["a".."z"] then Dec(Drive, $20);
if not (Drive in ["A".."Z"]) then
raise EConvertError.Create("Not a valid drive ID");
ErrorMode := SetErrorMode(SEM_FailCriticalErrors);
try
if DiskSize (Ord(Drive) - $40) = -1 then Result := False
else Result := True;
finally
SetErrorMode(ErrorMode);
end;
end;
//Применение
if DiskInDrive(chr(findcd)) = true then
messageBox(0,""Диск в СД-приводе","Title",MB_OK);
Sour (2002-09-08 13:41:00) [6]Господа, может кто-нибудь нашел или все-таки знает сообщение...
Poirot (2002-09-08 09:05:00) [7]Где то тут было сообщение, но блин непомню!!!
Keymaster (2002-09-07 22:50:00) [8]Мда...
мне тож интересно стало.......
пойду хелп по апи читать...
Sour (2002-09-07 21:41:00) [9]1.Да, а как выполняется автозапуск??
2.Есть такая прога AudioGrabber, она после вставки(смены) диска выводит на эран эго треки. Неужели она на таймере опрашивает CD-ROM?????
Mister X (2002-09-07 20:05:00) [10]Нда, даже Windows не знает, как это отловить.