Как перехватить и отменить автовоспроизведение из приложения?

Я разрабатываю приложение для установки большого количества файлов данных с нескольких DVD-дисков. Приложение предлагает пользователю вставить следующий диск, однако Windows автоматически пытается открыть этот диск либо в окне проводника, либо спрашивает пользователя, что делать с новым диском.
Как перехватить и отменить сообщения об автовоспроизведении из моего приложения?

Решение

Существует два известных мне подхода. Первый и самый простой - зарегистрировать специальное сообщение Windows "QueryCancelAutoPlay" и просто возвращать 1 при обработке этого сообщения. Это работает только для текущего окна, а не для фонового приложения.

Второй подход предполагает вставку в таблицу запущенных объектов объекта, реализующего COM-интерфейс IQueryCancelAutoPlay.

Комментарии (0)

В качестве альтернативы можно просто программно сохранять текущее состояние автовоспроизведения и отключать его при запуске программы, а затем восстанавливать исходное состояние при закрытии программы. Это было бы намного проще. Посмотрите ключ NoDriveTypeAutoRun.

Комментарии (0)