// Token: 0x06000576 RID: 1398 RVA: 0x00032E84 File Offset: 0x00031084 public static void DoubleClickListView(IntPtr hwnd, uint processId, int item, int subitem) { IntPtr intPtr = IntPtr.Zero; IntPtr intPtr2 = IntPtr.Zero; NMHDR nmhdr; nmhdr.hwndFrom = (int)hwnd; nmhdr.idFrom = 116; nmhdr.code = 515; IntPtr hProcess = IntPtr.Zero; hProcess = ListViewItem1.OpenProcess(Win32ProcessAccessType.AllAccess, false, processId); intPtr = ListViewItem1.VirtualAllocEx(hProcess, IntPtr.Zero, 2048u, Win32AllocationTypes.MEM_COMMIT, Win32MemoryProtection.PAGE_READWRITE); IntPtr zero = IntPtr.Zero; int num = 0; ListViewItem1.WriteProcessMemory(hProcess, intPtr, ref nmhdr, (uint)Marshal.SizeOf(typeof(NMHDR)), out num); POINT point; point.x = 31; point.y = 31; intPtr2 = ListViewItem1.VirtualAllocEx(hProcess, IntPtr.Zero, 2048u, Win32AllocationTypes.MEM_COMMIT, Win32MemoryProtection.PAGE_READWRITE); ListViewItem1.WriteProcessMemory(hProcess, intPtr2, ref point, (uint)Marshal.SizeOf(typeof(POINT)), out num); NMITEMACTIVATE nmitemactivate = default(NMITEMACTIVATE); nmitemactivate.hdr = intPtr; nmitemactivate.iItem = item; nmitemactivate.iSubItem = subitem; nmitemactivate.uOldState = 2u; nmitemactivate.uNewState = 0u; nmitemactivate.ptAction = intPtr2; IntPtr intPtr3 = IntPtr.Zero; intPtr3 = ListViewItem1.VirtualAllocEx(hProcess, IntPtr.Zero, 2048u, Win32AllocationTypes.MEM_COMMIT, Win32MemoryProtection.PAGE_READWRITE); ListViewItem1.WriteProcessMemory(hProcess, intPtr3, ref nmitemactivate, (uint)Marshal.SizeOf(typeof(NMITEMACTIVATE)), out num); ListViewItem1.SendMessageTimeout(hwnd, 78, (IntPtr)116, intPtr3, 2, 5000, IntPtr.Zero); }
public static void DoubleClickListView(IntPtr hwnd, uint processId, int item, int subitem) { NMHDR nMHDR = new NMHDR(); POINT pOINT = new POINT(); IntPtr zero = IntPtr.Zero; IntPtr intPtr = IntPtr.Zero; nMHDR.hwndFrom = (int)hwnd; nMHDR.idFrom = 116; nMHDR.code = 515; IntPtr zero1 = IntPtr.Zero; zero1 = ListViewItem1.OpenProcess(Win32ProcessAccessType.AllAccess, false, processId); zero = ListViewItem1.VirtualAllocEx(zero1, IntPtr.Zero, 2048, Win32AllocationTypes.MEM_COMMIT, Win32MemoryProtection.PAGE_READWRITE); IntPtr intPtr1 = IntPtr.Zero; int num = 0; ListViewItem1.WriteProcessMemory(zero1, zero, ref nMHDR, (uint)Marshal.SizeOf(typeof(NMHDR)), out num); pOINT.x = 31; pOINT.y = 31; intPtr = ListViewItem1.VirtualAllocEx(zero1, IntPtr.Zero, 2048, Win32AllocationTypes.MEM_COMMIT, Win32MemoryProtection.PAGE_READWRITE); ListViewItem1.WriteProcessMemory(zero1, intPtr, ref pOINT, (uint)Marshal.SizeOf(typeof(POINT)), out num); NMITEMACTIVATE nMITEMACTIVATE = new NMITEMACTIVATE() { hdr = zero, iItem = item, iSubItem = subitem, uOldState = 2, uNewState = 0, ptAction = intPtr }; IntPtr zero2 = IntPtr.Zero; zero2 = ListViewItem1.VirtualAllocEx(zero1, IntPtr.Zero, 2048, Win32AllocationTypes.MEM_COMMIT, Win32MemoryProtection.PAGE_READWRITE); ListViewItem1.WriteProcessMemory(zero1, zero2, ref nMITEMACTIVATE, (uint)Marshal.SizeOf(typeof(NMITEMACTIVATE)), out num); ListViewItem1.SendMessageTimeout(hwnd, 78, (IntPtr)116, zero2, 2, 5000, IntPtr.Zero); }
internal static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, ref NMITEMACTIVATE lpBuffer, uint nSize, out int lpNumberOfBytesWritten);