15,979
社区成员
发帖
与我相关
我的任务
分享
HWND hWnd = ::FindWindow(NULL, _T("XA"));
if(hWnd)
{
HWND hList = ::FindWindowEx(hWnd, NULL, _T("SysListView32"), NULL);
if(hList)
{
DWORD PID = 0;
GetWindowThreadProcessId(hList, &PID);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);
if(hProcess)
{
LVITEM item = {0};
TCHAR buf[] = {_T("Hello, World")};
LVITEM* pItem = (LVITEM*)VirtualAllocEx(hProcess, NULL, sizeof(LVITEM), MEM_COMMIT, PAGE_READWRITE);
TCHAR* pText = (TCHAR*)VirtualAllocEx(hProcess, NULL, sizeof(buf), MEM_COMMIT, PAGE_READWRITE);
if(pItem && pText)
{
int nItem = ListView_GetItemCount(hList);
for(int i=0; i<nItem; i++)
{
item.iItem = i;
item.iSubItem = 0;
item.pszText = pText;
WriteProcessMemory(hProcess, pText, &buf, sizeof(buf), NULL);
WriteProcessMemory(hProcess, pItem, &item, sizeof(LVITEM), NULL);
::SendMessage(hList, LVM_SETITEMTEXT, (WPARAM)i, (LPARAM)pItem);
}
}
VirtualFreeEx(hProcess, pItem, sizeof(LVITEM), MEM_RELEASE);
VirtualFreeEx(hProcess, pText, sizeof(buf), MEM_RELEASE);
CloseHandle(hProcess);
}
}
}
HWND hWnd = ::FindWindow(NULL, _T("XXXX"));
if(hWnd)
{
HWND hList = ::FindWindowEx(hWnd, NULL, _T("SysListView32"), NULL);
if(hList)
{
DWORD PID = 0;
GetWindowThreadProcessId(hList, &PID);
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);
if(hProcess)
{
LVITEM item = {0};
TCHAR buf[] = {_T("Hello, World")};
LVITEM* pItem = (LVITEM*)VirtualAllocEx(hProcess, NULL, sizeof(LVITEM), MEM_COMMIT, PAGE_READWRITE);
TCHAR* pText = (TCHAR*)VirtualAllocEx(hProcess, NULL, sizeof(buf), MEM_COMMIT, PAGE_READWRITE);
if(pItem && pText)
{
int nItem = ListView_GetItemCount(hList);
for(int i=0; i<nItem; i++)
{
item.iItem = i;
item.iSubItem = 0;
item.pszText = pText;
WriteProcessMemory(hProcess, pText, &buf, sizeof(buf), NULL);
WriteProcessMemory(hProcess, pItem, &item, sizeof(LVITEM), NULL);
::SendMessage(hList, LVM_SETITEMTEXT, (WPARAM)i, (LPARAM)pItem);
}
}
}
}
}