Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.09.19;
Скачать: [xml.tar.bz2];

Вниз

Как отловить собыитие, когда в CD-ROM привод запихали диск.   Найти похожие ветки 

 
Sour   (2002-09-07 19:14) [0]

Как отловить собыитие, когда в CD-ROM привод запихали диск.
ЗЫ Причем неважно есть ли на нем autorun или нет....


 
Mister X   (2002-09-07 20:05) [1]

Нда, даже Windows не знает, как это отловить.


 
Sour   (2002-09-07 21:41) [2]

1.Да, а как выполняется автозапуск??
2.Есть такая прога AudioGrabber, она после вставки(смены) диска выводит на эран эго треки. Неужели она на таймере опрашивает CD-ROM?????


 
Keymaster   (2002-09-07 22:50) [3]

Мда...
мне тож интересно стало.......

пойду хелп по апи читать...


 
Poirot   (2002-09-08 09:05) [4]

Где то тут было сообщение, но блин непомню!!!


 
Sour   (2002-09-08 13:41) [5]

Господа, может кто-нибудь нашел или все-таки знает сообщение...


 
Mazenrat   (2002-09-08 18:58) [6]

Как отловить данное событие??? Хм. Может, проверка - есть ли диск в СД-приводе - поможет?


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);


 
Ученик   (2002-09-08 19:04) [7]

Сообщение приходит WM_DEVICECHANGE


 
VID   (2002-09-08 19:06) [8]

Осуществить мониторинг (folder monitor) драйва. При поступлении событий (надо проверить какие события эффективнее всего использовать), проверить существование диска в драйве DirectoryExists (<cd drive>)


 
VSergeySPB   (2002-09-08 19:36) [9]

Можно попробовать покопать в направлении: - сообщения: MM_MCINOTIFY, WM_DEVICECHANGE. Функции: mciGetYieldProc, mciSetYieldProc.

Возможно это оно.

=Удачи всем" :)


 
VID   (2002-09-08 20:47) [10]

Вот вспомнил:
Ловишь событие WM_DEVICECHANGE
Если WPARAM = 32772 то открыли CD-ROM
Если WPARAM = 32768 то закрыли...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.09.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
3-61024
Bishop
2002-08-30 09:58
2002.09.19
SQL


3-60938
Sergey V. Shadrin
2002-08-28 07:32
2002.09.19
консольное приложение


1-61129
avr555
2002-09-06 02:51
2002.09.19
TPageControl - рождение и убитие


1-61115
Evgen.RU
2002-09-10 11:34
2002.09.19
Использование задержки в DELPHI.......


6-61230
Alibaba
2002-07-16 13:58
2002.09.19
Как подождать результата соединения клиента с сервером?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский