Einzelnen Beitrag anzeigen
Ungelesen 15.01.11, 20:55   #2
Xalir
Erfahrener Newbie
 
Registriert seit: Mar 2009
Beiträge: 154
Bedankt: 56
Xalir ist noch neu hier! | 0 Respekt Punkte
Standard

Read/WriteMemoryProcess sind DLL-Aufrufe, die vorher dem Compiler mitteilen musst. In .NET ist es durch die eigenen Klassen nicht möglich, Speicherbereiche zu beschreiben, die nicht zum eigenen Prozess gehören.

Zuerst musst die Funktionen aus der DLL deklarieren.
Code:
<DllImport("kernel32.dll", SetLastError=true)>
Private Function ReadMemoryProcess(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByVal lpBuffer as Long,  ByVal nSize as System.UInt32,<Out()> ByRef lpNumberOfBytesRead As Int32) As Integer

<DllImport("kernel32.dll", SetLastError=true)>
Private Function WriteMemoryProcess(ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByVal lpBuffer As Byte(), ByVal nSize As System.UInt32, <Out()> ByRef lpNumberOfBytesWritten As Int32) As Boolean
Nun kannst Du die Funktionen erst in Deinem Code verwenden.

Edit: Ob die API-Aufrufe jetzt genauso geschrieben werden kann ich nicht sagen, dazu empfiehlt sich ein Blick in die API-Dokumentation der MSDN
Xalir ist offline