예제 #1
0
        private static void UserChecker()
        {
            while (true)
            {
                var users = User.AllLoggedIn();

                foreach (var user in users)
                {
                    if (Processes.ContainsKey(user))
                    {
                        continue;
                    }

                    var proc = ProcessHandler.CreateImpersonatedClientEXE("FOGUserService.exe", "", user);
                    proc.Start();
                    Processes.Add(user, proc);
                }

                var loggedOff = users.Except(Processes.Keys);
                foreach (var user in loggedOff)
                {
                    Processes[user].Kill();
                    Processes[user].Dispose();
                    Processes.Remove(user);
                }

                Thread.Sleep(5 * 1000);
            }
        }