Получение содержимого ListView другого окна

200
10 января 2018, 18:43

Задача состоит в получении содержимого элемента ListView другого окна. Однако, данный код приводит к критическому завершению работы процесса - владельца окна. Как исправить это?

#include "stdafx.h"
#include "windows.h"
#include "Commctrl.h"
int main() {
    HWND hWnd = FindWindow(NULL, L"<My window name>");
    HWND hSysListView32 = FindWindowEx(hWnd, NULL, L"SysListView32", NULL);
    unsigned long pid;
    GetWindowThreadProcessId(hSysListView32, &pid);
    HANDLE hProc = OpenProcess(
        PROCESS_VM_OPERATION | PROCESS_VM_READ |
        PROCESS_VM_WRITE | PROCESS_QUERY_INFORMATION,
        FALSE,
        pid);
    LVITEM* lvi = new LVITEM;
    lvi->iSubItem = 0;
    lvi->cchTextMax = 256;
    LVITEM* lviAddr = (LVITEM*)VirtualAllocEx(hProc, NULL, sizeof LVITEM, MEM_COMMIT, PAGE_READWRITE);
    WriteProcessMemory(hProc, lviAddr, lvi, sizeof LVITEM, NULL);
    if (SendMessage(hSysListView32, LVM_GETITEMTEXT, 0, (LPARAM)lviAddr) > 0)
        printf("%s\n", lvi->pszText);
    else
        printf("%d\n", GetLastError());
    system("pause");
    return 0;
}
READ ALSO
Проблема реализации класса матрицы C++

Проблема реализации класса матрицы C++

Учу классы и решил реализовать старую программу через классыНо возникла ошибка и не могу разобраться в чем дело

180
как перевести vector&lt;int&gt; в string?

как перевести vector<int> в string?

Решаю задачку по c++Почти решил,но появилась проблема

175
VS Code в связке с С++ (windows)

VS Code в связке с С++ (windows)

Помогите запустить (то есть собрать (build) и отладить) код с++ в vsCode на windows 10У меня уже установлен VS Community 2017 и расширение С/С++

208
Проблема с потоком android

Проблема с потоком android

Есть следующий код:

215