Автор: SpoinT
Дата сообщения: 11.07.2007 10:09
Возникла ситуация. Уже второй день никак не могу разрешить.
var
Form1: TForm1;
_it, _buf : Pointer;
w1,w2,w3: THandle;
ListView, Process: HWND;
i, Count, Pid, bw: cardinal;
it: TLVItem;
buf: array[0..32] of char;
***********
ListView := FindWindow('JetCar Class',nil);
ListView := FindWindowEx(ListView,0,'AfxFrameOrView42s',nil);
ListView := FindWindowEx(ListView,0,'SysListView32',nil);
Count := ListView_GetItemCount(listview);
GetWindowThreadProcessId(listview, pid);
Process := OpenProcess(PROCESS_VM_OPERATION or PROCESS_VM_READ or PROCESS_VM_WRITE or PROCESS_QUERY_INFORMATION, false, pid);
_it := PLVItem(VirtualAllocEx(process, nil, sizeof(TLVItem), MEM_COMMIT, PAGE_READWRITE));
_buf := pchar(VirtualAllocEx(process, nil, 512, MEM_COMMIT, PAGE_READWRITE));
it.cchTextMax := 255;
it.iSubItem := 0;
WriteProcessMemory(process, _it, @it, sizeof(TLVItem), bw);
for i:=0 to Count-1 do
begin
SendMessage(listview, LVM_GETITEMTEXT, i, lparam(_it));
ReadProcessMemory(process, _buf, @buf, 255, bw);
memo1.Lines.Add(buf);
end;
VirtualFreeEx(process, _it, 0, MEM_RELEASE);
VirtualFreeEx(process, _buf, 0, MEM_RELEASE);
end;
************************************
Как видно из примера, здесь идет получение текста из ЧУЖОГО ListView.
А теперь ВОПРОС! Как мне получить ID картинки из Item? ОЧЕНЬ желательно пример куска кода, а не мысли по поводу реализации, т.к. их уже было предостаточно