public void CloseHandle()
 {
     if (!ProcessMemoryReaderApi.CloseHandle(m_hProcess))
     {
         throw new Exception("CloseHandle failed");
     }
 }
        public void OpenProcess()
        {
            Log("Attaching to process '{0}' [{1}]", Path.GetFileName(m_ReadProcess.MainModule.FileName), m_ReadProcess.Id);

            m_hProcess = ProcessMemoryReaderApi.OpenProcess(
                ProcessMemoryReaderApi.ProcessAccessFlags.VirtualMemoryRead |
                ProcessMemoryReaderApi.ProcessAccessFlags.VirtualMemoryWrite |
                ProcessMemoryReaderApi.ProcessAccessFlags.VirtualMemoryOperation, true, m_ReadProcess.Id);

            Log("Attached with handle 0x{0:X16}", (int)m_hProcess);
        }