Есть несколько документированное событие, которое вы можете ждать, но оно сигнализируется, когда проводник загрузил .В XP это событие называется «msgina: ShellReadyEvent» и «ShellDesktopSwitchEvent» в Vista.Я связался с источниками некоторых альтернативных оболочек в сообщении , связанном с этим событием.
Другой альтернативой может быть прослушивание сообщения уведомления о создании панели задач .Он может срабатывать более одного раза, поэтому вам нужно отслеживать это.
В Vista + есть еще одна последняя альтернатива, которую может просто работать: программы, настроенные на запуск при запуске, являются частьюобъект задания, поэтому они не могут работать с высоким приоритетом.Если ваша программа запускается при запуске, вы можете проверить это, используя IsProcessInJob или SetPriorityClass + GetPriorityClass в цикле.(SetPriorityClass будет лгать о его возвращаемом значении IIRC)