Задача состоит в получении содержимого элемента 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;
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Учу классы и решил реализовать старую программу через классыНо возникла ошибка и не могу разобраться в чем дело
Помогите запустить (то есть собрать (build) и отладить) код с++ в vsCode на windows 10У меня уже установлен VS Community 2017 и расширение С/С++