public static extern long ReadProcessMemory( long hProcess,object lpBaseAddress ,object lpBuffer , long nSize , long lpNumberOfBytesWritten ); 这里用 object 就无法将TBBUTTON 转化为object . 我是这样写的 public static extern long ReadProcessMemory( long hProcess, ref object lpBaseAddress , ref object lpBuffer , long nSize , long lpNumberOfBytesWritten );
http://www.codeproject.com/KB/trace/minememoryreader.aspx
//try
[System.Runtime.InteropServices.DllImportAttribute("kernel32.dll")]
public static extern long ReadProcessMemory(
long hProcess,object lpBaseAddress ,object lpBuffer ,
long nSize , long lpNumberOfBytesWritten
);Public struct TBBUTTON
{
Long iBitmap ,
Long idCommand ,
Byte fsState ,
Byte fsStyle ,
Byte bReserved1 ,
Byte bReserved2 ,
Long dwData ,
Long iString
} long lret =
ReadProcessMemory(hProcess, lAddress, udtTb, (long)udtTb.Length, 0)
public static extern bool ReadProcessMemory(ntPtr hProcess, IntPtr lpBaseAddress, byte[] lpBuffer, UInt32 nSize, ref UInt32 lpNumberOfBytesRead);使用
public byte[] Read(IntPtr handle,IntPtr address,UInt32 size,ref UInt32 bytes)
{
byte[] buffer = new byte[size];
ReadProcessMemory(handle,address,buffer,size, ref bytes);
return buffer;
}
long hProcess,object lpBaseAddress ,object lpBuffer ,
long nSize , long lpNumberOfBytesWritten
); 这里用 object 就无法将TBBUTTON 转化为object . 我是这样写的
public static extern long ReadProcessMemory(
long hProcess, ref object lpBaseAddress , ref object lpBuffer ,
long nSize , long lpNumberOfBytesWritten
);