Перед продолжением принудительно подключите USB-накопитель.

Я пишу программу обновления на C # с использованием Visual Studio 2008 на Windows 7. Я хотел бы, чтобы пользователь вставил флэш-накопитель USB, и если программа обнаружит диск и обновления на нем, она автоматически скопирует их. Я хотел бы проверить только один раз при запуске, а затем запустить программу, которая не знает об обновлениях (обновления действительно должны произойти при завершении работы программы).

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

Это возможно в C #?

Изменить более подробно:

В настоящее время я запускаю командный файл при запуске (фактически как оболочка Windows 7, но я не уверен, что это имеет значение). Пакетный файл запускает проверку обновлений, а затем саму программу. Если пользователь загружал USB-накопитель при загрузке, я бы хотел, чтобы программа обновления смотрела на него и копировала все новые файлы.

Текущий код выглядит так:

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

но в настоящее время он не находит дисков при загрузке. Если я запускаю его позже, тогда все в порядке. Я предполагаю, что, так как я запускаю программу обновления так рано, у нее просто не было возможности монтировать, но я не хочу просто ждать N секунд, если мне не нужно, потому что в нормальных условиях это просто мертвое время.

Если мне удастся сделать эту проверку проще, это будет гораздо проще, чем постоянно следить за событием, а затем отключать все и делать обновления.

Ответы на вопрос(3)

Ваш ответ на вопрос