Forçar pen drive USB para montar antes de continuar
Eu estou escrevendo um programa atualizador em C # usando o Visual Studio 2008 no Windows 7. Gostaria que o usuário insira um pen drive USB e se o programa encontrar a unidade e atualizações na unidade, em seguida, copia-os automaticamente. Eu desejo verificar apenas uma vez na inicialização e, em seguida, executar um programa que não tenha conhecimento das atualizações (as atualizações realmente precisam acontecer com o encerramento do programa).
Meu problema é que o programa de atualização está sendo executado antes que o pen drive esteja sendo montado, de forma que o computador não detecte pen drives, não faça atualizações e se mova prematuramente. Eu quero ter tudo funcionando o mais rápido possível, mas eu preciso forçar todos os pen drives para montar antes da detecção. Tudo deve ser automático sem entrada do usuário.
Isso é possível em c #?
Edite com mais detalhes:
Eu atualmente executo um arquivo de lote na inicialização (na verdade, como o shell do Windows 7, mas não tenho certeza que faz a diferença). O arquivo de lote executa a verificação de atualização e o programa real. Se o usuário tiver a unidade USB presa na inicialização, eu gostaria que o atualizador analisasse a unidade e copiasse todos os arquivos novos.
A corrente codificada se parece com:
DriveInfo[] ListDrives = DriveInfo.GetDrives();
foreach (DriveInfo Drive in ListDrives)
{
if(Drive.DriveType == DriveType.Removable)
{
// double check it's valid and copy over stuff
}
}
mas atualmente não encontra drives na inicialização. Se eu correr mais tarde, então está tudo bem. Estou assumindo que desde que eu corro o atualizador tão cedo, ele simplesmente não teve a chance de montar, mas eu não quero apenas esperar N segundos, se eu não tiver, porque em circunstâncias normais, é apenas o tempo morto.
Se eu puder fazer isso, o check-up fácil é muito mais simples do que ter que monitorar continuamente um evento e depois encerrar tudo e fazer uma atualização.