2,586
社区成员
发帖
与我相关
我的任务
分享
GetWindowThreadProcessId(hwnd7, &processId);
HANDLE process = ::OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ | PROCESS_VM_WRITE, false, processId);
PVOID buffer = VirtualAllocEx(process, NULL, bufferLength, MEM_COMMIT, PAGE_READWRITE);
item->mask = TVIF_TEXT;
item->cchTextMax = 512;
item->pszText = LPTSTR((PBYTE)buffer + sizeof(TVITEM));
item->hItem = (HTREEITEM)::SendMessage(hwnd7, TVM_GETNEXTITEM, TVGN_ROOT, 0);
while (item->hItem)
{
::SendMessage(hwnd7, TVM_SELECTITEM, TVGN_CARET, (long)item->hItem);
WriteProcessMemory(process, buffer, item, sizeof(TVITEM), NULL);
::SendMessage(hwnd7, TVM_GETITEM, 0, (LPARAM)buffer);
ReadProcessMemory(process, buffer, item, bufferLength, NULL);
text = (LPTSTR)((PBYTE)item + sizeof(TVITEM));
if (-1 != text.Find(_T("新股申购")))
{
::SendMessage(hwnd7, TVM_EXPAND, TVE_EXPAND, (long)item->hItem);
::SendMessage(hwnd7, TVM_SELECTITEM, TVGN_CARET, (long)item->hItem);
break;
}
item->hItem = (HTREEITEM)::SendMessage(hwnd7, TVM_GETNEXTITEM, TVGN_NEXTVISIBLE, (long)item->hItem);
}
item->hItem = (HTREEITEM)::SendMessage(hwnd7, TVM_GETNEXTITEM, TVGN_CHILD, 0);
while (item->hItem)
{
::SendMessage(hwnd7, TVM_SELECTITEM, TVGN_CARET, (long)item->hItem);
WriteProcessMemory(process, buffer, item, sizeof(TVITEM), NULL);
::SendMessage(hwnd7, TVM_GETITEM, 0, (LPARAM)buffer);
ReadProcessMemory(process, buffer, item, bufferLength, NULL);
text = (LPTSTR)((PBYTE)item + sizeof(TVITEM));
if (-1 != text.Find(_T("批量新股申购")))
{
::SendMessage(hwnd7, TVM_EXPAND, TVE_EXPAND, (long)item->hItem);
::SendMessage(hwnd7, TVM_SELECTITEM, TVGN_CARET, (long)item->hItem);
break;
}
item->hItem = (HTREEITEM)::SendMessage(hwnd7, TVM_GETNEXTITEM, TVGN_NEXTVISIBLE, (long)item->hItem);