public bool Open(int processId) { try { Process = Process.GetProcessById(processId); ProcessHandle = OpenProcess(ProcessAccessFlags.PROCESS_VM_READ, false, Process.Id); bool isWow64; if (ProcessUtils.IsWow64Process(Process.Handle, out isWow64)) { Is64BitProcess = !isWow64; } else { throw new InvalidOperationException("Can't get process is 32bit/64bit."); } } catch (Exception e) when(e is ArgumentException || e is InvalidOperationException) { Console.WriteLine(e); return(false); } Timer.Start(); ProcessOpened?.Invoke(Process, ProcessHandle); return(true); }
private void ObservedProcess_ProcessOpened(Process process, IntPtr processHandle) { ProcessOpened?.Invoke(this, process, processHandle); }