Wymuś napęd USB Thumb na Mount Before Continue

Piszę program aktualizujący na C # przy użyciu programu Visual Studio 2008 w systemie Windows 7. Chciałbym, aby użytkownik wstawił pamięć USB i jeśli program znajdzie dysk i aktualizacje na dysku, automatycznie je skopiuje. Pragnę sprawdzić tylko raz podczas uruchamiania, a następnie wykonać program, który nie jest świadomy aktualizacji (aktualizacje naprawdę muszą się zdarzyć po zamknięciu programu).

Mój problem polega na tym, że program aktualizacyjny jest uruchamiany przed zamontowaniem pamięci USB, więc komputer nie wykrywa pamięci USB i nie aktualizuje się i przesuwa się przedwcześnie. Chcę, aby wszystko działało tak szybko, jak to możliwe, ale muszę wymusić zamontowanie wszystkich napędów kciukowych przed wykryciem. Wszystko musi być automatyczne, bez udziału użytkownika.

Czy to możliwe w c #?

Edytuj z większą szczegółowością:

Obecnie uruchamiam plik wsadowy przy starcie (właściwie jako powłoka systemu Windows 7, ale nie jestem pewien, czy to robi różnicę). Plik wsadowy uruchamia sprawdzanie aktualizacji, a następnie rzeczywisty program. Jeśli użytkownik miał zablokowany dysk USB przy rozruchu, chciałbym, aby program aktualizujący przeglądał dysk i kopiował nowe pliki.

Aktualny kod wygląda tak:

 DriveInfo[] ListDrives = DriveInfo.GetDrives();
 foreach (DriveInfo Drive in ListDrives)
 {
      if(Drive.DriveType == DriveType.Removable)
      {
           // double check it's valid and copy over stuff
      }
 }

ale obecnie nie ma żadnych napędów podczas rozruchu. Jeśli uruchomię go później, wszystko będzie w porządku. Zakładam, że skoro uruchamiam aktualizator tak wcześnie, to po prostu nie miałem szansy się zamontować, ale nie chcę tylko czekać N sekund, jeśli nie muszę, ponieważ w normalnych warunkach jest to po prostu martwy czas.

Jeśli uda mi się wykonać to sprawdzenie, łatwiej jest to zrobić, niż ciągle monitorować zdarzenie, a następnie zamknąć wszystko i wykonać aktualizację.

questionAnswers(3)

yourAnswerToTheQuestion