Como interceptar e cancelar a reprodução automática de um aplicativo?

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

  •  08-06-2019
  •  | 
  •  

Pergunta

Estou desenvolvendo um aplicativo para instalar um grande número de arquivos de dados de vários DVDs.O aplicativo solicitará que o usuário insira o próximo disco, mas o Windows tentará automaticamente abrir esse disco em uma janela do Explorer ou perguntará ao usuário o que fazer com o novo disco.
Como posso interceptar e cancelar mensagens de reprodução automática do meu aplicativo?

Foi útil?

Solução

Existem duas abordagens que eu conheço. O primeiro e mais simples é a de registrar a mensagem especial do Windows "QueryCancelAutoPlay" e simplesmente retornar 1 quando a mensagem é tratado. Isso só funciona para a janela atual, e não uma aplicação de fundo.

A segunda abordagem requer a inserção de um objecto que implementa a interface de IQueryCancelAutoPlay COM COM interface para o objecto de tabela.

Outras dicas

Como alternativa, você pode simplesmente salvar programaticamente o estado atual de autoplay e desligá-lo quando o programa for iniciado, em seguida, restaurar o estado original quando o fecha programa. Isso seria muito mais simples. Confira a chave NoDriveTypeAutoRun.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top