0
Itrying從另一個進程中獲取字符串sysListView32。 該列表是一棵樹。第一列返回一個空字符串。 告訴我問題在哪裏?來自sysListView32樹的文本
樹的形象: tree 代碼:
vProcess = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_READ |
PROCESS_VM_WRITE, False, vProcessId);
vPointer = VirtualAllocEx(vProcess, NULL, 4096, MEM_RESERVE | MEM_COMMIT,
PAGE_READWRITE);
vItem.mask = LVIF_TEXT;
vItem.iItem = I;
vItem.iSubItem = J;
vItem.cchTextMax = sizeof(vBuffer);
vItem.pszText = (wchar_t*)vPointer +sizeof(TLVItem);
WriteProcessMemory(vProcess, vPointer, &vItem, sizeof(TLVItem),
&vNumberOfBytesRead);
SendMessageW(mHandle, LVM_GETITEMW, I, (LPARAM)vPointer);
ReadProcessMemory(vProcess, (wchar_t*)vPointer +sizeof(TLVItem),
vBuffer, sizeof(vBuffer), &vNumberOfBytesRead);
RESULT = UnicodeString(vBuffer);
VirtualFreeEx(vProcess, vPointer, 0, MEM_RELEASE); // free mem
CloseHandle(vProcess);
這難道不是在另一個進程的內存分配?vProcess = OpenProcess(PROCESS_VM_OPERATION .... vPointer = VirtualAllocEx(vProcess,.... – AlexGu
)您是對的,我錯過了。但是,當vPointer不是源進程中的有效地址時,您將發送vPointer到SendMessage 我更新了我的觀點,你應該使用UIA –
我運行了一個名爲UISpy.ehe的實用程序,它無法獲取第一列的文本,就像我的代碼一樣。 。空字符串... http://i.piccy.info/i5/26/21/1742126/Snymok5.png – AlexGu