/[RomCheater]/trunk/RomCheater.PluginFramework/Core/ConfigPlugin.cs
ViewVC logotype

Diff of /trunk/RomCheater.PluginFramework/Core/ConfigPlugin.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 94 by william, Wed May 9 22:31:56 2012 UTC revision 174 by william, Mon May 28 09:21:52 2012 UTC
# Line 1  Line 1 
1  ´╗┐using System;  ´╗┐//#define DISABLE_VERBOSE_LOGGING_FOR_PERFORMANCE_BOOST // when defined will disable verbose logging for performance speed-up
2    //#define DISALLOW_VERBOSE_LOGGING // when defined will disallow verbose logging for performance reasons
3    #define ALLOW_SYSTEM_PROCESSES_TO_BE_INLUCDED // when defined system processes will be included in process list
4    using System;
5  using System.Collections.Generic;  using System.Collections.Generic;
6  using System.Linq;  using System.Linq;
7  using System.Text;  using System.Text;
8  using RomCheater.PluginFramework.Interfaces;  using RomCheater.PluginFramework.Interfaces;
9  using System.Diagnostics;  using System.Diagnostics;
10  using libWin32.Win32.Threading;  using libWin32.Win32.Threading;
11    using RomCheater.Logging;
12    using System.IO;
13    
14  namespace RomCheater.PluginFramework.Core  namespace RomCheater.PluginFramework.Core
15  {  {
# Line 18  namespace RomCheater.PluginFramework.Cor Line 23  namespace RomCheater.PluginFramework.Cor
23    
24          public override void Reload()          public override void Reload()
25          {          {
26                logger.Debug.WriteLine(" Loading config for {0}...", this.ToString());
27              init();              init();
28                logger.Debug.WriteLine(" Loaded config for {0}.", this.ToString());
29          }          }
30          private void init()          private void init()
31          {          {
32    //            loggerflags flags = logger.GetLoggingFlags();
33    
34    //#if DISABLE_VERBOSE_LOGGING_FOR_PERFORMANCE_BOOST
35    //            ushort performance_flags = flags.Value;
36    //            if (flags.HasFlag(loggerflags.VERBOSE_DEBUG))
37    //            {
38    //                performance_flags = (ushort)(performance_flags &~ loggerflags.VERBOSE_DEBUG.Value);
39    //            }
40    //            if (flags.HasFlag(loggerflags.VERBOSE_ERROR))
41    //            {
42    //                performance_flags = (ushort)(performance_flags &~ loggerflags.VERBOSE_ERROR.Value);
43    //            }
44    //#endif
45    //            logger.SetLoggingFlags(performance_flags);
46    
47              List<ProcContainer> proc_list = new List<ProcContainer>();              List<ProcContainer> proc_list = new List<ProcContainer>();
48              foreach (Process proc in Process.GetProcesses())              foreach (Process proc in Process.GetProcesses())
49              {              {
50                    string proc_name = proc.ProcessName.ToLower();
51                  try                  try
52                  {                  {
53                      bool isSystem = false;                      bool isSystem = false;
                     string proc_name = proc.ProcessName.ToLower();  
54                      string proc_user = ThreadControl.GetProcessOwner(proc.Handle, out isSystem).ToLower();                      string proc_user = ThreadControl.GetProcessOwner(proc.Handle, out isSystem).ToLower();
55    #if !ALLOW_SYSTEM_PROCESSES_TO_BE_INLUCDED
56                      if (isSystem)                      if (isSystem)
57                      {                      {
58    #if !DISALLOW_VERBOSE_LOGGING
59                            logger.VerboseDebug.WriteLine("    not adding process {0} because it is a system process", proc_name);
60    #endif
61                          continue;                          continue;
62                      }                      }
63    #endif
64                      ProcContainer container = null;                      ProcContainer container = null;
65                      try                      try
66                      {                      {
67                          container = new ProcContainer(proc);                          container = new ProcContainer(proc);
68                            #if !DISALLOW_VERBOSE_LOGGING
69                            logger.VerboseDebug.WriteLine("  adding process {0} ", proc_name);
70    #endif
71                            proc_list.Add(container);
72                      }                      }
73                      catch (Exception)                      catch (FileNotFoundException) { }
74                        catch (Exception ex)
75                      {                      {
76                          throw;                          //throw;
77                            #if !DISALLOW_VERBOSE_LOGGING
78                            logger.VerboseError.WriteLine("    not adding process {0} because it thew an exception [{1}]", proc_name, ex.ToString());
79    #endif
80                            //continue;
81                      }                      }
                     proc_list.Add(container);  
82                  }                  }
83                  catch (System.ComponentModel.Win32Exception)                  catch (System.ComponentModel.Win32Exception ex)
84                  {                  {
85                      continue;                      if (!((uint)ex.ErrorCode == 0x80004005))
86                        {
87                            #if !DISALLOW_VERBOSE_LOGGING
88                            logger.VerboseError.WriteLine("    not adding process {0} because it thew an exception [{1}]", proc_name, ex.ToString());
89    #endif
90                        }                  
91                        //continue;
92                  }                  }
93                  catch (Exception)                  catch (Exception ex)
94                  {                  {
95                      continue;                      #if !DISALLOW_VERBOSE_LOGGING
96                        logger.VerboseError.WriteLine("    not adding process {0} because it thew an exception [{1}]", proc_name, ex.ToString());
97    #endif
98                        //continue;
99                  }                  }
100              }              }
101              proc_list = proc_list.OrderBy(p => p.Name).ToList();              proc_list = proc_list.OrderBy(p => p.Name).ToList();
102              Predicate<ProcContainer> predicate = new Predicate<ProcContainer>(IsNotValidProcess);              Predicate<ProcContainer> predicate = new Predicate<ProcContainer>(IsNotValidProcess);
103              proc_list.RemoveAll(predicate);              proc_list.RemoveAll(predicate);
104              ValidProcessesForPlugin = proc_list;              ValidProcessesForPlugin = proc_list;
105                //logger.SetLoggingFlags(flags); // reset flags
106          }          }
107    
108          protected abstract bool IsNotValidProcess(ProcContainer p);          protected abstract bool IsNotValidProcess(ProcContainer p);

Legend:
Removed from v.94  
changed lines
  Added in v.174

  ViewVC Help
Powered by ViewVC 1.1.22