/[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 150 by william, Sun May 27 23:59:22 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    using System;
3  using System.Collections.Generic;  using System.Collections.Generic;
4  using System.Linq;  using System.Linq;
5  using System.Text;  using System.Text;
# Line 6  using RomCheater.PluginFramework.Interfa Line 7  using RomCheater.PluginFramework.Interfa
7  using System.Diagnostics;  using System.Diagnostics;
8  using libWin32.Win32.Threading;  using libWin32.Win32.Threading;
9  using RomCheater.Logging;  using RomCheater.Logging;
10    using System.IO;
11    
12  namespace RomCheater.PluginFramework.Core  namespace RomCheater.PluginFramework.Core
13  {  {
# Line 25  namespace RomCheater.PluginFramework.Cor Line 27  namespace RomCheater.PluginFramework.Cor
27          }          }
28          private void init()          private void init()
29          {          {
30                loggerflags flags = logger.GetLoggingFlags();
31    
32    #if DISABLE_VERBOSE_LOGGING_FOR_PERFORMANCE_BOOST
33                ushort performance_flags = flags.Value;
34                if (flags.HasFlag(loggerflags.VERBOSE_DEBUG))
35                {
36                    performance_flags = (ushort)(performance_flags &~ loggerflags.VERBOSE_DEBUG.Value);
37                }
38                if (flags.HasFlag(loggerflags.VERBOSE_ERROR))
39                {
40                    performance_flags = (ushort)(performance_flags &~ loggerflags.VERBOSE_ERROR.Value);
41                }
42    #endif
43                logger.SetLoggingFlags(performance_flags);
44    
45              List<ProcContainer> proc_list = new List<ProcContainer>();              List<ProcContainer> proc_list = new List<ProcContainer>();
46              foreach (Process proc in Process.GetProcesses())              foreach (Process proc in Process.GetProcesses())
47              {              {
48                    string proc_name = proc.ProcessName.ToLower();
49                  try                  try
50                  {                  {
51                      bool isSystem = false;                      bool isSystem = false;
                     string proc_name = proc.ProcessName.ToLower();  
52                      string proc_user = ThreadControl.GetProcessOwner(proc.Handle, out isSystem).ToLower();                      string proc_user = ThreadControl.GetProcessOwner(proc.Handle, out isSystem).ToLower();
53                      if (isSystem)                      if (isSystem)
54                      {                      {
# Line 40  namespace RomCheater.PluginFramework.Cor Line 57  namespace RomCheater.PluginFramework.Cor
57                      }                      }
58                      ProcContainer container = null;                      ProcContainer container = null;
59                      try                      try
60                      {                                            {
61                          container = new ProcContainer(proc);                          container = new ProcContainer(proc);
62                          logger.VerboseDebug.WriteLine("  adding process {0} ", proc_name);                          logger.VerboseDebug.WriteLine("  adding process {0} ", proc_name);
63                            proc_list.Add(container);
64                      }                      }
65                        catch (FileNotFoundException) { }
66                      catch (Exception ex)                      catch (Exception ex)
67                      {                      {
68                          //throw;                          //throw;
69                          logger.VerboseDebug.WriteLine("    not adding process {0} because it thew an exception [{1}]", proc_name, ex.Message);                          logger.VerboseError.WriteLine("    not adding process {0} because it thew an exception [{1}]", proc_name, ex.ToString());
70                          continue;                          //continue;
71                      }                      }
                     proc_list.Add(container);  
72                  }                  }
73                  catch (System.ComponentModel.Win32Exception)                  catch (System.ComponentModel.Win32Exception ex)
74                  {                  {
75                      continue;                      if (!((uint)ex.ErrorCode == 0x80004005))
76                        {
77                            logger.VerboseError.WriteLine("    not adding process {0} because it thew an exception [{1}]", proc_name, ex.ToString());
78                        }                  
79                        //continue;
80                  }                  }
81                  catch (Exception)                  catch (Exception ex)
82                  {                  {
83                      continue;                      logger.VerboseError.WriteLine("    not adding process {0} because it thew an exception [{1}]", proc_name, ex.ToString());
84                        //continue;
85                  }                  }
86              }              }
87              proc_list = proc_list.OrderBy(p => p.Name).ToList();              proc_list = proc_list.OrderBy(p => p.Name).ToList();
88              Predicate<ProcContainer> predicate = new Predicate<ProcContainer>(IsNotValidProcess);              Predicate<ProcContainer> predicate = new Predicate<ProcContainer>(IsNotValidProcess);
89              proc_list.RemoveAll(predicate);              proc_list.RemoveAll(predicate);
90              ValidProcessesForPlugin = proc_list;              ValidProcessesForPlugin = proc_list;
91                logger.SetLoggingFlags(flags); // reset flags
92          }          }
93    
94          protected abstract bool IsNotValidProcess(ProcContainer p);          protected abstract bool IsNotValidProcess(ProcContainer p);

Legend:
Removed from v.99  
changed lines
  Added in v.150

  ViewVC Help
Powered by ViewVC 1.1.22