Как определять состояние CD-ROM? (insert/eject)

  • Автор темы Roji
  • Дата начала
Статус
Закрыто для дальнейших ответов.
R

Roji

#1
Всем привет! Столкнулся с проблемой определения состояния лотка CD-ROM при выключеном автозапуске CD-ROM.ожно ли как-нибудь выключить автозапуск(autorun.inf), но оставить возможность обрабатывать момент вставки/вытаскивания CD-ROM?
Код примерно такой:
Код:
 type
 TForm1 = class(TForm)
 private
  procedure WMDeviceChange(var Msg: TMessage); message WM_DEVICECHANGE;
 public

 end;

{...}

implementation

{$R *.DFM}

procedure TForm1.WMDeviceChange(var Msg: TMessage);
const
 DBT_DEVICEARRIVAL = $8000; //insert
DBT_DEVICEREMOVECOMPLETE = $8004; //eject
var
 myMsg: string;
begin
 inherited;
 case Msg.wParam of
  DBT_DEVICEARRIVAL: myMsg := 'CD is inserted';
  DBT_DEVICEREMOVECOMPLETE: myMsg := 'CD is removed';
 end;
 ShowMessage(myMsg);
end;
Каким образом правильно выключить автозапуск для XP и для 98?
Какой процесс занимается автозапуском?
explorer?
Тогда почему не работает HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun ?
Заранее спасибо...
 
T

TERRAPOD

#2
Насчёт выключить AutoRun:
Mожно поправить значение в реестре:
ключ: [HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ CDRom]
паpаметp: Autorun
тип: REG_DWORD
значение: (0=отключено, 1=включено)
 
R

Roji

#4
Это ты зря мне советуешь отключить "автозапуск" через ключ: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ CDRom
Дело в том, когда отключаешь этот ключ начинаются все проблемы: нельзя отследить вставку CD-ROM!
Нужно отключать через ключ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\NoDriveTypeAutoRun:REG_DWORD
Подребнее об этом ключе на http://support.microsoft.com/kb/q136214/
 
Статус
Закрыто для дальнейших ответов.