Определить, когда пользователь снова входит в систему - PullRequest
0 голосов
/ 14 декабря 2010

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

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

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

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

1 Ответ

3 голосов
/ 14 декабря 2010

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

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

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

...