1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
|
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, false, entry.th32ProcessID);
if (hProcess != NULL) {
LPVOID address = VirtualAllocEx(hProcess, NULL, sizeof(TVITEM),
MEM_COMMIT, PAGE_EXECUTE_READWRITE);
TVITEM pitem;
pitem.mask = TVIF_STATE | TVIF_PARAM;
pitem.hItem = item;
int latestError = 0;
if(!WriteProcessMemory(hProcess, address, &pitem, sizeof(pitem), NULL))
latestError = GetLastError();
if(!TreeView_GetItem(treeView, (TVITEM *)address))
latestError = GetLastError();
if(!ReadProcessMemory(hProcess, address, &pitem, sizeof(pitem), NULL))
latestError = GetLastError();
VirtualFreeEx(hProcess, address, NULL, MEM_RELEASE);
CloseHandle(hProcess);
}
|