Добрый день.
Есть стороннее приложение.
В нем 3 ListView. Задача такова.
Сделать на строке дабл клик в ListView которая к примеру имеет номер 8.
При попытках использовать SendMessage(HndControl,LVM_GETITEMRECT,0, LongInt(@Rect)); получаю в ответ одни нули. Уже что тока не перепробовал. Подскажите кто знает.
procedure TMyThread.Execute;
Var
Hnd, HndControl:HWnd;
i, b, q : Integer;
WinClass: array[0..255] of Char;
Rect: TPoint;
ItemIndex: Integer;
ItemHeight: Integer;
begin
Hnd:=FindWindow(nil, 'Client');
if Hnd <>0 then begin
windows.SetForegroundWindow(Hnd);
HndControl := FindWindowEx(hnd, 0, nil, PChar('LOGIN'));
SendMessage(HndControl, BM_CLICK, 0, 0);
Sleep(1000);
HndControl := FindWindowEx(hnd, 0, nil, PChar('select country...'));
PostMessage(HndControl, wm_LButtonDblclk, 0, 0);
Sleep(5000);
HndControl := FindWindowEx(hnd, 0, 'SysListView32', nil);
b := 0;
while HndControl <> 0 do
begin
HndControl := GetWindow(HndControl, GW_HWNDNEXT);
GetClassNameA(HndControl, WinClass, 256);
if (WinClass = 'SysListView32') then
begin
i:=SendMessage(HndControl,LVM_GETITEMCOUNT,0,0);
GetListViewData(HndControl, 1, form1.drop_strngrd);
if (b = 1) then
begin
SendMessage(HndControl,LVM_GETVIEWRECT,0, LongInt(@Rect));
Form1.mmo1.Lines.Add(inttostr(rect.x)+' '+inttostr(rect.Y));
end;
Inc(b);
end;
end;
end;
end;