2010-12-14 2 views
0

У меня есть приложение winforms (C# .net 2.0), которое работает в лотке sys. Пользователь может выйти из системы и представлен обычным экраном входа в Windows.Обнаруживать, когда пользователь регистрируется в

Я хочу, чтобы определить, когда пользователь входит в систему снова.

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

Мне нужно предпринять специальные действия только в том случае, если приложение запущено в результате последовательности «выйти из системы», а не при загрузке компьютера (ОС).

ответ

3

Когда пользователь выходит из системы, все запущенные приложения закрыты, включая приложение WinForms, которое сводится к области уведомлений панели задач. Целью события SessionEnding является прекрасное закрытие приложения при выходе пользователя из системы или завершении работы компьютера. Не существует соответствующего события SessionBeginning, потому что ваше приложение не будет автоматически открываться повторно при повторном входе пользователя.

Если вы хотите, чтобы ваше приложение автоматически запускалось всякий раз, когда пользователь входит в систему, его необходимо поместить в папку «Автозагрузка» , Все программы в этой папке будут запускаться автоматически при входе пользователя в систему.

Вы можете настроить установщика для размещения приложения в папке «Запуск» (используйте CSIDL_STARTUP environment variable для поиска правильного местоположения) или общая папка «Запуск», разделяемая всеми пользователями (используйте переменную окружения CSIDL_COMMON_STARTUP). Конечно, если у вас нет установщика, вы всегда можете вручную разместить ярлык для своего приложения в этой папке.

+0

Приложение уже настроено для запуска при запуске, и когда пользователь входит в систему, он запускается. –

+0

Sooo ... Я не уверен, что вы спрашиваете. Вы хотите определить, когда пользователь входит в систему? Это когда ваше приложение начинается. Поместите свой код в одно из событий загрузки приложения. Как метод 'Main' в файле' Program.cs' или обработчик события 'Load' вашей основной формы. –

+0

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