protected override void OnStart(string[] args) { //Thread.Sleep(10000); Core.ServiceCore.Log("Service starting"); // fire up the service core if (core == null) { core = new ServiceCore(Settings.Default.isDebug); } uint sessionId = WTSGetActiveConsoleSessionId(); if (sessionId == uint.MaxValue) { Core.ServiceCore.SystemStatus.SessionStatus = SessionState.LoggedOff; Core.ServiceCore.SystemStatus.User = ""; } else { // how do we check if someone is logged in already? Core.ServiceCore.SystemStatus.User = GetUsername((int)sessionId, false); if (Core.ServiceCore.SystemStatus.User == "SYSTEM" || Core.ServiceCore.SystemStatus.User == "") { Core.ServiceCore.SystemStatus.SessionStatus = SessionState.LoggedOff; Core.ServiceCore.SystemStatus.User = ""; } else { Core.ServiceCore.SystemStatus.SessionStatus = SessionState.Active; } } Core.ServiceCore.Log("User " + Core.ServiceCore.SystemStatus.User + " is " + Core.ServiceCore.SystemStatus.SessionStatus.ToString()); core.Start(); // dont do this until they logon // need to check if they're already logged on and starting it manually core.LoadPlugins(); //// wanna listen for IPC - Named pipes using WCF //if (serviceHost != null) //{ // serviceHost.Close(); //} //serviceHost = new ServiceHost(typeof(RPCService)); //serviceHost.Open(); Core.ServiceCore.Log("Service started"); }