/[RomCheater]/trunk/RomCheater/Docking/FloatingPEViewer.cs
ViewVC logotype

Contents of /trunk/RomCheater/Docking/FloatingPEViewer.cs

Parent Directory Parent Directory | Revision Log Revision Log


Revision 587 - (show annotations) (download)
Thu Jun 6 09:12:35 2013 UTC (7 years, 4 months ago) by william
File size: 4074 byte(s)

1 #define USE_AUTOMATIC_MEMORY_SEARCH_RANGE // when defined will automatically choose the best starting address and size for memory search otherwise it will use the constants defined in MemorySizeConstants
2 #if !USE_AUTOMATIC_MEMORY_SEARCH_RANGE
3 #define FORCE_USE_OF_MEMORYSIZECONSTANTS // when defined wil force the use of the constants defined in MemorySizeConstants for memory search range
4 #endif
5 using System;
6 using System.Collections.Generic;
7 using System.ComponentModel;
8 using System.Data;
9 using System.Drawing;
10 using System.Linq;
11 using System.Text;
12 using System.Windows.Forms;
13 using WeifenLuo.WinFormsUI.Docking;
14 using RomCheater.PluginFramework.Interfaces;
15 using System.Diagnostics;
16 using Sojaner.MemoryScanner;
17 using RomCheater.PluginFramework.Events;
18
19 namespace RomCheater.Docking
20 {
21 public partial class FloatingPEViewer : DockContent,
22 IAcceptsPlugin<IConfigPlugin>,
23 IAcceptsProcess<Process>,
24 IAcceptsProcessAndConfig,
25 IAcceptPEData,
26 IAcceptsPEData
27 {
28 public FloatingPEViewer() { InitializeComponent(); this.AcceptedPlugin = null; this.AcceptedProcess = null; OnPEDataUpdated = null; }
29 public FloatingPEViewer(IConfigPlugin config) : this() { this.AcceptedPlugin = config; }
30 public FloatingPEViewer(IConfigPlugin config, Process process) : this() { this.AcceptedPlugin = config; this.AcceptedProcess = process; }
31 #region IAcceptsProcess<Process> Members
32 private Process _AcceptedProcess;
33 public Process AcceptedProcess { get { return _AcceptedProcess; } set { _AcceptedProcess = value; UpdateAcceptedProcess(value); } }
34 #endregion
35 #region IAcceptsPlugin<IConfigPlugin> Members
36 private IConfigPlugin _AcceptedPlugin;
37 public IConfigPlugin AcceptedPlugin { get { return _AcceptedPlugin; } set { _AcceptedPlugin = value; UpdateAcceptedPlugin(value); } }
38 #endregion
39 #region IAcceptsPEData Members
40 public event BaseEventHandler<PEViewerDataUpdatedEventArgs> OnPEDataUpdated;
41 #endregion
42 ulong MemoryRangeStart { get; set; }
43 ulong MemoryRangeSize { get; set; }
44
45 private void UpdateAcceptedPlugin(IConfigPlugin config)
46 {
47 }
48 private void UpdateAcceptedProcess(Process process)
49 {
50 #if USE_AUTOMATIC_MEMORY_SEARCH_RANGE && FORCE_USE_OF_MEMORYSIZECONSTANTS
51 logger.Warn.WriteLine("FloatingMemorySearcher.UpdateAcceptedProcessAndConfig(IConfigPlugin config, Process process):");
52 logger.Warn.WriteLine("Both USE_AUTOMATIC_MEMORY_SEARCH_RANGE and FORCE_USE_OF_MEMORYSIZECONSTANTS are defined");
53 logger.Warn.WriteLine("FORCE_USE_OF_MEMORYSIZECONSTANTS will take precedence and will ignore the values supplied in the memeory search range");
54 #endif
55 #if FORCE_USE_OF_MEMORYSIZECONSTANTS
56 // force use of MemorySizeConstants
57 MemoryRangeStart = MemorySizeConstants.MinimumAddress;
58 MemoryRangeSize = MemoryRangeStart + MemorySizeConstants.MaximumAddressSize;
59 #endif
60 #if USE_AUTOMATIC_MEMORY_SEARCH_RANGE && !FORCE_USE_OF_MEMORYSIZECONSTANTS
61 //// code to automatically choose the best starting memory address and size
62 if (process != null)
63 {
64 string filename = process.MainModule.FileName;
65 //string filename = @"c:\Windows\notepad.exe";
66 IPEDData peData = PEDataWrapper.GetPEData((IAcceptsProcessAndConfig)this);
67 peprops.SelectedObject = peData;
68 peprops.PropertySort = PropertySort.NoSort;
69 if (OnPEDataUpdated != null)
70 if (peData != null)
71 OnPEDataUpdated(new PEViewerDataUpdatedEventArgs(this, peData));
72 }
73 else
74 {
75 MemoryRangeStart = MemorySizeConstants.MinimumAddress;
76 MemoryRangeSize = MemorySizeConstants.MaximumAddressSize;
77 }
78 #endif
79
80 }
81 }
82 }

  ViewVC Help
Powered by ViewVC 1.1.22