Задача: при логине пользователя сервис должен запустить некий процесс с его привилегиями.
1a. Как, собственно, сервис может отловить этот момент? В том числе и для случая Terminal Services или нескольких пользователей для WinXP?
1b. Соответственно, если сервис зпускается уже при залогиненном пользователе, надо как-то его (их) идентифицировать.
2. Как запустить процесс от имени залогиневшегося юзера? Если у того уже запущены какие-то процессы, то последовательность OpenProcess(какой-нибудьтам) + OpenProcessToken() + CreateProcessAsUser() решает проблему, но при приходе какой-нибудь там нотификации может еще ни шелл, ничего другого не быть запущенным...