/[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 86 by william, Wed May 9 19:41:06 2012 UTC revision 92 by william, Wed May 9 21:42:21 2012 UTC
# Line 4  using System.Linq; Line 4  using System.Linq;
4  using System.Text;  using System.Text;
5  using RomCheater.PluginFramework.Interfaces;  using RomCheater.PluginFramework.Interfaces;
6  using System.Diagnostics;  using System.Diagnostics;
7    using libWin32.Win32.Threading;
8    
9  namespace RomCheater.PluginFramework.Core  namespace RomCheater.PluginFramework.Core
10  {  {
# Line 12  namespace RomCheater.PluginFramework.Cor Line 13  namespace RomCheater.PluginFramework.Cor
13      /// </summary>      /// </summary>
14      public abstract class ConfigPlugin : PluginBase, IConfigPlugin      public abstract class ConfigPlugin : PluginBase, IConfigPlugin
15      {      {
16          public ConfigPlugin() : base() { this.ValidProcessesForPlugin = new List<Process>(); }          public ConfigPlugin() : this(false) { }
17            public ConfigPlugin(bool doinit) : base() { this.ValidProcessesForPlugin = new List<ProcContainer>(); if(doinit) init(); }
18    
19            public override void Reload()
20            {
21                init();
22            }
23            private void init()
24            {
25                List<ProcContainer> proc_list = new List<ProcContainer>();
26                foreach (Process proc in Process.GetProcesses())
27                {
28                    try
29                    {
30                        bool isSystem = false;
31                        string proc_name = proc.ProcessName.ToLower();
32                        string proc_user = ThreadControl.GetProcessOwner(proc.Handle, out isSystem).ToLower();
33                        if (isSystem)
34                        {
35                            continue;
36                        }
37                        ProcContainer container = null;
38                        try
39                        {
40                            container = new ProcContainer(proc);
41                        }
42                        catch (Exception)
43                        {
44                            throw;
45                        }
46                        proc_list.Add(container);
47                    }
48                    catch (System.ComponentModel.Win32Exception)
49                    {
50                        continue;
51                    }
52                    catch (Exception)
53                    {
54                        continue;
55                    }
56                }
57                proc_list = proc_list.OrderBy(p => p.Name).ToList();
58                Predicate<ProcContainer> predicate = new Predicate<ProcContainer>(IsNotValidProcess);
59                proc_list.RemoveAll(predicate);
60                ValidProcessesForPlugin = proc_list;
61            }
62    
63            protected abstract bool IsNotValidProcess(ProcContainer p);
64    
65          #region IConfigPlugin Members          #region IConfigPlugin Members
66          public List<Process> ValidProcessesForPlugin { get; protected set; }          public List<ProcContainer> ValidProcessesForPlugin { get; protected set; }
67          public override Guid Id          public override Guid Id
68          {          {
69              get { return new Guid(); }              get { return new Guid(); }

Legend:
Removed from v.86  
changed lines
  Added in v.92

  ViewVC Help
Powered by ViewVC 1.1.22