Никакой код до сих пор, поэтому я вставка копии часть тестирования от мой ответ к исходному вопросу.
// ...
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 является целым ответвлением науки.
Попробуйте переработать CodeProject DriveDetector как службу, и вы получите то, что вам нужно
Вам нужно будет подписаться на RegisterDeviceNotification
и привязать его к дескриптору состояния службы. См. Также http://social.msdn.microsoft.com/Forums/en-US/netfxbcl/thread/9ae4478a-1133-44ba-8a1c-3e4be3856e37 .
Я не совсем понимаю, как реализовать это было давно.
В этом блоге показано, как обрабатывать системные события, https://web.archive.org/web/1/http://blogs.techrepublic%2ecom%2ecom / howdoi /? p = 135 может быть, вы можете использовать его для события, которое хотите обработать
Вы можете создать скрытое окно или запустить службу, поскольку она должна работать с дескриптором окна или дескриптором состояния службы.