Получите уведомление, когда новый диск будет подключен через USB или другие средства (C#)

Никакой код до сих пор, поэтому я вставка копии часть тестирования от мой ответ к исходному вопросу.

  // ...
  int main() {
    typedef std::map, size_t> Map;
    Map freqs;    
    Deck d;
    const size_t ntests = 100000;

    // compute frequencies of events: card at position
    for (size_t i = 0; i < ntests; ++i) {
      d.shuffle();
      size_t pos = 0;
      for(Deck::const_iterator j = d.begin(); j != d.end(); ++j, ++pos) 
        ++freqs[std::make_pair(pos, *j)]; 
    }

    // if Deck.shuffle() is correct then all frequencies must be similar
    for (Map::const_iterator j = freqs.begin(); j != freqs.end(); ++j)
      std::cout << "pos=" << j->first.first << " card=" << j->first.second 
                << " freq=" << j->second << std::endl;    
  }

Этот код не тестирует случайность базового генератора псевдослучайного числа. Тестирование случайность PRNG является целым ответвлением науки.

7
задан Phil 23 November 2009 в 15:01
поделиться

4 ответа

Служба Windows должна помочь

Попробуйте переработать CodeProject DriveDetector как службу, и вы получите то, что вам нужно

4
ответ дан 7 December 2019 в 12:21
поделиться

Вам нужно будет подписаться на RegisterDeviceNotification и привязать его к дескриптору состояния службы. См. Также http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/9ae4478a-1133-44ba-8a1c-3e4be3856e37 .

Я не совсем понимаю, как реализовать это было давно.

1
ответ дан 7 December 2019 в 12:21
поделиться

В этом блоге показано, как обрабатывать системные события, https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom / howdoi /? p = 135 может быть, вы можете использовать его для события, которое хотите обработать

0
ответ дан 7 December 2019 в 12:21
поделиться

Вы можете создать скрытое окно или запустить службу, поскольку она должна работать с дескриптором окна или дескриптором состояния службы.

0
ответ дан 7 December 2019 в 12:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: