Делаю так:
[syntax="С#"]
...
[DllImport("kernel32")]
static extern bool ReadProcessMemory( IntPtr hProcess, IntPtr lpBaseAddress,IntPtr lpBuffer, int dwSize, IntPtr lpNumberOfBytesRead );
[DllImport("kernel32")]
static extern IntPtr OpenProcess(uint dwDesiredAccess, bool bInheritHandle,int dwProcessId);
...
Process[] pArray = Process.GetProcessesByName("нужный процесс");
m_hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, (int)pArray[0].Id); //тут всё ок, открывает
...
do
{
zd = ReadProcessMemory(processs,adr,rn,1,IntPtr.Zero );
}
while (zd==false);
...
[/syntax]
Проблема - из цикла не выходит, т.е. zd=false всегда.
з.ы. Цикл для того чтоб процесс смог подгрузить дллки по нужному адресу.
з.з.ы. Та же функция с тем же адресом на вб 6.0 работает!!!