/[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 99 by william, Wed May 9 23:23:38 2012 UTC revision 175 by william, Mon May 28 09:24:07 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;
# Line 6  using RomCheater.PluginFramework.Interfa Line 9  using RomCheater.PluginFramework.Interfa
9  using System.Diagnostics;  using System.Diagnostics;
10  using libWin32.Win32.Threading;  using libWin32.Win32.Threading;
11  using RomCheater.Logging;  using RomCheater.Logging;
12    using System.IO;
13    
14  namespace RomCheater.PluginFramework.Core  namespace RomCheater.PluginFramework.Core
15  {  {
# Line 25  namespace RomCheater.PluginFramework.Cor Line 29  namespace RomCheater.PluginFramework.Cor
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);                          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);                          logger.VerboseDebug.WriteLine("  adding process {0} ", proc_name);
70    #endif
71                            proc_list.Add(container);
72                      }                      }
73                        catch (FileNotFoundException) { }
74                      catch (Exception ex)                      catch (Exception ex)
75                      {                      {
76                          //throw;                          //throw;
77                          logger.VerboseDebug.WriteLine("    not adding process {0} because it thew an exception [{1}]", proc_name, ex.Message);                          #if !DISALLOW_VERBOSE_LOGGING
78                          continue;                          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.99  
changed lines
  Added in v.175

  ViewVC Help
Powered by ViewVC 1.1.22