Code:
// Den Prozess einer Variable zuteilen
var process = Process.GetProcessesByName("example")[0];
// MemoryAccessor erstellen, erwartet einen Prozess als Argument
var ma = new MemoryAccessor(process)
// IntPtr erstellen, welcher eine Speicheraddresse enthält
var goldAddress = new IntPtr(0x1234ABCD);
// Nun kann man schon Speicher lesen und schreiben
// --------------------
// SPEICHERMANIPULATION
// --------------------
// Die "Write" Methode hat einen Typparameter, welcher den zu schreibenden Typ enthalten muss. (int, Int64, float, byte, double, eigene Strukturen)
// Ausserdem erwartet die Methode einen IntPtr (Die Addresse, auf die geschrieben wird), und natürlich den zu schreibenden Wert.
// Beispiele:
ma.Write<int>(goldAddress, 1000);
ma.Write<float>(xPosition, 53.368);
// Speicher lesen funktionier genau so leicht.
// Hier erwartet die Methode wieder den zu lesenden Typ, und die Addresse als IntPtr
// Beispiele:
int life = ma.Read<int>(lifeAddress);
// Man kann auch hier eigene Strukturen lesen:
struct Player {
public int Life;
public float X;
public float Y;
}
var player = ma.Read<Player>(playerAddress);
// Um Strings zu lesen sollte man diese entsprechende Methode benutzen.
// ReadString erwartet die Addresse (IntPtr), die Stringlänge und die Encoding (z.B. Encoding.ASCII, Encoding.UTF8)
string name = ma.ReadString(nameAddress, 255, Encoding.UTF8);
// Um Bytearray zu lesen/schreiben, gibt es folgende Methoden:
byte[] ReadBytes(IntPtr baseAddress, int size)
bool WriteBytes(IntPtr baseAddress, byte[] data)
// ---------------
// AUTOMATISIERUNG
// ---------------
// Um die Farbe eines Bildschirmpixels auszulesen, benutzt man die statische Screen.GetPixel Methode
// Diese liefert eine Farbe (System.Drawing.Color) zurück
Color col = Screen.GetPixel(10, 20); // Pixel auf Position (10, 20) auszulesen
// Die Maus steuert man mit der Mouse Klasse, welche folgende statische Methoden enthält:
Move(int x, int y)
LeftClick()
LeftClick(int x, int y)
RightClick()
RightClick(int x, int y)
LeftDown()
LeftUp()
RightDown()
RightUp()
// Diese Methoden sollten alle selbsterklärend sein
// Um die Tastatur zu steuern sollte man die im .NET Framework schon enthaltene Klasse SendKeys benutzen:
SendKeys.Send("Dies ist ein Test{ENTER}");
// Mehr dazu hier: http://msdn.microsoft.com/de-de/library/system.windows.forms.sendkeys.send.aspx