Пример #1
0
        // 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);
        }
Пример #2
0
        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);
        }
Пример #3
0
 internal static extern bool WriteProcessMemory(IntPtr hProcess, IntPtr lpBaseAddress, ref NMITEMACTIVATE lpBuffer, uint nSize, out int lpNumberOfBytesWritten);