private static IntPtr GetDesktopProcess(IntPtr desktopHandle) { uint vProcessId; NM.GetWindowThreadProcessId(desktopHandle, out vProcessId); return(NM.OpenProcess(NM.PROCESS_VM_OPERATION | NM.PROCESS_VM_READ | NM.PROCESS_VM_WRITE, false, vProcessId)); }