Ejemplo n.º 1
0
        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");
        }