Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2008, 00:21   #11
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию Рабочий код

Код:
uses mmsystem;
...
private
  procedure State_CD(var Message: TMessage); message WM_DEVICECHANGE;
...
procedure TForm1.State_CD(var Message: TMessage);
begin
case Message.Msg of
 WM_DEVICECHANGE:
  begin
   If (Message.wParam=$8000) then
    begin
     memo1.Lines.Add('Загрузка диска');
    end;
   if (Message.wParam=$8004) then
    begin
     memo1.Lines.Add('Извлечение диска');
    end;
  end;
end;

end;
В Memo прорисывается то, что и происходит с CD, т.е. загрузка и выгрузка CD.
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Старый 27.01.2008, 06:34   #12
joker
Форумчанин
 
Регистрация: 23.09.2007
Сообщений: 147
По умолчанию

Вообще, изначально мне не нужно было знать есть ли в CD-Romе диск или нет, мне нужно было знать можно ли, пользуясь MMSystem, а не фиг знает каким сишно-драйверским способом, узнать открыт ли сдром или нет, с диском или без - не важно.
Хотя благодарю за способ с ловлей WM_DEVICECHANGE: у меня получился хороший и простой прикол с нечитабельностью и вытаскиванием всех дисков из компьютера, главное если проц ещё и грамотно скрыть, то это спишут на просто глюк компа, радует ещё и то, что компьютер успевает начать взлет при чтении диска, а потом скоропостижно его вытащить.
В общем я ограничился только вытаскиванием дверцы сдрома по нажатию клавишы WIN + C, а вставить диск и задвинуть назад дверцу я оставил пользователям.
Я надеваю тапочки, ищу чем похмелиться, ах, если я сейчас умру, то на... я родился
joker вне форума Ответить с цитированием
Старый 27.01.2008, 08:06   #13
B_N
Новичок
Джуниор
 
Регистрация: 18.01.2008
Сообщений: 1,720
По умолчанию

А разве MCI_STATUS и MCI_SET с MCI_SET_DOOR_CLOSED и MCI_SET_DOOR_OPEN не подходят?
B_N вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Узнать состояние подключения Hottabych Работа с сетью в Delphi 8 03.03.2008 18:10
сделать так, чтобы ProgressBar показывал состояние копирования папки wolk Компоненты Delphi 3 23.03.2007 23:25