Здравствуйте, x64, Вы писали:
x64>Проблема проявляется на Windows XP и Windows Vista. На сигнал я подписан, регистрировал именно HandlerEx, не приходит он только при первом входе в систему. При последующих логинах сигнал приходит и всё работает как надо.
Хм... Похоже, сервис реально стартует после логина. Глянул в MSDN, там предлагают (правда по другому поводу, но все же) вот что проверить:
To determine whether a service is running as an interactive service, call the GetProcessWindowStation function to retrieve a handle to the window station, and the GetUserObjectInformation function to test whether the window station has the WSF_VISIBLE attribute.
К примеру, можно после старта сервиса подождать несколько секунд и, если не пришел SESSIONCHANGE, проверить состояние стейшена. Если он видимый — стало быть мы пропустили логин и надо показать GUI.
PS (не по теме): А вариант связки неинтерактивного сервиса + отдельного управляющего приложения не рассматриваете? А то MS как-то интерактивные сервисы не очень жалует.