Como interceptar e cancelar a reprodução automática de um aplicativo?
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?
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.