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

StackOverflow https://stackoverflow.com/questions/11734

  •  08-06-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

Есть два подхода, о которых я знаю.Первый и самый простой — зарегистрировать специальное сообщение Windows «QueryCancelAutoPlay» и просто возвращать 1 при обработке сообщения.Это работает только для текущего окна, а не для фонового приложения.

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top